diff options
Diffstat (limited to 'zebra/zebra_static.h')
-rw-r--r-- | zebra/zebra_static.h | 166 |
1 files changed, 80 insertions, 86 deletions
diff --git a/zebra/zebra_static.h b/zebra/zebra_static.h index 9f76ab5f5..91ac0a33c 100644 --- a/zebra/zebra_static.h +++ b/zebra/zebra_static.h @@ -23,99 +23,93 @@ #define __ZEBRA_STATIC_H__ /* Static route label information */ -struct static_nh_label -{ - u_int8_t num_labels; - u_int8_t reserved[3]; - mpls_label_t label[2]; +struct static_nh_label { + u_int8_t num_labels; + u_int8_t reserved[3]; + mpls_label_t label[2]; }; typedef enum { - STATIC_IFINDEX, - STATIC_IPV4_GATEWAY, - STATIC_BLACKHOLE, - STATIC_IPV6_GATEWAY, - STATIC_IPV6_GATEWAY_IFINDEX, + STATIC_IFINDEX, + STATIC_IPV4_GATEWAY, + STATIC_BLACKHOLE, + STATIC_IPV6_GATEWAY, + STATIC_IPV6_GATEWAY_IFINDEX, } zebra_static_types; /* Static route information. */ -struct static_route -{ - /* For linked list. */ - struct static_route *prev; - struct static_route *next; - - /* VRF identifier. */ - vrf_id_t vrf_id; - - /* Administrative distance. */ - u_char distance; - - /* Tag */ - route_tag_t tag; - - /* Flag for this static route's type. */ - zebra_static_types type; - - /* - * Nexthop value. - * - * Under IPv4 addr and ifindex are - * used independentyly. - * STATIC_IPV4_GATEWAY uses addr - * STATIC_IFINDEX uses ifindex - */ - union g_addr addr; - ifindex_t ifindex; - - char ifname[INTERFACE_NAMSIZ + 1]; - - /* bit flags */ - u_char flags; -/* - see ZEBRA_FLAG_REJECT - ZEBRA_FLAG_BLACKHOLE - */ - - /* Label information */ - struct static_nh_label snh_label; +struct static_route { + /* For linked list. */ + struct static_route *prev; + struct static_route *next; + + /* VRF identifier. */ + vrf_id_t vrf_id; + + /* Administrative distance. */ + u_char distance; + + /* Tag */ + route_tag_t tag; + + /* Flag for this static route's type. */ + zebra_static_types type; + + /* + * Nexthop value. + * + * Under IPv4 addr and ifindex are + * used independentyly. + * STATIC_IPV4_GATEWAY uses addr + * STATIC_IFINDEX uses ifindex + */ + union g_addr addr; + ifindex_t ifindex; + + char ifname[INTERFACE_NAMSIZ + 1]; + + /* bit flags */ + u_char flags; + /* + see ZEBRA_FLAG_REJECT + ZEBRA_FLAG_BLACKHOLE + */ + + /* Label information */ + struct static_nh_label snh_label; }; -extern void -static_install_route (afi_t afi, safi_t safi, struct prefix *p, - struct prefix_ipv6 *src_p, struct static_route *si); -extern void -static_uninstall_route (afi_t afi, safi_t safi, struct prefix *p, - struct prefix_ipv6 *src_p, struct static_route *si); - -extern int -static_add_route (afi_t, safi_t safi, u_char type, struct prefix *p, - struct prefix_ipv6 *src_p, - union g_addr *gate, ifindex_t ifindex, - const char *ifname, u_char flags, route_tag_t tag, - u_char distance, struct zebra_vrf *zvrf, - struct static_nh_label *snh_label); - -extern int -static_delete_route (afi_t, safi_t safi, u_char type, struct prefix *p, - struct prefix_ipv6 *src_p, - union g_addr *gate, ifindex_t ifindex, route_tag_t tag, - u_char distance, struct zebra_vrf *zvrf, - struct static_nh_label *snh_label); - -int -zebra_static_ipv4 (struct vty *vty, safi_t safi, int add_cmd, - const char *dest_str, const char *mask_str, - const char *gate_str, const char *flag_str, - const char *tag_str, const char *distance_str, - const char *vrf_id_str, const char *label_str); - -int -static_ipv6_func (struct vty *vty, int add_cmd, const char *dest_str, - const char *src_str, - const char *gate_str, const char *ifname, - const char *flag_str, const char *tag_str, - const char *distance_str, const char *vrf_id_str, - const char *label_str); +extern void static_install_route(afi_t afi, safi_t safi, struct prefix *p, + struct prefix_ipv6 *src_p, + struct static_route *si); +extern void static_uninstall_route(afi_t afi, safi_t safi, struct prefix *p, + struct prefix_ipv6 *src_p, + struct static_route *si); + +extern int static_add_route(afi_t, safi_t safi, u_char type, struct prefix *p, + struct prefix_ipv6 *src_p, union g_addr *gate, + ifindex_t ifindex, const char *ifname, u_char flags, + route_tag_t tag, u_char distance, + struct zebra_vrf *zvrf, + struct static_nh_label *snh_label); + +extern int static_delete_route(afi_t, safi_t safi, u_char type, + struct prefix *p, struct prefix_ipv6 *src_p, + union g_addr *gate, ifindex_t ifindex, + route_tag_t tag, u_char distance, + struct zebra_vrf *zvrf, + struct static_nh_label *snh_label); + +int zebra_static_ipv4(struct vty *vty, safi_t safi, int add_cmd, + const char *dest_str, const char *mask_str, + const char *gate_str, const char *flag_str, + const char *tag_str, const char *distance_str, + const char *vrf_id_str, const char *label_str); + +int static_ipv6_func(struct vty *vty, int add_cmd, const char *dest_str, + const char *src_str, const char *gate_str, + const char *ifname, const char *flag_str, + const char *tag_str, const char *distance_str, + const char *vrf_id_str, const char *label_str); #endif |