summaryrefslogtreecommitdiffstats
path: root/bgpd/bgp_route.h
diff options
context:
space:
mode:
authorDaniel Walton <dwalton@cumulusnetworks.com>2017-06-16 21:12:57 +0200
committerDaniel Walton <dwalton@cumulusnetworks.com>2017-06-16 21:12:57 +0200
commit9bedbb1e52fbef082702723ee0a119d76a997ec8 (patch)
tree4732c6ea051da93c49e01910192226828e54781f /bgpd/bgp_route.h
parentMerge pull request #718 from qlyoung/fix-vtysh-shit (diff)
downloadfrr-9bedbb1e52fbef082702723ee0a119d76a997ec8.tar.xz
frr-9bedbb1e52fbef082702723ee0a119d76a997ec8.zip
bgpd: Install SAFI_LABELED_UNICAST routes in SAFI_UNICAST table
Signed-off-by: Daniel Walton <dwalton@cumulusnetworks.com> - All ipv4 labeled-unicast routes are now installed in the ipv4 unicast table. This allows us to do things like take routes from an ipv4 unicast peer, allocate a label for them and TX them to a ipv4 labeled-unicast peer. We can do the opposite where we take routes from a labeled-unicast peer, remove the label and advertise them to an ipv4 unicast peer. - Multipath over a labeled route and non-labeled route is not allowed. - You cannot activate a peer for both 'ipv4 unicast' and 'ipv4 labeled-unicast' - The 'tag' variable was overloaded for zebra's route tag feature as well as the mpls label. I added a 'mpls_label_t mpls' variable to avoid this. This is much cleaner but resulted in touching a lot of code.
Diffstat (limited to 'bgpd/bgp_route.h')
-rw-r--r--bgpd/bgp_route.h8
1 files changed, 4 insertions, 4 deletions
diff --git a/bgpd/bgp_route.h b/bgpd/bgp_route.h
index 3d179e07b..763553b55 100644
--- a/bgpd/bgp_route.h
+++ b/bgpd/bgp_route.h
@@ -74,7 +74,7 @@ struct bgp_info_extra
u_int32_t igpmetric;
/* MPLS label. */
- u_char tag[3];
+ mpls_label_t label;
#if ENABLE_BGP_VNC
union {
@@ -207,7 +207,7 @@ struct bgp_static
struct prefix_rd prd;
/* MPLS label. */
- u_char tag[3];
+ mpls_label_t label;
/* EVPN */
struct eth_segment_id *eth_s_id;
@@ -344,9 +344,9 @@ extern int bgp_static_unset_safi (afi_t afi, safi_t safi, struct vty *, const ch
/* this is primarily for MPLS-VPN */
extern int bgp_update (struct peer *, struct prefix *, u_int32_t, struct attr *,
afi_t, safi_t, int, int, struct prefix_rd *,
- u_char *, int, struct bgp_route_evpn *);
+ mpls_label_t *, int, struct bgp_route_evpn *);
extern int bgp_withdraw (struct peer *, struct prefix *, u_int32_t, struct attr *,
- afi_t, safi_t, int, int, struct prefix_rd *, u_char *,
+ afi_t, safi_t, int, int, struct prefix_rd *, mpls_label_t *,
struct bgp_route_evpn *);
/* for bgp_nexthop and bgp_damp */