diff options
Diffstat (limited to 'lib/if.c')
| -rw-r--r-- | lib/if.c | 28 |
1 files changed, 16 insertions, 12 deletions
@@ -217,14 +217,16 @@ struct interface *if_create_name(const char *name, vrf_id_t vrf_id) return ifp; } -struct interface *if_create_ifindex(ifindex_t ifindex, vrf_id_t vrf_id) +struct interface *if_create_ifindex(ifindex_t ifindex, vrf_id_t vrf_id, + char *optional_name) { struct interface *ifp; ifp = if_new(vrf_id); if_set_index(ifp, ifindex); - + if (optional_name) + if_set_name(ifp, optional_name); hook_call(if_add, ifp); return ifp; } @@ -410,7 +412,7 @@ struct interface *if_lookup_by_index_all_vrf(ifindex_t ifindex) } /* Lookup interface by IP address. */ -struct interface *if_lookup_exact_address(void *src, int family, +struct interface *if_lookup_exact_address(const void *src, int family, vrf_id_t vrf_id) { struct vrf *vrf = vrf_lookup_by_id(vrf_id); @@ -442,7 +444,7 @@ struct interface *if_lookup_exact_address(void *src, int family, } /* Lookup interface by IP address. */ -struct connected *if_lookup_address(void *matchaddr, int family, +struct connected *if_lookup_address(const void *matchaddr, int family, vrf_id_t vrf_id) { struct vrf *vrf = vrf_lookup_by_id(vrf_id); @@ -479,7 +481,7 @@ struct connected *if_lookup_address(void *matchaddr, int family, } /* Lookup interface by prefix */ -struct interface *if_lookup_prefix(struct prefix *prefix, vrf_id_t vrf_id) +struct interface *if_lookup_prefix(const struct prefix *prefix, vrf_id_t vrf_id) { struct vrf *vrf = vrf_lookup_by_id(vrf_id); struct listnode *cnode; @@ -554,7 +556,8 @@ struct interface *if_get_by_name(const char *name, vrf_id_t vrf_id) return NULL; } -struct interface *if_get_by_ifindex(ifindex_t ifindex, vrf_id_t vrf_id) +struct interface *if_get_by_ifindex(ifindex_t ifindex, vrf_id_t vrf_id, + char *optional_name) { struct interface *ifp; @@ -564,7 +567,7 @@ struct interface *if_get_by_ifindex(ifindex_t ifindex, vrf_id_t vrf_id) ifp = if_lookup_by_ifindex(ifindex, vrf_id); if (ifp) return ifp; - return if_create_ifindex(ifindex, vrf_id); + return if_create_ifindex(ifindex, vrf_id, optional_name); case VRF_BACKEND_VRF_LITE: ifp = if_lookup_by_index_all_vrf(ifindex); if (ifp) { @@ -576,7 +579,7 @@ struct interface *if_get_by_ifindex(ifindex_t ifindex, vrf_id_t vrf_id) if_update_to_new_vrf(ifp, vrf_id); return ifp; } - return if_create_ifindex(ifindex, vrf_id); + return if_create_ifindex(ifindex, vrf_id, optional_name); } return NULL; @@ -982,7 +985,8 @@ nbr_connected_log(struct nbr_connected *connected, char *str) } /* If two connected address has same prefix return 1. */ -static int connected_same_prefix(struct prefix *p1, struct prefix *p2) +static int connected_same_prefix(const struct prefix *p1, + const struct prefix *p2) { if (p1->family == p2->family) { if (p1->family == AF_INET @@ -1010,7 +1014,7 @@ unsigned int connected_count_by_family(struct interface *ifp, int family) } struct connected *connected_lookup_prefix_exact(struct interface *ifp, - struct prefix *p) + const struct prefix *p) { struct listnode *node; struct listnode *next; @@ -1049,7 +1053,7 @@ struct connected *connected_delete_by_prefix(struct interface *ifp, /* Find the address on our side that will be used when packets are sent to dst. */ struct connected *connected_lookup_prefix(struct interface *ifp, - struct prefix *addr) + const struct prefix *addr) { struct listnode *cnode; struct connected *c; @@ -1273,7 +1277,7 @@ struct if_link_params *if_link_params_get(struct interface *ifp) /* Compute default bandwidth based on interface */ iflp->default_bw = ((ifp->bandwidth ? ifp->bandwidth : DEFAULT_BANDWIDTH) - * TE_KILO_BIT / TE_BYTE); + * TE_MEGA_BIT / TE_BYTE); /* Set Max, Reservable and Unreserved Bandwidth */ iflp->max_bw = iflp->default_bw; |
