summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaul Jakma <paul.jakma@hpe.com>2016-01-18 10:12:10 +0000
committerDonald Sharp <sharpd@cumulusnetwroks.com>2016-08-18 07:35:38 -0400
commitb892f1ddfe42a620d84b6c245d1997e4b560eea8 (patch)
treeacf13ca7ac43984b9215b0006d4d16fac2c281c3
parentac01cff9ec30b0bf28888a1bbedc34b74b40cd37 (diff)
*: use an ifindex_t type, defined in lib/if.h, for ifindex values
(cherry picked from commit 9099f9b2a66e86f8a90d7fe18f61bd2bb1bc6744)
-rw-r--r--bgpd/bgp_attr.h2
-rw-r--r--bgpd/bgp_btoa.c2
-rw-r--r--bgpd/bgp_network.c2
-rw-r--r--bgpd/bgp_zebra.c8
-rw-r--r--bgpd/bgp_zebra.h4
-rw-r--r--bgpd/bgpd.h2
-rw-r--r--isisd/isis_route.c10
-rw-r--r--isisd/isis_route.h4
-rw-r--r--isisd/isis_zebra.c8
-rw-r--r--lib/if.c26
-rw-r--r--lib/if.h24
-rw-r--r--lib/nexthop.h2
-rw-r--r--lib/sockopt.c16
-rw-r--r--lib/sockopt.h8
-rw-r--r--lib/sockunion.c2
-rw-r--r--lib/sockunion.h3
-rw-r--r--lib/zclient.c2
-rw-r--r--lib/zclient.h4
-rw-r--r--ospf6d/ospf6_asbr.c5
-rw-r--r--ospf6d/ospf6_asbr.h6
-rw-r--r--ospf6d/ospf6_interface.c2
-rw-r--r--ospf6d/ospf6_interface.h2
-rw-r--r--ospf6d/ospf6_message.c4
-rw-r--r--ospf6d/ospf6_message.h2
-rw-r--r--ospf6d/ospf6_neighbor.h2
-rw-r--r--ospf6d/ospf6_network.c6
-rw-r--r--ospf6d/ospf6_network.h6
-rw-r--r--ospf6d/ospf6_route.c2
-rw-r--r--ospf6d/ospf6_route.h4
-rw-r--r--ospf6d/ospf6_snmp.c12
-rw-r--r--ospf6d/ospf6_spf.c2
-rw-r--r--ospf6d/ospf6_zebra.c4
-rw-r--r--ospfd/ospf_asbr.c2
-rw-r--r--ospfd/ospf_asbr.h4
-rw-r--r--ospfd/ospf_lsa.c2
-rw-r--r--ospfd/ospf_lsa.h2
-rw-r--r--ospfd/ospf_network.c12
-rw-r--r--ospfd/ospf_network.h10
-rw-r--r--ospfd/ospf_packet.c2
-rw-r--r--ospfd/ospf_route.h2
-rw-r--r--ospfd/ospf_snmp.c30
-rw-r--r--pimd/pim_iface.c7
-rw-r--r--pimd/pim_iface.h6
-rw-r--r--pimd/pim_igmp.c8
-rw-r--r--pimd/pim_igmp_join.h2
-rw-r--r--pimd/pim_pim.c4
-rw-r--r--pimd/pim_sock.c6
-rw-r--r--pimd/pim_sock.h6
-rw-r--r--pimd/pim_ssmpingd.c2
-rw-r--r--pimd/pim_static.c8
-rw-r--r--pimd/pim_static.h2
-rw-r--r--pimd/pim_zebra.c8
-rw-r--r--pimd/pim_zlookup.h2
-rw-r--r--pimd/test_igmpv3_join.c5
-rw-r--r--ripd/rip_interface.c4
-rw-r--r--ripd/ripd.c8
-rw-r--r--ripd/ripd.h8
-rw-r--r--ripngd/ripng_zebra.c2
-rw-r--r--ripngd/ripngd.c8
-rw-r--r--ripngd/ripngd.h6
-rw-r--r--zebra/kernel_socket.c2
-rw-r--r--zebra/rib.h27
-rw-r--r--zebra/rt_netlink.c2
-rw-r--r--zebra/rt_socket.c4
-rw-r--r--zebra/rtadv.c8
-rw-r--r--zebra/test_main.c2
-rw-r--r--zebra/zebra_rib.c30
-rw-r--r--zebra/zebra_routemap.c2
-rw-r--r--zebra/zserv.c2
69 files changed, 219 insertions, 216 deletions
diff --git a/bgpd/bgp_attr.h b/bgpd/bgp_attr.h
index a279674af2..b8cdfea137 100644
--- a/bgpd/bgp_attr.h
+++ b/bgpd/bgp_attr.h
@@ -131,7 +131,7 @@ struct attr
struct in_addr nexthop;
u_int32_t med;
u_int32_t local_pref;
- u_int32_t nh_ifindex;
+ ifindex_t nh_ifindex;
/* Path origin attribute */
u_char origin;
diff --git a/bgpd/bgp_btoa.c b/bgpd/bgp_btoa.c
index 904ae66e10..cd52c94b1f 100644
--- a/bgpd/bgp_btoa.c
+++ b/bgpd/bgp_btoa.c
@@ -144,7 +144,7 @@ main (int argc, char **argv)
size_t len;
int source_as;
int dest_as;
- int ifindex;
+ ifindex_t ifindex;
int family;
struct in_addr sip;
struct in_addr dip;
diff --git a/bgpd/bgp_network.c b/bgpd/bgp_network.c
index 0caada488b..ed1c5600ee 100644
--- a/bgpd/bgp_network.c
+++ b/bgpd/bgp_network.c
@@ -579,7 +579,7 @@ bgp_update_source (struct peer *peer)
int
bgp_connect (struct peer *peer)
{
- unsigned int ifindex = 0;
+ ifindex_t ifindex = 0;
if (peer->conf_if && BGP_PEER_SU_UNSPEC(peer))
{
diff --git a/bgpd/bgp_zebra.c b/bgpd/bgp_zebra.c
index ce5d1b498e..81bede0e92 100644
--- a/bgpd/bgp_zebra.c
+++ b/bgpd/bgp_zebra.c
@@ -856,7 +856,7 @@ if_lookup_by_ipv4_exact (struct in_addr *addr, vrf_id_t vrf_id)
#ifdef HAVE_IPV6
struct interface *
-if_lookup_by_ipv6 (struct in6_addr *addr, unsigned int ifindex, vrf_id_t vrf_id)
+if_lookup_by_ipv6 (struct in6_addr *addr, ifindex_t ifindex, vrf_id_t vrf_id)
{
struct listnode *ifnode;
struct listnode *cnode;
@@ -892,7 +892,7 @@ if_lookup_by_ipv6 (struct in6_addr *addr, unsigned int ifindex, vrf_id_t vrf_id)
}
struct interface *
-if_lookup_by_ipv6_exact (struct in6_addr *addr, unsigned int ifindex, vrf_id_t vrf_id)
+if_lookup_by_ipv6_exact (struct in6_addr *addr, ifindex_t ifindex, vrf_id_t vrf_id)
{
struct listnode *ifnode;
struct listnode *cnode;
@@ -1381,7 +1381,7 @@ bgp_zebra_announce (struct prefix *p, struct bgp_info *info, struct bgp *bgp,
if (p->family == AF_INET6 ||
(p->family == AF_INET && BGP_ATTR_NEXTHOP_AFI_IP6(info->attr)))
{
- unsigned int ifindex;
+ ifindex_t ifindex;
struct in6_addr *nexthop;
struct zapi_ipv6 api;
int valid_nh_count = 0;
@@ -1527,7 +1527,7 @@ bgp_zebra_announce (struct prefix *p, struct bgp_info *info, struct bgp *bgp,
api.nexthop = (struct in6_addr **)STREAM_DATA (bgp_nexthop_buf);
SET_FLAG (api.message, ZAPI_MESSAGE_IFINDEX);
api.ifindex_num = valid_nh_count;
- api.ifindex = (unsigned int *)STREAM_DATA (bgp_ifindices_buf);
+ api.ifindex = (ifindex_t *)STREAM_DATA (bgp_ifindices_buf);
SET_FLAG (api.message, ZAPI_MESSAGE_METRIC);
api.metric = metric;
api.tag = 0;
diff --git a/bgpd/bgp_zebra.h b/bgpd/bgp_zebra.h
index 1f845bd918..af921af82f 100644
--- a/bgpd/bgp_zebra.h
+++ b/bgpd/bgp_zebra.h
@@ -58,8 +58,8 @@ extern int bgp_redistribute_unreg (struct bgp *, afi_t, int, u_short);
extern struct interface *if_lookup_by_ipv4 (struct in_addr *, vrf_id_t);
extern struct interface *if_lookup_by_ipv4_exact (struct in_addr *, vrf_id_t);
#ifdef HAVE_IPV6
-extern struct interface *if_lookup_by_ipv6 (struct in6_addr *, unsigned int, vrf_id_t);
-extern struct interface *if_lookup_by_ipv6_exact (struct in6_addr *, unsigned int, vrf_id_t);
+extern struct interface *if_lookup_by_ipv6 (struct in6_addr *, ifindex_t, vrf_id_t);
+extern struct interface *if_lookup_by_ipv6_exact (struct in6_addr *, ifindex_t, vrf_id_t);
#endif /* HAVE_IPV6 */
#endif /* _QUAGGA_BGP_ZEBRA_H */
diff --git a/bgpd/bgpd.h b/bgpd/bgpd.h
index 991afdf7cc..d9a68599c5 100644
--- a/bgpd/bgpd.h
+++ b/bgpd/bgpd.h
@@ -583,7 +583,7 @@ struct peer
time_t readtime; /* Last read time */
time_t resettime; /* Last reset time */
- unsigned int ifindex; /* ifindex of the BGP connection. */
+ ifindex_t ifindex; /* ifindex of the BGP connection. */
char *conf_if; /* neighbor interface config name. */
struct interface *ifp; /* corresponding interface */
char *ifname; /* bind interface name. */
diff --git a/isisd/isis_route.c b/isisd/isis_route.c
index e72e0cac7a..67d45c8f10 100644
--- a/isisd/isis_route.c
+++ b/isisd/isis_route.c
@@ -50,7 +50,7 @@
#include "isis_zebra.h"
static struct isis_nexthop *
-isis_nexthop_create (struct in_addr *ip, unsigned int ifindex)
+isis_nexthop_create (struct in_addr *ip, ifindex_t ifindex)
{
struct listnode *node;
struct isis_nexthop *nexthop;
@@ -91,7 +91,7 @@ isis_nexthop_delete (struct isis_nexthop *nexthop)
static int
nexthoplookup (struct list *nexthops, struct in_addr *ip,
- unsigned int ifindex)
+ ifindex_t ifindex)
{
struct listnode *node;
struct isis_nexthop *nh;
@@ -130,7 +130,7 @@ nexthops_print (struct list *nhs)
#ifdef HAVE_IPV6
static struct isis_nexthop6 *
-isis_nexthop6_new (struct in6_addr *ip6, unsigned int ifindex)
+isis_nexthop6_new (struct in6_addr *ip6, ifindex_t ifindex)
{
struct isis_nexthop6 *nexthop6;
@@ -144,7 +144,7 @@ isis_nexthop6_new (struct in6_addr *ip6, unsigned int ifindex)
}
static struct isis_nexthop6 *
-isis_nexthop6_create (struct in6_addr *ip6, unsigned int ifindex)
+isis_nexthop6_create (struct in6_addr *ip6, ifindex_t ifindex)
{
struct listnode *node;
struct isis_nexthop6 *nexthop6;
@@ -181,7 +181,7 @@ isis_nexthop6_delete (struct isis_nexthop6 *nexthop6)
static int
nexthop6lookup (struct list *nexthops6, struct in6_addr *ip6,
- unsigned int ifindex)
+ ifindex_t ifindex)
{
struct listnode *node;
struct isis_nexthop6 *nh6;
diff --git a/isisd/isis_route.h b/isisd/isis_route.h
index 5adea2293b..0d2379cbe8 100644
--- a/isisd/isis_route.h
+++ b/isisd/isis_route.h
@@ -28,7 +28,7 @@
#ifdef HAVE_IPV6
struct isis_nexthop6
{
- unsigned int ifindex;
+ ifindex_t ifindex;
struct in6_addr ip6;
struct in6_addr router_address6;
unsigned int lock;
@@ -37,7 +37,7 @@ struct isis_nexthop6
struct isis_nexthop
{
- unsigned int ifindex;
+ ifindex_t ifindex;
struct in_addr ip;
struct in_addr router_address;
unsigned int lock;
diff --git a/isisd/isis_zebra.c b/isisd/isis_zebra.c
index 125a2f63d3..81f9d86930 100644
--- a/isisd/isis_zebra.c
+++ b/isisd/isis_zebra.c
@@ -333,7 +333,7 @@ isis_zebra_route_add_ipv6 (struct prefix *prefix,
{
struct zapi_ipv6 api;
struct in6_addr **nexthop_list;
- unsigned int *ifindex_list;
+ ifindex_t *ifindex_list;
struct isis_nexthop6 *nexthop6;
int i, size;
struct listnode *node;
@@ -370,7 +370,7 @@ isis_zebra_route_add_ipv6 (struct prefix *prefix,
/* allocate memory for ifindex_list */
size = sizeof (unsigned int) * listcount (route_info->nexthops6);
- ifindex_list = (unsigned int *) XMALLOC (MTYPE_ISIS_TMP, size);
+ ifindex_list = (ifindex_t *) XMALLOC (MTYPE_ISIS_TMP, size);
if (!ifindex_list)
{
zlog_err ("isis_zebra_add_route_ipv6: out of memory!");
@@ -420,7 +420,7 @@ isis_zebra_route_del_ipv6 (struct prefix *prefix,
{
struct zapi_ipv6 api;
struct in6_addr **nexthop_list;
- unsigned int *ifindex_list;
+ ifindex_t *ifindex_list;
struct isis_nexthop6 *nexthop6;
int i, size;
struct listnode *node;
@@ -451,7 +451,7 @@ isis_zebra_route_del_ipv6 (struct prefix *prefix,
/* allocate memory for ifindex_list */
size = sizeof (unsigned int) * listcount (route_info->nexthops6);
- ifindex_list = (unsigned int *) XMALLOC (MTYPE_ISIS_TMP, size);
+ ifindex_list = (ifindex_t *) XMALLOC (MTYPE_ISIS_TMP, size);
if (!ifindex_list)
{
zlog_err ("isis_zebra_route_del_ipv6: out of memory!");
diff --git a/lib/if.c b/lib/if.c
index 8f1461326f..2c63c985dc 100644
--- a/lib/if.c
+++ b/lib/if.c
@@ -226,41 +226,41 @@ if_add_hook (int type, int (*func)(struct interface *ifp))
/* Interface existance check by index. */
struct interface *
-if_lookup_by_index_vrf (unsigned int index, vrf_id_t vrf_id)
+if_lookup_by_index_vrf (ifindex_t ifindex, vrf_id_t vrf_id)
{
struct listnode *node;
struct interface *ifp;
for (ALL_LIST_ELEMENTS_RO (vrf_iflist (vrf_id), node, ifp))
{
- if (ifp->ifindex == index)
+ if (ifp->ifindex == ifindex)
return ifp;
}
return NULL;
}
struct interface *
-if_lookup_by_index (unsigned int index)
+if_lookup_by_index (ifindex_t ifindex)
{
- return if_lookup_by_index_vrf (index, VRF_DEFAULT);
+ return if_lookup_by_index_vrf (ifindex, VRF_DEFAULT);
}
const char *
-ifindex2ifname_vrf (unsigned int index, vrf_id_t vrf_id)
+ifindex2ifname_vrf (ifindex_t ifindex, vrf_id_t vrf_id)
{
struct interface *ifp;
- return ((ifp = if_lookup_by_index_vrf (index, vrf_id)) != NULL) ?
+ return ((ifp = if_lookup_by_index_vrf (ifindex, vrf_id)) != NULL) ?
ifp->name : "unknown";
}
const char *
-ifindex2ifname (unsigned int index)
+ifindex2ifname (ifindex_t ifindex)
{
- return ifindex2ifname_vrf (index, VRF_DEFAULT);
+ return ifindex2ifname_vrf (ifindex, VRF_DEFAULT);
}
-unsigned int
+ifindex_t
ifname2ifindex_vrf (const char *name, vrf_id_t vrf_id)
{
struct interface *ifp;
@@ -269,7 +269,7 @@ ifname2ifindex_vrf (const char *name, vrf_id_t vrf_id)
: IFINDEX_INTERNAL;
}
-unsigned int
+ifindex_t
ifname2ifindex (const char *name)
{
return ifname2ifindex_vrf (name, VRF_DEFAULT);
@@ -1167,7 +1167,7 @@ connected_add_by_prefix (struct interface *ifp, struct prefix *p,
}
#ifndef HAVE_IF_NAMETOINDEX
-unsigned int
+ifindex_t
if_nametoindex (const char *name)
{
struct interface *ifp;
@@ -1179,7 +1179,7 @@ if_nametoindex (const char *name)
#ifndef HAVE_IF_INDEXTONAME
char *
-if_indextoname (unsigned int ifindex, char *name)
+if_indextoname (ifindex_t ifindex, char *name)
{
struct interface *ifp;
@@ -1244,7 +1244,7 @@ ifaddr_ipv4_delete (struct in_addr *ifaddr, struct interface *ifp)
/* Lookup interface by interface's IP address or interface index. */
static struct interface *
-ifaddr_ipv4_lookup (struct in_addr *addr, unsigned int ifindex)
+ifaddr_ipv4_lookup (struct in_addr *addr, ifindex_t ifindex)
{
struct prefix_ipv4 p;
struct route_node *rn;
diff --git a/lib/if.h b/lib/if.h
index 4ec85bc841..35d91f0cfa 100644
--- a/lib/if.h
+++ b/lib/if.h
@@ -21,6 +21,7 @@ Boston, MA 02111-1307, USA. */
#ifndef _ZEBRA_IF_H
#define _ZEBRA_IF_H
+#include "zebra.h"
#include "linklist.h"
/*
@@ -36,6 +37,8 @@ Boston, MA 02111-1307, USA. */
#define INTERFACE_NAMSIZ 20
#define INTERFACE_HWADDR_MAX 20
+typedef signed int ifindex_t;
+
#ifdef HAVE_PROC_NET_DEV
struct if_stats
{
@@ -82,9 +85,9 @@ struct interface
/* Interface index (should be IFINDEX_INTERNAL for non-kernel or
deleted interfaces). */
- unsigned int ifindex;
+ ifindex_t ifindex;
#define IFINDEX_INTERNAL 0
-#define IFINDEX_DELETED UINT_MAX
+#define IFINDEX_DELETED INT_MAX
/* Zebra internal interface status */
u_char status;
@@ -264,7 +267,7 @@ struct nbr_connected
/* Prototypes. */
extern int if_cmp_name_func (char *, char *);
extern struct interface *if_create (const char *name, int namelen);
-extern struct interface *if_lookup_by_index (unsigned int);
+extern struct interface *if_lookup_by_index (ifindex_t);
extern struct interface *if_lookup_exact_address (void *matchaddr, int family);
extern struct interface *if_lookup_address (void *matchaddr, int family);
extern struct interface *if_lookup_prefix (struct prefix *prefix);
@@ -273,8 +276,7 @@ extern void if_update_vrf (struct interface *, const char *name, int namelen,
vrf_id_t vrf_id);
extern struct interface *if_create_vrf (const char *name, int namelen,
vrf_id_t vrf_id);
-extern struct interface *if_lookup_by_index_vrf (unsigned int,
- vrf_id_t vrf_id);
+extern struct interface *if_lookup_by_index_vrf (ifindex_t, vrf_id_t vrf_id);
extern struct interface *if_lookup_exact_address_vrf (void *matchaddr, int family,
vrf_id_t vrf_id);
extern struct interface *if_lookup_address_vrf (void *matchaddr, int family,
@@ -332,14 +334,14 @@ extern const char *if_flag_dump(unsigned long);
/* Please use ifindex2ifname instead of if_indextoname where possible;
ifindex2ifname uses internal interface info, whereas if_indextoname must
make a system call. */
-extern const char *ifindex2ifname (unsigned int);
-extern const char *ifindex2ifname_vrf (unsigned int, vrf_id_t vrf_id);
+extern const char *ifindex2ifname (ifindex_t);
+extern const char *ifindex2ifname_vrf (ifindex_t, vrf_id_t vrf_id);
/* Please use ifname2ifindex instead of if_nametoindex where possible;
ifname2ifindex uses internal interface info, whereas if_nametoindex must
make a system call. */
-extern unsigned int ifname2ifindex(const char *ifname);
-extern unsigned int ifname2ifindex_vrf(const char *ifname, vrf_id_t vrf_id);
+extern ifindex_t ifname2ifindex(const char *ifname);
+extern ifindex_t ifname2ifindex_vrf(const char *ifname, vrf_id_t vrf_id);
/* Connected address functions. */
extern struct connected *connected_new (void);
@@ -359,10 +361,10 @@ extern void nbr_connected_free (struct nbr_connected *);
struct nbr_connected *nbr_connected_check (struct interface *, struct prefix *);
#ifndef HAVE_IF_NAMETOINDEX
-extern unsigned int if_nametoindex (const char *);
+extern ifindex_t if_nametoindex (const char *);
#endif
#ifndef HAVE_IF_INDEXTONAME
-extern char *if_indextoname (unsigned int, char *);
+extern char *if_indextoname (ifindex_t, char *);
#endif
/* Exported variables. */
diff --git a/lib/nexthop.h b/lib/nexthop.h
index eb9b27ea9e..4445c4ad27 100644
--- a/lib/nexthop.h
+++ b/lib/nexthop.h
@@ -48,7 +48,7 @@ struct nexthop
struct nexthop *prev;
/* Interface index. */
- unsigned int ifindex;
+ ifindex_t ifindex;
enum nexthop_types_t type;
diff --git a/lib/sockopt.c b/lib/sockopt.c
index d8204936f9..31b2edbacf 100644
--- a/lib/sockopt.c
+++ b/lib/sockopt.c
@@ -221,7 +221,7 @@ setsockopt_ipv4_multicast(int sock,
int optname,
struct in_addr if_addr,
unsigned int mcast_addr,
- unsigned int ifindex)
+ ifindex_t ifindex)
{
#ifdef HAVE_RFC3678
struct group_req gr;
@@ -322,7 +322,7 @@ setsockopt_ipv4_multicast(int sock,
*/
int
setsockopt_ipv4_multicast_if(int sock, struct in_addr if_addr,
- unsigned int ifindex)
+ ifindex_t ifindex)
{
#ifdef HAVE_STRUCT_IP_MREQN_IMR_IFINDEX
@@ -352,7 +352,7 @@ setsockopt_ipv4_multicast_if(int sock, struct in_addr if_addr,
}
static int
-setsockopt_ipv4_ifindex (int sock, int val)
+setsockopt_ipv4_ifindex (int sock, ifindex_t val)
{
int ret;
@@ -388,7 +388,7 @@ setsockopt_ipv4_tos(int sock, int tos)
int
-setsockopt_ifindex (int af, int sock, int val)
+setsockopt_ifindex (int af, int sock, ifindex_t val)
{
int ret = -1;
@@ -415,11 +415,11 @@ setsockopt_ifindex (int af, int sock, int val)
* Returns the interface index (small integer >= 1) if it can be
* determined, or else 0.
*/
-static int
+static ifindex_t
getsockopt_ipv4_ifindex (struct msghdr *msgh)
{
/* XXX: initialize to zero? (Always overwritten, so just cosmetic.) */
- int ifindex = -1;
+ ifindex_t ifindex = -1;
#if defined(IP_PKTINFO)
/* Linux pktinfo based ifindex retrieval */
@@ -439,7 +439,7 @@ getsockopt_ipv4_ifindex (struct msghdr *msgh)
struct sockaddr_dl *sdl;
#else
/* SUNOS_5 uses an integer with the index. */
- int *ifindex_p;
+ ifindex_t *ifindex_p;
#endif /* SUNOS_5 */
#ifndef SUNOS_5
@@ -480,7 +480,7 @@ getsockopt_ipv4_ifindex (struct msghdr *msgh)
}
/* return ifindex, 0 if none found */
-int
+ifindex_t
getsockopt_ifindex (int af, struct msghdr *msgh)
{
switch (af)
diff --git a/lib/sockopt.h b/lib/sockopt.h
index a597314c3d..d67b510b66 100644
--- a/lib/sockopt.h
+++ b/lib/sockopt.h
@@ -84,16 +84,16 @@ extern int setsockopt_ipv6_tclass (int, int);
? SOPT_SIZE_CMSG_PKTINFO_IPV6())
extern int setsockopt_ipv4_multicast_if(int sock, struct in_addr if_addr,
- unsigned int ifindex);
+ ifindex_t ifindex);
extern int setsockopt_ipv4_multicast(int sock, int optname,
struct in_addr if_addr,
unsigned int mcast_addr,
- unsigned int ifindex);
+ ifindex_t ifindex);
extern int setsockopt_ipv4_tos(int sock, int tos);
/* Ask for, and get, ifindex, by whatever method is supported. */
-extern int setsockopt_ifindex (int, int, int);
-extern int getsockopt_ifindex (int, struct msghdr *);
+extern int setsockopt_ifindex (int, int, ifindex_t);
+extern ifindex_t getsockopt_ifindex (int, struct msghdr *);
/* swab the fields in iph between the host order and system order expected
* for IP_HDRINCL.
diff --git a/lib/sockunion.c b/lib/sockunion.c
index b5a2eb954a..9184e500fc 100644
--- a/lib/sockunion.c
+++ b/lib/sockunion.c
@@ -291,7 +291,7 @@ sockunion_sizeof (const union sockunion *su)
1 : connect is in progress */
enum connect_result
sockunion_connect (int fd, const union sockunion *peersu, unsigned short port,
- unsigned int ifindex)
+ ifindex_t ifindex)
{
int ret;
int val;
diff --git a/lib/sockunion.h b/lib/sockunion.h
index a33051ae57..105b11a24c 100644
--- a/lib/sockunion.h
+++ b/lib/sockunion.h
@@ -24,6 +24,7 @@
#define _ZEBRA_SOCKUNION_H
#include "privs.h"
+#include "if.h"
union sockunion
{
@@ -95,7 +96,7 @@ extern int sockunion_socket (const union sockunion *su);
extern const char *inet_sutop (const union sockunion *su, char *str);
extern enum connect_result sockunion_connect (int fd, const union sockunion *su,
unsigned short port,
- unsigned int);
+ ifindex_t);
extern union sockunion *sockunion_getsockname (int);
extern union sockunion *sockunion_getpeername (int);
extern union sockunion *sockunion_dup (const union sockunion *);
diff --git a/lib/zclient.c b/lib/zclient.c
index ef9516c912..a28db083cb 100644
--- a/lib/zclient.c
+++ b/lib/zclient.c
@@ -1133,7 +1133,7 @@ memconstant(const void *s, int c, size_t n)
struct connected *
zebra_interface_address_read (int type, struct stream *s, vrf_id_t vrf_id)
{
- unsigned int ifindex;
+ ifindex_t ifindex;
struct interface *ifp;
struct connected *ifc;
struct prefix p, d;
diff --git a/lib/zclient.h b/lib/zclient.h
index f30190c1b4..8926bbbe63 100644
--- a/lib/zclient.h
+++ b/lib/zclient.h
@@ -146,7 +146,7 @@ struct zapi_ipv4
struct in_addr **nexthop;
u_char ifindex_num;
- unsigned int *ifindex;
+ ifindex_t *ifindex;
u_char distance;
@@ -229,7 +229,7 @@ struct zapi_ipv6
struct in6_addr **nexthop;
u_char ifindex_num;
- unsigned int *ifindex;
+ ifindex_t *ifindex;
u_char distance;
diff --git a/ospf6d/ospf6_asbr.c b/ospf6d/ospf6_asbr.c
index 1207419e58..208d3b8c4c 100644
--- a/ospf6d/ospf6_asbr.c
+++ b/ospf6d/ospf6_asbr.c
@@ -426,7 +426,7 @@ ospf6_asbr_send_externals_to_area (struct ospf6_area *oa)
}
void
-ospf6_asbr_redistribute_add (int type, int ifindex, struct prefix *prefix,
+ospf6_asbr_redistribute_add (int type, ifindex_t ifindex, struct prefix *prefix,
u_int nexthop_num, struct in6_addr *nexthop)
{
int ret;
@@ -575,7 +575,8 @@ ospf6_asbr_redistribute_add (int type, int ifindex, struct prefix *prefix,
}
void
-ospf6_asbr_redistribute_remove (int type, int ifindex, struct prefix *prefix)
+ospf6_asbr_redistribute_remove (int type, ifindex_t ifindex,
+ struct prefix *prefix)
{
struct ospf6_route *match;
struct ospf6_external_info *info = NULL;
diff --git a/ospf6d/ospf6_asbr.h b/ospf6d/ospf6_asbr.h
index 90befdc0dd..645e8fd9cf 100644
--- a/ospf6d/ospf6_asbr.h
+++ b/ospf6d/ospf6_asbr.h
@@ -49,7 +49,7 @@ struct ospf6_external_info
struct in6_addr forwarding;
/* u_int32_t tag; */
- unsigned int ifindex;
+ ifindex_t ifindex;
};
/* AS-External-LSA */
@@ -79,11 +79,11 @@ extern void ospf6_asbr_lsentry_add (struct ospf6_route *asbr_entry);
extern void ospf6_asbr_lsentry_remove (struct ospf6_route *asbr_entry);
extern int ospf6_asbr_is_asbr (struct ospf6 *o);
-extern void ospf6_asbr_redistribute_add (int type, int ifindex,
+extern void ospf6_asbr_redistribute_add (int type, ifindex_t ifindex,
struct prefix *prefix,
u_int nexthop_num,
struct in6_addr *nexthop);
-extern void ospf6_asbr_redistribute_remove (int type, int ifindex,
+extern void ospf6_asbr_redistribute_remove (int type, ifindex_t ifindex,
struct prefix *prefix);
extern int ospf6_redistribute_config_write (struct vty *vty);
diff --git a/ospf6d/ospf6_interface.c b/ospf6d/ospf6_interface.c
index 720a3e0e69..f24ec46da7 100644
--- a/ospf6d/ospf6_interface.c
+++ b/ospf6d/ospf6_interface.c
@@ -61,7 +61,7 @@ const char *ospf6_interface_state_str[] =
};
struct ospf6_interface *
-ospf6_interface_lookup_by_ifindex (int ifindex)
+ospf6_interface_lookup_by_ifindex (ifindex_t ifindex)
{
struct ospf6_interface *oi;
struct interface *ifp;
diff --git a/ospf6d/ospf6_interface.h b/ospf6d/ospf6_interface.h
index 5e6b455682..3e09bfb930 100644
--- a/ospf6d/ospf6_interface.h
+++ b/ospf6d/ospf6_interface.h
@@ -152,7 +152,7 @@ extern const char *ospf6_interface_state_str[];
/* Function Prototypes */
-extern struct ospf6_interface *ospf6_interface_lookup_by_ifindex (int);
+extern struct ospf6_interface *ospf6_interface_lookup_by_ifindex (ifindex_t);
extern struct ospf6_interface *ospf6_interface_create (struct interface *);
extern void ospf6_interface_delete (struct ospf6_interface *);
diff --git a/ospf6d/ospf6_message.c b/ospf6d/ospf6_message.c
index fe57f2f423..b0e94288b4 100644
--- a/ospf6d/ospf6_message.c
+++ b/ospf6d/ospf6_message.c
@@ -290,7 +290,7 @@ ospf6_hello_recv (struct in6_addr *src, struct in6_addr *dst,
memcpy (&on->linklocal_addr, src, sizeof (struct in6_addr));
/* Neighbor ifindex check */
- if (on->ifindex != ntohl (hello->interface_id))
+ if (on->ifindex != (ifindex_t)ntohl (hello->interface_id))
{
on->ifindex = ntohl (hello->interface_id);
neighbor_ifindex_change++;
@@ -1525,7 +1525,7 @@ ospf6_receive (struct thread *thread)
unsigned int len;
char srcname[64], dstname[64];
struct in6_addr src, dst;
- unsigned int ifindex;
+ ifindex_t ifindex;
struct iovec iovector[2];
struct ospf6_interface *oi;
struct ospf6_header *oh;
diff --git a/ospf6d/ospf6_message.h b/ospf6d/ospf6_message.h
index b085a9673b..4a9e0c7a66 100644
--- a/ospf6d/ospf6_message.h
+++ b/ospf6d/ospf6_message.h
@@ -64,7 +64,7 @@ struct ospf6_header
#define OSPF6_HELLO_MIN_SIZE 20U
struct ospf6_hello
{
- u_int32_t interface_id;
+ ifindex_t interface_id;
u_char priority;
u_char options[3];
u_int16_t hello_interval;
diff --git a/ospf6d/ospf6_neighbor.h b/ospf6d/ospf6_neighbor.h
index fad7fd578a..f9e197e99b 100644
--- a/ospf6d/ospf6_neighbor.h
+++ b/ospf6d/ospf6_neighbor.h
@@ -53,7 +53,7 @@ struct ospf6_neighbor
u_int32_t router_id;
/* Neighbor Interface ID */
- u_int32_t ifindex;
+ ifindex_t ifindex;
/* Router Priority of this neighbor */
u_char priority;
diff --git a/ospf6d/ospf6_network.c b/ospf6d/ospf6_network.c
index 5e254661f1..2227d03477 100644
--- a/ospf6d/ospf6_network.c
+++ b/ospf6d/ospf6_network.c
@@ -113,7 +113,7 @@ ospf6_serv_sock (void)
/* ospf6 set socket option */
int
-ospf6_sso (u_int ifindex, struct in6_addr *group, int option)
+ospf6_sso (ifindex_t ifindex, struct in6_addr *group, int option)
{
struct ipv6_mreq mreq6;
int ret;
@@ -193,7 +193,7 @@ iov_totallen (struct iovec *iov)
int
ospf6_sendmsg (struct in6_addr *src, struct in6_addr *dst,
- unsigned int *ifindex, struct iovec *message)
+ ifindex_t *ifindex, struct iovec *message)
{
int retval;
struct msghdr smsghdr;
@@ -255,7 +255,7 @@ ospf6_sendmsg (struct in6_addr *src, struct in6_addr *dst,
int
ospf6_recvmsg (struct in6_addr *src, struct in6_addr *dst,
- unsigned int *ifindex, struct iovec *message)
+ ifindex_t *ifindex, struct iovec *message)
{
int retval;
struct msghdr rmsghdr;
diff --git a/ospf6d/ospf6_network.h b/ospf6d/ospf6_network.h
index 2aeafe5041..4fa2839519 100644
--- a/ospf6d/ospf6_network.h
+++ b/ospf6d/ospf6_network.h
@@ -29,12 +29,12 @@ extern struct in6_addr allspfrouters6;
extern struct in6_addr alldrouters6;
extern int ospf6_serv_sock (void);
-extern int ospf6_sso (u_int ifindex, struct in6_addr *group, int option);
+extern int ospf6_sso (ifindex_t ifindex, struct in6_addr *group, int option);
extern int ospf6_sendmsg (struct in6_addr *, struct in6_addr *,
- unsigned int *, struct iovec *);
+ ifindex_t *, struct iovec *);
extern int ospf6_recvmsg (struct in6_addr *, struct in6_addr *,
- unsigned int *, struct iovec *);
+ ifindex_t *, struct iovec *);
#endif /* OSPF6_NETWORK_H */
diff --git a/ospf6d/ospf6_route.c b/ospf6d/ospf6_route.c
index 0a98c8f082..5172eee48d 100644
--- a/ospf6d/ospf6_route.c
+++ b/ospf6d/ospf6_route.c
@@ -331,7 +331,7 @@ ospf6_add_nexthop (struct list *nh_list, int ifindex,
void
ospf6_route_zebra_copy_nexthops (struct ospf6_route *route,
- unsigned int *ifindexes,
+ ifindex_t *ifindexes,
struct in6_addr **nexthop_addr,
int entries)
{
diff --git a/ospf6d/ospf6_route.h b/ospf6d/ospf6_route.h
index e783b72d8e..610b0970b0 100644
--- a/ospf6d/ospf6_route.h
+++ b/ospf6d/ospf6_route.h
@@ -41,7 +41,7 @@ extern unsigned char conf_debug_ospf6_route;
struct ospf6_nexthop
{
/* Interface index */
- unsigned int ifindex;
+ ifindex_t ifindex;
/* IP address, if any */
struct in6_addr address;
@@ -278,7 +278,7 @@ extern int ospf6_num_nexthops (struct list *nh_list);
extern int ospf6_route_cmp_nexthops (struct ospf6_route *a,
struct ospf6_route *b);
extern void ospf6_route_zebra_copy_nexthops (struct ospf6_route *route,
- unsigned int *ifindices,
+ ifindex_t *ifindices,
struct in6_addr **addr,
int entries);
extern int ospf6_route_get_first_nh_index (struct ospf6_route *route);
diff --git a/ospf6d/ospf6_snmp.c b/ospf6d/ospf6_snmp.c
index cf1630bbc9..382cf62f72 100644
--- a/ospf6d/ospf6_snmp.c
+++ b/ospf6d/ospf6_snmp.c
@@ -625,7 +625,7 @@ ospfv3WwLsdbEntry (struct variable *v, oid *name, size_t *length,
int exact, size_t *var_len, WriteMethod **write_method)
{
struct ospf6_lsa *lsa = NULL;
- u_int32_t ifindex, area_id, id, instid, adv_router;
+ ifindex_t ifindex, area_id, id, instid, adv_router;
u_int16_t type;
int len;
oid *offset;
@@ -837,7 +837,8 @@ static u_char *
ospfv3IfEntry (struct variable *v, oid *name, size_t *length,
int exact, size_t *var_len, WriteMethod **write_method)
{
- unsigned int ifindex, instid;
+ ifindex_t ifindex = 0;
+ unsigned int instid = 0;
struct ospf6_interface *oi = NULL;
struct ospf6_lsa *lsa = NULL;
struct interface *iif;
@@ -851,8 +852,6 @@ ospfv3IfEntry (struct variable *v, oid *name, size_t *length,
== MATCH_FAILED)
return NULL;
- ifindex = instid = 0;
-
/* Check OSPFv3 instance. */
if (ospf6 == NULL)
return NULL;
@@ -990,7 +989,8 @@ static u_char *
ospfv3NbrEntry (struct variable *v, oid *name, size_t *length,
int exact, size_t *var_len, WriteMethod **write_method)
{
- unsigned int ifindex, instid, rtrid;
+ ifindex_t ifindex = 0;
+ unsigned int instid, rtrid;
struct ospf6_interface *oi = NULL;
struct ospf6_neighbor *on = NULL;
struct interface *iif;
@@ -1003,7 +1003,7 @@ ospfv3NbrEntry (struct variable *v, oid *name, size_t *length,
== MATCH_FAILED)
return NULL;
- ifindex = instid = rtrid = 0;
+ instid = rtrid = 0;
/* Check OSPFv3 instance. */
if (ospf6 == NULL)
diff --git a/ospf6d/ospf6_spf.c b/ospf6d/ospf6_spf.c
index ab1213ebb6..957988b53d 100644
--- a/ospf6d/ospf6_spf.c
+++ b/ospf6d/ospf6_spf.c
@@ -266,7 +266,7 @@ ospf6_nexthop_calc (struct ospf6_vertex *w, struct ospf6_vertex *v,
caddr_t lsdesc)
{
int i;
- unsigned int ifindex;
+ ifindex_t ifindex;
struct ospf6_interface *oi;
u_int16_t type;
u_int32_t adv_router;
diff --git a/ospf6d/ospf6_zebra.c b/ospf6d/ospf6_zebra.c
index 0395b082da..77ea01e53d 100644
--- a/ospf6d/ospf6_zebra.c
+++ b/ospf6d/ospf6_zebra.c
@@ -377,7 +377,7 @@ ospf6_zebra_route_update (int type, struct ospf6_route *request)
char buf[PREFIX2STR_BUFFER];
int nhcount;
struct in6_addr **nexthops;
- unsigned int *ifindexes;
+ ifindex_t *ifindexes;
int ret = 0;
struct prefix_ipv6 *dest;
@@ -443,7 +443,7 @@ ospf6_zebra_route_update (int type, struct ospf6_route *request)
/* allocate memory for ifindex_list */
ifindexes = XCALLOC (MTYPE_OSPF6_OTHER,
- nhcount * sizeof (unsigned int));
+ nhcount * sizeof (ifindex_t));
if (ifindexes == NULL)
{
zlog_warn ("Can't send route to zebra: malloc failed");
diff --git a/ospfd/ospf_asbr.c b/ospfd/ospf_asbr.c
index ddb26dd543..21f99af128 100644
--- a/ospfd/ospf_asbr.c
+++ b/ospfd/ospf_asbr.c
@@ -136,7 +136,7 @@ ospf_route_map_set_compare (struct route_map_set_values *values1,
/* Add an External info for AS-external-LSA. */
struct external_info *
ospf_external_info_add (u_char type, u_short instance, struct prefix_ipv4 p,
- unsigned int ifindex, struct in_addr nexthop,
+ ifindex_t ifindex, struct in_addr nexthop,
u_short tag)
{
struct external_info *new;
diff --git a/ospfd/ospf_asbr.h b/ospfd/ospf_asbr.h
index ade671013a..25a53aad4f 100644
--- a/ospfd/ospf_asbr.h
+++ b/ospfd/ospf_asbr.h
@@ -41,7 +41,7 @@ struct external_info
struct prefix_ipv4 p;
/* Interface index. */
- unsigned int ifindex;
+ ifindex_t ifindex;
/* Nexthop address. */
struct in_addr nexthop;
@@ -63,7 +63,7 @@ extern int ospf_route_map_set_compare (struct route_map_set_values *,
struct route_map_set_values *);
extern struct external_info *ospf_external_info_add (u_char, u_short,
struct prefix_ipv4,
- unsigned int,
+ ifindex_t,
struct in_addr,
u_short);
extern void ospf_external_info_delete (u_char, u_short, struct prefix_ipv4);
diff --git a/ospfd/ospf_lsa.c b/ospfd/ospf_lsa.c
index 68a3946b3a..b96ed452c1 100644
--- a/ospfd/ospf_lsa.c
+++ b/ospfd/ospf_lsa.c
@@ -2251,7 +2251,7 @@ ospf_nssa_lsa_flush (struct ospf *ospf, struct prefix_ipv4 *p)
void
ospf_external_lsa_flush (struct ospf *ospf,
u_char type, struct prefix_ipv4 *p,
- unsigned int ifindex /*, struct in_addr nexthop */)
+ ifindex_t ifindex /*, struct in_addr nexthop */)
{
struct ospf_lsa *lsa;
diff --git a/ospfd/ospf_lsa.h b/ospfd/ospf_lsa.h
index b3d72109d6..28ecc9d4d6 100644
--- a/ospfd/ospf_lsa.h
+++ b/ospfd/ospf_lsa.h
@@ -277,7 +277,7 @@ extern struct ospf_lsa *ospf_lsa_install (struct ospf *,
extern void ospf_nssa_lsa_flush (struct ospf *ospf, struct prefix_ipv4 *p);
extern void ospf_external_lsa_flush (struct ospf *, u_char, struct prefix_ipv4 *,
- unsigned int /* , struct in_addr nexthop */);
+ ifindex_t /* , struct in_addr nexthop */);
extern struct in_addr ospf_get_ip_from_ifp (struct ospf_interface *);
diff --git a/ospfd/ospf_network.c b/ospfd/ospf_network.c
index 9f516d7390..6caa38d68b 100644
--- a/ospfd/ospf_network.c
+++ b/ospfd/ospf_network.c
@@ -48,7 +48,7 @@ extern struct zebra_privs_t ospfd_privs;
/* Join to the OSPF ALL SPF ROUTERS multicast group. */
int
ospf_if_add_allspfrouters (struct ospf *top, struct prefix *p,
- unsigned int ifindex)
+ ifindex_t ifindex)
{
int ret;
@@ -69,7 +69,7 @@ ospf_if_add_allspfrouters (struct ospf *top, struct prefix *p,
int
ospf_if_drop_allspfrouters (struct ospf *top, struct prefix *p,
- unsigned int ifindex)
+ ifindex_t ifindex)
{
int ret;
@@ -89,8 +89,7 @@ ospf_if_drop_allspfrouters (struct ospf *top, struct prefix *p,
/* Join to the OSPF ALL Designated ROUTERS multicast group. */
int
-ospf_if_add_alldrouters (struct ospf *top, struct prefix *p, unsigned int
- ifindex)
+ospf_if_add_alldrouters (struct ospf *top, struct prefix *p, ifindex_t ifindex)
{
int ret;
@@ -110,8 +109,7 @@ ospf_if_add_alldrouters (struct ospf *top, struct prefix *p, unsigned int
}
int
-ospf_if_drop_alldrouters (struct ospf *top, struct prefix *p, unsigned int
- ifindex)
+ospf_if_drop_alldrouters (struct ospf *top, struct prefix *p, ifindex_t ifindex)
{
int ret;
@@ -130,7 +128,7 @@ ospf_if_drop_alldrouters (struct ospf *top, struct prefix *p, unsigned int
}
int
-ospf_if_ipmulticast (struct ospf *top, struct prefix *p, unsigned int ifindex)
+ospf_if_ipmulticast (struct ospf *top, struct prefix *p, ifindex_t ifindex)
{
u_char val;
int ret, len;
diff --git a/ospfd/ospf_network.h b/ospfd/ospf_network.h
index e0a5c69d5c..8257adb4af 100644
--- a/ospfd/ospf_network.h
+++ b/ospfd/ospf_network.h
@@ -25,14 +25,14 @@
/* Prototypes. */
extern int ospf_if_add_allspfrouters (struct ospf *, struct prefix *,
- unsigned int);
+ ifindex_t);
extern int ospf_if_drop_allspfrouters (struct ospf *, struct prefix *,
- unsigned int);
+ ifindex_t);
extern int ospf_if_add_alldrouters (struct ospf *, struct prefix *,
- unsigned int);
+ ifindex_t);
extern int ospf_if_drop_alldrouters (struct ospf *, struct prefix *,
- unsigned int);
-extern int ospf_if_ipmulticast (struct ospf *, struct prefix *, unsigned int);
+ ifindex_t);
+extern int ospf_if_ipmulticast (struct ospf *, struct prefix *, ifindex_t);
extern int ospf_sock_init (void);
extern void ospf_adjust_sndbuflen (struct ospf *, unsigned int);
diff --git a/ospfd/ospf_packet.c b/ospfd/ospf_packet.c
index 2df1596ee3..e6014a14c6 100644
--- a/ospfd/ospf_packet.c
+++ b/ospfd/ospf_packet.c
@@ -2143,7 +2143,7 @@ ospf_recv_packet (int fd, struct interface **ifp, struct stream *ibuf)
int ret;
struct ip *iph;
u_int16_t ip_len;
- unsigned int ifindex = 0;
+ ifindex_t ifindex = 0;
struct iovec iov;
/* Header and data both require alignment. */
char buff [CMSG_SPACE(SOPT_SIZE_CMSG_IFINDEX_IPV4())];
diff --git a/ospfd/ospf_route.h b/ospfd/ospf_route.h
index d0b121db38..6b6d9f1fab 100644
--- a/ospfd/ospf_route.h
+++ b/ospfd/ospf_route.h
@@ -39,7 +39,7 @@ struct ospf_path
{
struct in_addr nexthop;
struct in_addr adv_router;
- unsigned int ifindex;
+ ifindex_t ifindex;
unsigned char unnumbered;
};
diff --git a/ospfd/ospf_snmp.c b/ospfd/ospf_snmp.c
index bedcb559bf..676756d6d9 100644
--- a/ospfd/ospf_snmp.c
+++ b/ospfd/ospf_snmp.c
@@ -1413,7 +1413,7 @@ static struct list *ospf_snmp_iflist;
struct ospf_snmp_if
{
struct in_addr addr;
- unsigned int ifindex;
+ ifindex_t ifindex;
struct interface *ifp;
};
@@ -1455,7 +1455,7 @@ ospf_snmp_if_update (struct interface *ifp)
struct prefix *p;
struct ospf_snmp_if *osif;
struct in_addr *addr;
- unsigned int ifindex;
+ ifindex_t ifindex;
ospf_snmp_if_delete (ifp);
@@ -1530,7 +1530,7 @@ ospf_snmp_is_if_have_addr (struct interface *ifp)
}
static struct ospf_interface *
-ospf_snmp_if_lookup (struct in_addr *ifaddr, unsigned int *ifindex)
+ospf_snmp_if_lookup (struct in_addr *ifaddr, ifindex_t *ifindex)
{
struct listnode *node;
struct ospf_snmp_if *osif;
@@ -1554,8 +1554,8 @@ ospf_snmp_if_lookup (struct in_addr *ifaddr, unsigned int *ifindex)
}
static struct ospf_interface *
-ospf_snmp_if_lookup_next (struct in_addr *ifaddr, unsigned int *ifindex,
- int ifaddr_next, int ifindex_next)
+ospf_snmp_if_lookup_next (struct in_addr *ifaddr, ifindex_t *ifindex,
+ int ifaddr_next, ifindex_t ifindex_next)
{
struct ospf_snmp_if *osif;
struct listnode *nn;
@@ -1638,11 +1638,11 @@ ospf_snmp_iftype (struct interface *ifp)
static struct ospf_interface *
ospfIfLookup (struct variable *v, oid *name, size_t *length,
- struct in_addr *ifaddr, unsigned int *ifindex, int exact)
+ struct in_addr *ifaddr, ifindex_t *ifindex, int exact)
{
unsigned int len;
int ifaddr_next = 0;
- int ifindex_next = 0;
+ ifindex_t ifindex_next = 0;
struct ospf_interface *oi;
oid *offset;
@@ -1694,7 +1694,7 @@ static u_char *
ospfIfEntry (struct variable *v, oid *name, size_t *length, int exact,
size_t *var_len, WriteMethod **write_method)
{
- unsigned int ifindex;
+ ifindex_t ifindex;
struct in_addr ifaddr;
struct ospf_interface *oi;
struct ospf *ospf;
@@ -1802,11 +1802,11 @@ ospfIfEntry (struct variable *v, oid *name, size_t *length, int exact,
static struct ospf_interface *
ospfIfMetricLookup (struct variable *v, oid *name, size_t *length,
- struct in_addr *ifaddr, unsigned int *ifindex, int exact)
+ struct in_addr *ifaddr, ifindex_t *ifindex, int exact)
{
unsigned int len;
int ifaddr_next = 0;
- int ifindex_next = 0;
+ ifindex_t ifindex_next = 0;
struct ospf_interface *oi;
oid *offset;
int metric;
@@ -1866,7 +1866,7 @@ ospfIfMetricEntry (struct variable *v, oid *name, size_t *length, int exact,
size_t *var_len, WriteMethod **write_method)
{
/* Currently we support metric 1 only. */
- unsigned int ifindex;
+ ifindex_t ifindex;
struct in_addr ifaddr;
struct ospf_interface *oi;
struct ospf *ospf;
@@ -2133,7 +2133,7 @@ ospfVirtIfEntry (struct variable *v, oid *name, size_t *length, int exact,
static struct ospf_neighbor *
ospf_snmp_nbr_lookup (struct ospf *ospf, struct in_addr *nbr_addr,
- unsigned int *ifindex)
+ ifindex_t *ifindex)
{
struct listnode *node, *nnode;
struct ospf_interface *oi;
@@ -2161,7 +2161,7 @@ ospf_snmp_nbr_lookup (struct ospf *ospf, struct in_addr *nbr_addr,
}
static struct ospf_neighbor *
-ospf_snmp_nbr_lookup_next (struct in_addr *nbr_addr, unsigned int *ifindex,
+ospf_snmp_nbr_lookup_next (struct in_addr *nbr_addr, ifindex_t *ifindex,
int first)
{
struct listnode *nn;
@@ -2208,7 +2208,7 @@ ospf_snmp_nbr_lookup_next (struct in_addr *nbr_addr, unsigned int *ifindex,
static struct ospf_neighbor *
ospfNbrLookup (struct variable *v, oid *name, size_t *length,
- struct in_addr *nbr_addr, unsigned int *ifindex, int exact)
+ struct in_addr *nbr_addr, ifindex_t *ifindex, int exact)
{
unsigned int len;
int first;
@@ -2303,7 +2303,7 @@ ospfNbrEntry (struct variable *v, oid *name, size_t *length, int exact,
size_t *var_len, WriteMethod **write_method)
{
struct in_addr nbr_addr;
- unsigned int ifindex;
+ ifindex_t ifindex;
struct ospf_neighbor *nbr;
struct ospf_interface *oi;
diff --git a/pimd/pim_iface.c b/pimd/pim_iface.c
index 3c60275027..a8a1d08805 100644
--- a/pimd/pim_iface.c
+++ b/pimd/pim_iface.c
@@ -772,7 +772,7 @@ void pim_if_del_vif_all()
}
}
-struct interface *pim_if_find_by_vif_index(int vif_index)
+struct interface *pim_if_find_by_vif_index(ifindex_t vif_index)
{
struct listnode *ifnode;
struct interface *ifp;
@@ -784,6 +784,7 @@ struct interface *pim_if_find_by_vif_index(int vif_index)
if (ifp->info) {
struct pim_interface *pim_ifp;
pim_ifp = ifp->info;
+
if (vif_index == pim_ifp->mroute_vif_index)
return ifp;
}
@@ -795,7 +796,7 @@ struct interface *pim_if_find_by_vif_index(int vif_index)
/*
pim_if_add_vif() uses ifindex as vif_index
*/
-int pim_if_find_vifindex_by_ifindex(int ifindex)
+int pim_if_find_vifindex_by_ifindex(ifindex_t ifindex)
{
struct pim_interface *pim_ifp;
struct interface *ifp;
@@ -954,7 +955,7 @@ static struct igmp_join *igmp_join_find(struct list *join_list,
}
static int igmp_join_sock(const char *ifname,
- int ifindex,
+ ifindex_t ifindex,
struct in_addr group_addr,
struct in_addr source_addr)
{
diff --git a/pimd/pim_iface.h b/pimd/pim_iface.h
index 15489f81fa..790afabea1 100644
--- a/pimd/pim_iface.h
+++ b/pimd/pim_iface.h
@@ -63,7 +63,7 @@ enum pim_interface_type {
struct pim_interface {
enum pim_interface_type itype;
uint32_t options; /* bit vector */
- int mroute_vif_index;
+ ifindex_t mroute_vif_index;
struct in_addr primary_address; /* remember addr to detect change */
int igmp_default_robustness_variable; /* IGMPv3 QRV */
@@ -133,8 +133,8 @@ int pim_if_del_vif(struct interface *ifp);
void pim_if_add_vif_all(void);
void pim_if_del_vif_all(void);
-struct interface *pim_if_find_by_vif_index(int vif_index);
-int pim_if_find_vifindex_by_ifindex(int ifindex);
+struct interface *pim_if_find_by_vif_index(ifindex_t vif_index);
+int pim_if_find_vifindex_by_ifindex(ifindex_t ifindex);
int pim_if_lan_delay_enabled(struct interface *ifp);
uint16_t pim_if_effective_propagation_delay_msec(struct interface *ifp);
diff --git a/pimd/pim_igmp.c b/pimd/pim_igmp.c
index 440d648723..3b63b10e0d 100644
--- a/pimd/pim_igmp.c
+++ b/pimd/pim_igmp.c
@@ -46,7 +46,7 @@
static void group_timer_off(struct igmp_group *group);
-static int igmp_sock_open(struct in_addr ifaddr, int ifindex, uint32_t pim_options)
+static int igmp_sock_open(struct in_addr ifaddr, ifindex_t ifindex, uint32_t pim_options)
{
int fd;
int join = 0;
@@ -971,7 +971,7 @@ static int pim_igmp_read(struct thread *t)
socklen_t tolen = sizeof(to);
uint8_t buf[PIM_IGMP_BUFSIZE_READ];
int len;
- int ifindex = -1;
+ ifindex_t ifindex = -1;
int result = -1; /* defaults to bad */
zassert(t);
@@ -1009,7 +1009,7 @@ static int pim_igmp_read(struct thread *t)
#ifdef PIM_CHECK_RECV_IFINDEX_SANITY
/* ifindex sanity check */
- if (ifindex != (int) igmp->interface->ifindex) {
+ if (ifindex != igmp->interface->ifindex) {
char from_str[100];
char to_str[100];
struct interface *ifp;
@@ -1021,7 +1021,7 @@ static int pim_igmp_read(struct thread *t)
ifp = if_lookup_by_index(ifindex);
if (ifp) {
- zassert(ifindex == (int) ifp->ifindex);
+ zassert(ifindex == ifp->ifindex);
}
#ifdef PIM_REPORT_RECV_IFINDEX_MISMATCH
diff --git a/pimd/pim_igmp_join.h b/pimd/pim_igmp_join.h
index 95519ff974..1700276de8 100644
--- a/pimd/pim_igmp_join.h
+++ b/pimd/pim_igmp_join.h
@@ -39,7 +39,7 @@ struct group_source_req
};
#endif
-static int pim_igmp_join_source(int fd, int ifindex,
+static int pim_igmp_join_source(int fd, ifindex_t ifindex,
struct in_addr group_addr,
struct in_addr source_addr)
{
diff --git a/pimd/pim_pim.c b/pimd/pim_pim.c
index eedbc116d8..0dfd39cd16 100644
--- a/pimd/pim_pim.c
+++ b/pimd/pim_pim.c
@@ -278,7 +278,7 @@ static int pim_sock_read(struct thread *t)
socklen_t tolen = sizeof(to);
uint8_t buf[PIM_PIM_BUFSIZE_READ];
int len;
- int ifindex = -1;
+ ifindex_t ifindex = -1;
int result = -1; /* defaults to bad */
zassert(t);
@@ -386,7 +386,7 @@ static void pim_sock_read_on(struct interface *ifp)
pim_ifp->pim_sock_fd);
}
-static int pim_sock_open(struct in_addr ifaddr, int ifindex)
+static int pim_sock_open(struct in_addr ifaddr, ifindex_t ifindex)
{
int fd;
diff --git a/pimd/pim_sock.c b/pimd/pim_sock.c
index e04cd41575..a024e3ae01 100644
--- a/pimd/pim_sock.c
+++ b/pimd/pim_sock.c
@@ -213,7 +213,7 @@ int pim_socket_mcast(int protocol, struct in_addr ifaddr, int ifindex, int loop)
}
int pim_socket_join(int fd, struct in_addr group,
- struct in_addr ifaddr, int ifindex)
+ struct in_addr ifaddr, ifindex_t ifindex)
{
int ret;
@@ -261,7 +261,7 @@ int pim_socket_join(int fd, struct in_addr group,
return ret;
}
-int pim_socket_join_source(int fd, int ifindex,
+int pim_socket_join_source(int fd, ifindex_t ifindex,
struct in_addr group_addr,
struct in_addr source_addr,
const char *ifname)
@@ -285,7 +285,7 @@ int pim_socket_join_source(int fd, int ifindex,
int pim_socket_recvfromto(int fd, uint8_t *buf, size_t len,
struct sockaddr_in *from, socklen_t *fromlen,
struct sockaddr_in *to, socklen_t *tolen,
- int *ifindex)
+ ifindex_t *ifindex)
{
struct msghdr msgh;
struct cmsghdr *cmsg;
diff --git a/pimd/pim_sock.h b/pimd/pim_sock.h
index 9a9b64a4a3..f0a1600818 100644
--- a/pimd/pim_sock.h
+++ b/pimd/pim_sock.h
@@ -41,15 +41,15 @@
int pim_socket_raw(int protocol);
int pim_socket_mcast(int protocol, struct in_addr ifaddr, int ifindex, int loop);
int pim_socket_join(int fd, struct in_addr group,
- struct in_addr ifaddr, int ifindex);
-int pim_socket_join_source(int fd, int ifindex,
+ struct in_addr ifaddr, ifindex_t ifindex);
+int pim_socket_join_source(int fd, ifindex_t ifindex,
struct in_addr group_addr,
struct in_addr source_addr,
const char *ifname);
int pim_socket_recvfromto(int fd, uint8_t *buf, size_t len,
struct sockaddr_in *from, socklen_t *fromlen,
struct sockaddr_in *to, socklen_t *tolen,
- int *ifindex);
+ ifindex_t *ifindex);
int pim_socket_mcastloop_get(int fd);
diff --git a/pimd/pim_ssmpingd.c b/pimd/pim_ssmpingd.c
index d564bf57bc..fe88eba271 100644
--- a/pimd/pim_ssmpingd.c
+++ b/pimd/pim_ssmpingd.c
@@ -250,7 +250,7 @@ static int ssmpingd_read_msg(struct ssmpingd_sock *ss)
struct sockaddr_in to;
socklen_t fromlen = sizeof(from);
socklen_t tolen = sizeof(to);
- int ifindex = -1;
+ ifindex_t ifindex = -1;
uint8_t buf[1000];
int len;
diff --git a/pimd/pim_static.c b/pimd/pim_static.c
index 1931f1ee6c..c1154dc088 100644
--- a/pimd/pim_static.c
+++ b/pimd/pim_static.c
@@ -85,8 +85,8 @@ int pim_static_add(struct interface *iif, struct interface *oif, struct in_addr
struct static_route *original_s_route = 0;
struct pim_interface *pim_iif = iif ? iif->info : 0;
struct pim_interface *pim_oif = oif ? oif->info : 0;
- unsigned int iif_index = pim_iif ? pim_iif->mroute_vif_index : 0;
- unsigned int oif_index = pim_oif ? pim_oif->mroute_vif_index : 0;
+ ifindex_t iif_index = pim_iif ? pim_iif->mroute_vif_index : 0;
+ ifindex_t oif_index = pim_oif ? pim_oif->mroute_vif_index : 0;
if (!iif_index || !oif_index) {
zlog_warn("%s %s: Unable to add static route: Invalid interface index(iif=%d,oif=%d)",
@@ -229,8 +229,8 @@ int pim_static_del(struct interface *iif, struct interface *oif, struct in_addr
struct static_route *s_route = 0;
struct pim_interface *pim_iif = iif ? iif->info : 0;
struct pim_interface *pim_oif = oif ? oif->info : 0;
- unsigned int iif_index = pim_iif ? pim_iif->mroute_vif_index : 0;
- unsigned int oif_index = pim_oif ? pim_oif->mroute_vif_index : 0;
+ ifindex_t iif_index = pim_iif ? pim_iif->mroute_vif_index : 0;
+ ifindex_t oif_index = pim_oif ? pim_oif->mroute_vif_index : 0;
if (!iif_index || !oif_index) {
zlog_warn("%s %s: Unable to remove static route: Invalid interface index(iif=%d,oif=%d)",
diff --git a/pimd/pim_static.h b/pimd/pim_static.h
index ff89fb150e..07d31d59b7 100644
--- a/pimd/pim_static.h
+++ b/pimd/pim_static.h
@@ -33,7 +33,7 @@ struct static_route {
struct in_addr source;
struct channel_oil c_oil;
- unsigned int iif;
+ ifindex_t iif;
unsigned char oif_ttls[MAXVIFS];
};
diff --git a/pimd/pim_zebra.c b/pimd/pim_zebra.c
index efab00e227..d357e5cc83 100644
--- a/pimd/pim_zebra.c
+++ b/pimd/pim_zebra.c
@@ -533,7 +533,7 @@ static int redist_read_ipv4_route(int command, struct zclient *zclient,
{
struct stream *s;
struct zapi_ipv4 api;
- unsigned long ifindex;
+ ifindex_t ifindex;
struct in_addr nexthop;
struct prefix_ipv4 p;
int min_len = 4;
@@ -620,7 +620,7 @@ static int redist_read_ipv4_route(int command, struct zclient *zclient,
if (PIM_DEBUG_ZEBRA) {
char buf[2][INET_ADDRSTRLEN];
zlog_debug("%s: add %s %s/%d "
- "nexthop %s ifindex %ld metric%s %u distance%s %u",
+ "nexthop %s ifindex %d metric%s %u distance%s %u",
__PRETTY_FUNCTION__,
zebra_route_string(api.type),
inet_ntop(AF_INET, &p.prefix, buf[0], sizeof(buf[0])),
@@ -638,7 +638,7 @@ static int redist_read_ipv4_route(int command, struct zclient *zclient,
if (PIM_DEBUG_ZEBRA) {
char buf[2][INET_ADDRSTRLEN];
zlog_debug("%s: delete %s %s/%d "
- "nexthop %s ifindex %ld metric%s %u distance%s %u",
+ "nexthop %s ifindex %d metric%s %u distance%s %u",
__PRETTY_FUNCTION__,
zebra_route_string(api.type),
inet_ntop(AF_INET, &p.prefix, buf[0], sizeof(buf[0])),
@@ -763,7 +763,7 @@ static int fib_lookup_if_vif_index(struct in_addr addr)
struct pim_zlookup_nexthop nexthop_tab[PIM_NEXTHOP_IFINDEX_TAB_SIZE];
int num_ifindex;
int vif_index;
- int first_ifindex;
+ ifindex_t first_ifindex;
num_ifindex = zclient_lookup_nexthop(qpim_zclient_lookup, nexthop_tab,
PIM_NEXTHOP_IFINDEX_TAB_SIZE, addr,
diff --git a/pimd/pim_zlookup.h b/pimd/pim_zlookup.h
index 1f184942ca..f2be6d4fa0 100644
--- a/pimd/pim_zlookup.h
+++ b/pimd/pim_zlookup.h
@@ -31,7 +31,7 @@
struct pim_zlookup_nexthop {
struct in_addr nexthop_addr;
- int ifindex;
+ ifindex_t ifindex;
uint32_t route_metric;
uint8_t protocol_distance;
};
diff --git a/pimd/test_igmpv3_join.c b/pimd/test_igmpv3_join.c
index 7fcf38bcec..5c4574024b 100644
--- a/pimd/test_igmpv3_join.c
+++ b/pimd/test_igmpv3_join.c
@@ -32,6 +32,7 @@
#include <net/if.h>
#include <arpa/inet.h>
+#include "if.h"
#include "pim_igmp_join.h"
const char *prog_name = 0;
@@ -39,7 +40,7 @@ const char *prog_name = 0;
static int iface_solve_index(const char *ifname)
{
struct if_nameindex *ini;
- int ifindex = -1;
+ ifindex_t ifindex = -1;
int i;
if (!ifname)
@@ -79,7 +80,7 @@ int main(int argc, const char *argv[])
const char *ifname;
const char *group;
const char *source;
- int ifindex;
+ ifindex_t ifindex;
int result;
int fd;
diff --git a/ripd/rip_interface.c b/ripd/rip_interface.c
index 4499966ad0..09b35d00b9 100644
--- a/ripd/rip_interface.c
+++ b/ripd/rip_interface.c
@@ -74,7 +74,7 @@ static int
ipv4_multicast_join (int sock,
struct in_addr group,
struct in_addr ifa,
- unsigned int ifindex)
+ ifindex_t ifindex)
{
int ret;
@@ -96,7 +96,7 @@ static int
ipv4_multicast_leave (int sock,
struct in_addr group,
struct in_addr ifa,
- unsigned int ifindex)
+ ifindex_t ifindex)
{
int ret;
diff --git a/ripd/ripd.c b/ripd/ripd.c
index 42f1015453..3a8cd80e7a 100644
--- a/ripd/ripd.c
+++ b/ripd/ripd.c
@@ -1579,7 +1579,7 @@ rip_send_packet (u_char * buf, int size, struct sockaddr_in *to,
/* Add redistributed route to RIP table. */
void
rip_redistribute_add (int type, int sub_type, struct prefix_ipv4 *p,
- unsigned int ifindex, struct in_addr *nexthop,
+ ifindex_t ifindex, struct in_addr *nexthop,
unsigned int metric, unsigned char distance)
{
int ret;
@@ -1653,7 +1653,7 @@ rip_redistribute_add (int type, int sub_type, struct prefix_ipv4 *p,
/* Delete redistributed route from RIP table. */
void
rip_redistribute_delete (int type, int sub_type, struct prefix_ipv4 *p,
- unsigned int ifindex)
+ ifindex_t ifindex)
{
int ret;
struct route_node *rp;
@@ -1795,7 +1795,7 @@ setsockopt_pktinfo (int sock)
/* Read RIP packet by recvmsg function. */
int
rip_recvmsg (int sock, u_char *buf, int size, struct sockaddr_in *from,
- int *ifindex)
+ ifindex_t *ifindex)
{
int ret;
struct msghdr msg;
@@ -1836,7 +1836,7 @@ rip_read_new (struct thread *t)
int sock;
char buf[RIP_PACKET_MAXSIZ];
struct sockaddr_in from;
- unsigned int ifindex;
+ ifindex_t ifindex;
/* Fetch socket then register myself. */
sock = THREAD_FD (t);
diff --git a/ripd/ripd.h b/ripd/ripd.h
index fe9e521d88..d01d0b6bbe 100644
--- a/ripd/ripd.h
+++ b/ripd/ripd.h
@@ -198,7 +198,7 @@ struct rip_info
struct in_addr from;
/* Which interface does this route come from. */
- unsigned int ifindex;
+ ifindex_t ifindex;
/* Metric of this route. */
u_int32_t metric;
@@ -224,7 +224,7 @@ struct rip_info
u_char metric_set;
u_int32_t metric_out;
u_short tag_out;
- unsigned int ifindex_out;
+ ifindex_t ifindex_out;
struct route_node *rp;
@@ -400,9 +400,9 @@ extern int rip_request_send (struct sockaddr_in *, struct interface *, u_char,
extern int rip_neighbor_lookup (struct sockaddr_in *);
extern int rip_redistribute_check (int);
-extern void rip_redistribute_add (int, int, struct prefix_ipv4 *, unsigned int,
+extern void rip_redistribute_add (int, int, struct prefix_ipv4 *, ifindex_t,
struct in_addr *, unsigned int, unsigned char);
-extern void rip_redistribute_delete (int, int, struct prefix_ipv4 *, unsigned int);
+extern void rip_redistribute_delete (int, int, struct prefix_ipv4 *, ifindex_t);
extern void rip_redistribute_withdraw (int);
extern void rip_zebra_ipv4_add (struct route_node *);
extern void rip_zebra_ipv4_delete (struct route_node *);
diff --git a/ripngd/ripng_zebra.c b/ripngd/ripng_zebra.c
index ecfe2d5154..d8667cb68c 100644
--- a/ripngd/ripng_zebra.c
+++ b/ripngd/ripng_zebra.c
@@ -42,7 +42,7 @@ static void
ripng_zebra_ipv6_send (struct route_node *rp, u_char cmd)
{
static struct in6_addr **nexthops = NULL;
- static unsigned int *ifindexes = NULL;
+ static ifindex_t *ifindexes = NULL;
static unsigned int nexthops_len = 0;
struct list *list = (struct list *)rp->info;
diff --git a/ripngd/ripngd.c b/ripngd/ripngd.c
index b786c6f938..2858bb6462 100644
--- a/ripngd/ripngd.c
+++ b/ripngd/ripngd.c
@@ -229,7 +229,7 @@ ripng_send_packet (caddr_t buf, int bufsize, struct sockaddr_in6 *to,
/* Receive UDP RIPng packet from socket. */
static int
ripng_recv_packet (int sock, u_char *buf, int bufsize,
- struct sockaddr_in6 *from, unsigned int *ifindex,
+ struct sockaddr_in6 *from, ifindex_t *ifindex,
int *hoplimit)
{
int ret;
@@ -973,7 +973,7 @@ ripng_route_process (struct rte *rte, struct sockaddr_in6 *from,
/* Add redistributed route to RIPng table. */
void
ripng_redistribute_add (int type, int sub_type, struct prefix_ipv6 *p,
- unsigned int ifindex, struct in6_addr *nexthop)
+ ifindex_t ifindex, struct in6_addr *nexthop)
{
struct route_node *rp;
struct ripng_info *rinfo = NULL, newinfo;
@@ -1043,7 +1043,7 @@ ripng_redistribute_add (int type, int sub_type, struct prefix_ipv6 *p,
/* Delete redistributed route to RIPng table. */
void
ripng_redistribute_delete (int type, int sub_type, struct prefix_ipv6 *p,
- unsigned int ifindex)
+ ifindex_t ifindex)
{
struct route_node *rp;
struct ripng_info *rinfo;
@@ -1361,7 +1361,7 @@ ripng_read (struct thread *thread)
int sock;
struct sockaddr_in6 from;
struct ripng_packet *packet;
- unsigned int ifindex = 0;
+ ifindex_t ifindex = 0;
struct interface *ifp;
int hoplimit = -1;
diff --git a/ripngd/ripngd.h b/ripngd/ripngd.h
index 1496de08bf..b87b927f48 100644
--- a/ripngd/ripngd.h
+++ b/ripngd/ripngd.h
@@ -176,7 +176,7 @@ struct ripng_info
struct in6_addr from;
/* Which interface does this route come from. */
- unsigned int ifindex;
+ ifindex_t ifindex;
/* Metric of this route. */
u_char metric;
@@ -381,9 +381,9 @@ extern void ripng_info_free (struct ripng_info *rinfo);
extern void ripng_event (enum ripng_event, int);
extern int ripng_request (struct interface *ifp);
extern void ripng_redistribute_add (int, int, struct prefix_ipv6 *,
- unsigned int, struct in6_addr *);
+ ifindex_t, struct in6_addr *);
extern void ripng_redistribute_delete (int, int, struct prefix_ipv6 *,
- unsigned int);
+ ifindex_t);
extern void ripng_redistribute_withdraw (int type);
extern void ripng_distribute_update_interface (struct interface *);
diff --git a/zebra/kernel_socket.c b/zebra/kernel_socket.c
index 23224dc241..638062d5d6 100644
--- a/zebra/kernel_socket.c
+++ b/zebra/kernel_socket.c
@@ -988,7 +988,7 @@ rtm_read (struct rt_msghdr *rtm)
if (rtm->rtm_type != RTM_GET && rtm->rtm_pid == pid)
return;
struct prefix_ipv6 p;
- unsigned int ifindex = 0;
+ ifindex_t ifindex = 0;
p.family = AF_INET6;
p.prefix = dest.sin6.sin6_addr;
diff --git a/zebra/rib.h b/zebra/rib.h
index 5e0bce4461..291ee0b714 100644
--- a/zebra/rib.h
+++ b/zebra/rib.h
@@ -203,7 +203,7 @@ struct static_route
* STATIC_IFINDEX uses ifindex
*/
union g_addr addr;
- unsigned int ifindex;
+ ifindex_t ifindex;
char ifname[INTERFACE_NAMSIZ + 1];
@@ -215,7 +215,6 @@ struct static_route
*/
};
-
/* The following for loop allows to iterate over the nexthop
* structure of routes.
*
@@ -321,14 +320,14 @@ typedef enum
RIB_UPDATE_OTHER
} rib_update_event_t;
-extern struct nexthop *rib_nexthop_ifindex_add (struct rib *, unsigned int);
+extern struct nexthop *rib_nexthop_ifindex_add (struct rib *, ifindex_t);
extern struct nexthop *rib_nexthop_blackhole_add (struct rib *);
extern struct nexthop *rib_nexthop_ipv4_add (struct rib *, struct in_addr *,
struct in_addr *);
extern struct nexthop *rib_nexthop_ipv4_ifindex_add (struct rib *,
struct in_addr *,
struct in_addr *,
- unsigned int);
+ ifindex_t);
extern void rib_nexthop_add (struct rib *rib, struct nexthop *nexthop);
extern void rib_copy_nexthops (struct rib *rib, struct nexthop *nh);
@@ -364,7 +363,7 @@ extern int rib_lookup_ipv4_route (struct prefix_ipv4 *, union sockunion *,
extern struct nexthop *rib_nexthop_ipv6_add (struct rib *, struct in6_addr *);
extern struct nexthop *rib_nexthop_ipv6_ifindex_add (struct rib *rib,
struct in6_addr *ipv6,
- unsigned int ifindex);
+ ifindex_t ifindex);
extern int is_zebra_valid_kernel_table(u_int32_t table_id);
extern int is_zebra_main_routing_table(u_int32_t table_id);
@@ -375,13 +374,13 @@ extern int zebra_check_addr (struct prefix *p);
* also implicitly withdraw equal prefix of same type. */
extern int rib_add_ipv4 (int type, u_short instance, int flags, struct prefix_ipv4 *p,
struct in_addr *gate, struct in_addr *src,
- unsigned int ifindex, vrf_id_t vrf_id, u_int32_t table_id,
+ ifindex_t ifindex, vrf_id_t vrf_id, u_int32_t table_id,
u_int32_t, u_char, safi_t);
extern int rib_add_ipv4_multipath (struct prefix_ipv4 *, struct rib *, safi_t);
extern int rib_delete_ipv4 (int type, u_short instance, int flags, struct prefix_ipv4 *p,
- struct in_addr *gate, unsigned int ifindex,
+ struct in_addr *gate, ifindex_t ifindex,
vrf_id_t, u_int32_t, safi_t safi);
extern struct rib *rib_match_ipv4 (struct in_addr, safi_t safi, vrf_id_t,
@@ -406,22 +405,22 @@ extern void
static_uninstall_route (afi_t afi, safi_t safi, struct prefix *p, struct static_route *si);
extern int
-static_add_ipv4 (safi_t safi, struct prefix *p, struct in_addr *gate, unsigned int ifindex,
+static_add_ipv4 (safi_t safi, struct prefix *p, struct in_addr *gate, ifindex_t ifindex,
const char *ifname, u_char flags, u_short tag,
u_char distance, struct zebra_vrf *zvrf);
extern int
-static_delete_ipv4 (safi_t safi, struct prefix *p, struct in_addr *gate, unsigned int ifindex,
+static_delete_ipv4 (safi_t safi, struct prefix *p, struct in_addr *gate, ifindex_t ifindex,
u_short tag, u_char distance, struct zebra_vrf *zvrf);
extern int
rib_add_ipv6 (int type, u_short instance, int flags, struct prefix_ipv6 *p,
- struct in6_addr *gate, unsigned int ifindex, vrf_id_t vrf_id,
+ struct in6_addr *gate, ifindex_t ifindex, vrf_id_t vrf_id,
u_int32_t table_id, u_int32_t metric, u_char distance, safi_t safi);
extern int
rib_delete_ipv6 (int type, u_short instance, int flags, struct prefix_ipv6 *p,
- struct in6_addr *gate, unsigned int ifindex, vrf_id_t vrf_id,
+ struct in6_addr *gate, ifindex_t ifindex, vrf_id_t vrf_id,
u_int32_t table_id, safi_t safi);
extern struct rib *rib_lookup_ipv6 (struct in6_addr *, vrf_id_t);
@@ -432,16 +431,16 @@ extern struct route_table *rib_table_ipv6;
extern int
static_add_ipv6 (struct prefix *p, u_char type, struct in6_addr *gate,
- unsigned int ifindex, const char *ifname, u_char flags,
+ ifindex_t ifindex, const char *ifname, u_char flags,
u_short tag, u_char distance, struct zebra_vrf *zvrf);
extern int
rib_add_ipv6_multipath (struct prefix *, struct rib *, safi_t,
- unsigned long);
+ ifindex_t);
extern int
static_delete_ipv6 (struct prefix *p, u_char type, struct in6_addr *gate,
- unsigned int ifindex, u_short tag, u_char distance,
+ ifindex_t ifindex, u_short tag, u_char distance,
struct zebra_vrf *zvrf);
extern int rib_gc_dest (struct route_node *rn);
diff --git a/zebra/rt_netlink.c b/zebra/rt_netlink.c
index bd1c923506..d93a530317 100644
--- a/zebra/rt_netlink.c
+++ b/zebra/rt_netlink.c
@@ -74,7 +74,7 @@ extern u_int32_t nl_rcvbufsize;
/* Note: on netlink systems, there should be a 1-to-1 mapping between interface
names and ifindex values. */
static void
-set_ifindex(struct interface *ifp, unsigned int ifi_index)
+set_ifindex(struct interface *ifp, ifindex_t ifi_index)
{
struct interface *oifp;
struct zebra_ns *zns = zebra_ns_lookup (NS_DEFAULT);
diff --git a/zebra/rt_socket.c b/zebra/rt_socket.c
index ffb0d088a7..24671829f0 100644
--- a/zebra/rt_socket.c
+++ b/zebra/rt_socket.c
@@ -76,7 +76,7 @@ kernel_rtm_ipv4 (int cmd, struct prefix *p, struct rib *rib, int family)
struct nexthop *nexthop, *tnexthop;
int recursing;
int nexthop_num = 0;
- unsigned int ifindex = 0;
+ ifindex_t ifindex = 0;
int gate = 0;
int error;
char prefix_buf[PREFIX_STRLEN];
@@ -287,7 +287,7 @@ kernel_rtm_ipv6_multipath (int cmd, struct prefix *p, struct rib *rib,
struct nexthop *nexthop, *tnexthop;
int recursing;
int nexthop_num = 0;
- unsigned int ifindex = 0;
+ ifindex_t ifindex = 0;
int gate = 0;
int error;
diff --git a/zebra/rtadv.c b/zebra/rtadv.c
index f3f1cee14b..8333d2e08c 100644
--- a/zebra/rtadv.c
+++ b/zebra/rtadv.c
@@ -70,7 +70,7 @@ static int if_join_all_router (int, struct interface *);
static int if_leave_all_router (int, struct interface *);
static int
-rtadv_increment_received(struct zebra_ns *zns, unsigned int *ifindex)
+rtadv_increment_received(struct zebra_ns *zns, ifindex_t *ifindex)
{
int ret = -1;
struct interface *iface;
@@ -88,7 +88,7 @@ rtadv_increment_received(struct zebra_ns *zns, unsigned int *ifindex)
static int
rtadv_recv_packet (struct zebra_ns *zns, int sock, u_char *buf, int buflen,
- struct sockaddr_in6 *from, unsigned int *ifindex,
+ struct sockaddr_in6 *from, ifindex_t *ifindex,
int *hoplimit)
{
int ret;
@@ -534,7 +534,7 @@ rtadv_process_advert (u_char *msg, unsigned int len, struct interface *ifp,
static void
-rtadv_process_packet (u_char *buf, unsigned int len, unsigned int ifindex, int hoplimit,
+rtadv_process_packet (u_char *buf, unsigned int len, ifindex_t ifindex, int hoplimit,
struct sockaddr_in6 *from, struct zebra_ns *zns)
{
struct icmp6_hdr *icmph;
@@ -609,7 +609,7 @@ rtadv_read (struct thread *thread)
int len;
u_char buf[RTADV_MSG_SIZE];
struct sockaddr_in6 from;
- unsigned int ifindex = 0;
+ ifindex_t ifindex = 0;
int hoplimit = -1;
struct zebra_ns *zns = THREAD_ARG (thread);
diff --git a/zebra/test_main.c b/zebra/test_main.c
index 902c675aef..95c56bb046 100644
--- a/zebra/test_main.c
+++ b/zebra/test_main.c
@@ -112,7 +112,7 @@ usage (char *progname, int status)
exit (status);
}
-static unsigned int test_ifindex = 0;
+static ifindex_t test_ifindex = 0;
/* testrib commands */
DEFUN (test_interface_state,
diff --git a/zebra/zebra_rib.c b/zebra/zebra_rib.c
index 3aa9356fe6..16f43f7312 100644
--- a/zebra/zebra_rib.c
+++ b/zebra/zebra_rib.c
@@ -21,12 +21,12 @@
#include <zebra.h>
+#include "if.h"
#include "prefix.h"
#include "table.h"
#include "memory.h"
#include "str.h"
#include "command.h"
-#include "if.h"
#include "log.h"
#include "sockunion.h"
#include "linklist.h"
@@ -210,7 +210,7 @@ rib_nexthop_delete (struct rib *rib, struct nexthop *nexthop)
struct nexthop *
-rib_nexthop_ifindex_add (struct rib *rib, unsigned int ifindex)
+rib_nexthop_ifindex_add (struct rib *rib, ifindex_t ifindex)
{
struct nexthop *nexthop;
@@ -241,7 +241,7 @@ rib_nexthop_ipv4_add (struct rib *rib, struct in_addr *ipv4, struct in_addr *src
struct nexthop *
rib_nexthop_ipv4_ifindex_add (struct rib *rib, struct in_addr *ipv4,
- struct in_addr *src, unsigned int ifindex)
+ struct in_addr *src, ifindex_t ifindex)
{
struct nexthop *nexthop;
struct interface *ifp;
@@ -281,7 +281,7 @@ rib_nexthop_ipv6_add (struct rib *rib, struct in6_addr *ipv6)
struct nexthop *
rib_nexthop_ipv6_ifindex_add (struct rib *rib, struct in6_addr *ipv6,
- unsigned int ifindex)
+ ifindex_t ifindex)
{
struct nexthop *nexthop;
@@ -1199,8 +1199,8 @@ nexthop_active_update (struct route_node *rn, struct rib *rib, int set)
{
struct nexthop *nexthop;
union g_addr prev_src;
- unsigned int prev_active, prev_index, new_active, old_num_nh;
-
+ unsigned int prev_active, new_active, old_num_nh;
+ ifindex_t prev_index;
old_num_nh = rib->nexthop_active_num;
rib->nexthop_active_num = 0;
@@ -2413,7 +2413,7 @@ rib_delnode (struct route_node *rn, struct rib *rib)
int
rib_add_ipv4 (int type, u_short instance, int flags, struct prefix_ipv4 *p,
struct in_addr *gate, struct in_addr *src,
- unsigned int ifindex, vrf_id_t vrf_id, u_int32_t table_id,
+ ifindex_t ifindex, vrf_id_t vrf_id, u_int32_t table_id,
u_int32_t metric, u_char distance, safi_t safi)
{
struct rib *rib;
@@ -2770,7 +2770,7 @@ rib_add_ipv4_multipath (struct prefix_ipv4 *p, struct rib *rib, safi_t safi)
/* XXX factor with rib_delete_ipv6 */
int
rib_delete_ipv4 (int type, u_short instance, int flags, struct prefix_ipv4 *p,
- struct in_addr *gate, unsigned int ifindex, vrf_id_t vrf_id,
+ struct in_addr *gate, ifindex_t ifindex, vrf_id_t vrf_id,
u_int32_t table_id, safi_t safi)
{
struct route_table *table;
@@ -3182,7 +3182,7 @@ static_uninstall_route (afi_t afi, safi_t safi, struct prefix *p, struct static_
}
int
-static_add_ipv4 (safi_t safi, struct prefix *p, struct in_addr *gate, unsigned int ifindex,
+static_add_ipv4 (safi_t safi, struct prefix *p, struct in_addr *gate, ifindex_t ifindex,
const char *ifname, u_char flags, u_short tag,
u_char distance, struct zebra_vrf *zvrf)
{
@@ -3278,7 +3278,7 @@ static_add_ipv4 (safi_t safi, struct prefix *p, struct in_addr *gate, unsigned i
}
int
-static_delete_ipv4 (safi_t safi, struct prefix *p, struct in_addr *gate, unsigned int ifindex,
+static_delete_ipv4 (safi_t safi, struct prefix *p, struct in_addr *gate, ifindex_t ifindex,
u_short tag, u_char distance, struct zebra_vrf *zvrf)
{
u_char type = 0;
@@ -3341,7 +3341,7 @@ static_delete_ipv4 (safi_t safi, struct prefix *p, struct in_addr *gate, unsigne
int
rib_add_ipv6 (int type, u_short instance, int flags, struct prefix_ipv6 *p,
- struct in6_addr *gate, unsigned int ifindex, vrf_id_t vrf_id,
+ struct in6_addr *gate, ifindex_t ifindex, vrf_id_t vrf_id,
u_int32_t table_id, u_int32_t metric, u_char distance, safi_t safi)
{
struct rib *rib;
@@ -3450,7 +3450,7 @@ rib_add_ipv6 (int type, u_short instance, int flags, struct prefix_ipv6 *p,
int
rib_add_ipv6_multipath (struct prefix *p, struct rib *rib, safi_t safi,
- unsigned long ifindex)
+ ifindex_t ifindex)
{
struct route_table *table;
struct route_node *rn;
@@ -3565,7 +3565,7 @@ rib_add_ipv6_multipath (struct prefix *p, struct rib *rib, safi_t safi,
int
rib_delete_ipv6 (int type, u_short instance, int flags, struct prefix_ipv6 *p,
- struct in6_addr *gate, unsigned int ifindex, vrf_id_t vrf_id,
+ struct in6_addr *gate, ifindex_t ifindex, vrf_id_t vrf_id,
u_int32_t table_id, safi_t safi)
{
struct route_table *table;
@@ -3702,7 +3702,7 @@ rib_delete_ipv6 (int type, u_short instance, int flags, struct prefix_ipv6 *p,
/* Add static route into static route configuration. */
int
static_add_ipv6 (struct prefix *p, u_char type, struct in6_addr *gate,
- unsigned int ifindex, const char *ifname, u_char flags,
+ ifindex_t ifindex, const char *ifname, u_char flags,
u_short tag, u_char distance, struct zebra_vrf *zvrf)
{
struct route_node *rn;
@@ -3798,7 +3798,7 @@ static_add_ipv6 (struct prefix *p, u_char type, struct in6_addr *gate,
/* Delete static route from static route configuration. */
int
static_delete_ipv6 (struct prefix *p, u_char type, struct in6_addr *gate,
- unsigned int ifindex, u_short tag, u_char distance,
+ ifindex_t ifindex, u_short tag, u_char distance,
struct zebra_vrf *zvrf)
{
struct route_node *rn;
diff --git a/zebra/zebra_routemap.c b/zebra/zebra_routemap.c
index db3e5eaba1..1417824d07 100644
--- a/zebra/zebra_routemap.c
+++ b/zebra/zebra_routemap.c
@@ -252,7 +252,7 @@ route_match_interface (void *rule, struct prefix *prefix,
{
struct nh_rmap_obj *nh_data;
char *ifname = rule;
- unsigned int ifindex;
+ ifindex_t ifindex;
if (type == RMAP_ZEBRA)
{
diff --git a/zebra/zserv.c b/zebra/zserv.c
index d625c02ff4..a1fe9bc188 100644
--- a/zebra/zserv.c
+++ b/zebra/zserv.c
@@ -1188,7 +1188,7 @@ zread_ipv4_add (struct zserv *client, u_short length, struct zebra_vrf *zvrf)
u_char nexthop_num;
u_char nexthop_type;
struct stream *s;
- unsigned int ifindex;
+ ifindex_t ifindex;
safi_t safi;
int ret;