diff options
author | Donald Sharp <sharpd@cumulusnetworks.com> | 2015-05-20 02:46:33 +0200 |
---|---|---|
committer | Donald Sharp <sharpd@cumulusnetworks.com> | 2015-05-20 02:46:33 +0200 |
commit | 0d9551dc3c53f2d46e3c0e3ecb4e4b0eb327179e (patch) | |
tree | f8bf3ba86e81b823af3fcb6fcf1f4fbe77c0b167 /lib/zclient.h | |
parent | bgpd-fix-nexthop-show.patch (diff) | |
download | frr-0d9551dc3c53f2d46e3c0e3ecb4e4b0eb327179e.tar.xz frr-0d9551dc3c53f2d46e3c0e3ecb4e4b0eb327179e.zip |
Add support for route tags
Credit
------
A huge amount of credit for this patch goes to Piotr Chytla for
their 'route tags support' patch that was submitted to quagga-dev
in June 2007.
Documentation
-------------
All ipv4 and ipv6 static route commands now have a "tag" option
which allows the user to set a tag between 1 and 65535.
quagga(config)# ip route 1.1.1.1/32 10.1.1.1 tag ?
<1-65535> Tag value
quagga(config)# ip route 1.1.1.1/32 10.1.1.1 tag 40
quagga(config)#
quagga# show ip route 1.1.1.1/32
Routing entry for 1.1.1.1/32
Known via "static", distance 1, metric 0, tag 40, best
* 10.1.1.1, via swp1
quagga#
The route-map parser supports matching on tags and setting tags
!
route-map MATCH_TAG_18 permit 10
match tag 18
!
!
route-map SET_TAG_22 permit 10
set tag 22
!
BGP and OSPF support:
- matching on tags when redistribing routes from the RIB into BGP/OSPF.
- setting tags when redistribing routes from the RIB into BGP/OSPF.
BGP also supports setting a tag via a table-map, when installing BGP
routes into the RIB.
Signed-off-by: Daniel Walton <dwalton@cumulusnetworks.com>
Diffstat (limited to 'lib/zclient.h')
-rw-r--r-- | lib/zclient.h | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/lib/zclient.h b/lib/zclient.h index 5c24ee459..9b627b65f 100644 --- a/lib/zclient.h +++ b/lib/zclient.h @@ -92,6 +92,7 @@ struct zclient #define ZAPI_MESSAGE_IFINDEX 0x02 #define ZAPI_MESSAGE_DISTANCE 0x04 #define ZAPI_MESSAGE_METRIC 0x08 +#define ZAPI_MESSAGE_TAG 0x20 /* Zserv protocol message header */ struct zserv_header @@ -125,6 +126,8 @@ struct zapi_ipv4 u_char distance; u_int32_t metric; + + u_short tag; }; /* Prototypes of zebra client service functions. */ @@ -185,6 +188,8 @@ struct zapi_ipv6 u_char distance; u_int32_t metric; + + u_short tag; }; extern int zapi_ipv6_route (u_char cmd, struct zclient *zclient, |