diff options
author | Paul Jakma <paul.jakma@hpe.com> | 2016-02-05 14:57:17 +0000 |
---|---|---|
committer | Paul Jakma <paul.jakma@hpe.com> | 2016-02-26 14:11:48 +0000 |
commit | c49a2747f6a6199dba27c0c413f4de6112fa649e (patch) | |
tree | 27bc97363bf8e3f25535f39c030e6da7b37e4a0e /bgpd/bgp_encap.c | |
parent | e98dce60cea213a4155a0db60b463e40c67aa77f (diff) | |
download | quagga-c49a2747f6a6199dba27c0c413f4de6112fa649e.tar.bz2 quagga-c49a2747f6a6199dba27c0c413f4de6112fa649e.tar.xz |
bgpd: make bgp_nlri_parse_encap conform with other nlri_parse funcs
* bgp_encap.{c,h} (bgp_nlri_parse_encap) afi is already in the NLRI argument.
update or withdraw is signalled by attr being non-NULL or NULL.
* bgp_packet.c: (update_receive) fixup to match, and also make the attr
argument conform with NLRI_ATTR_ARG for correct error handling on
optional, transitive, partial, attributes.
Diffstat (limited to 'bgpd/bgp_encap.c')
-rw-r--r-- | bgpd/bgp_encap.c | 7 |
1 files changed, 3 insertions, 4 deletions
diff --git a/bgpd/bgp_encap.c b/bgpd/bgp_encap.c index d0beb1ba..1a09ba60 100644 --- a/bgpd/bgp_encap.c +++ b/bgpd/bgp_encap.c @@ -126,14 +126,13 @@ ecom2prd(struct ecommunity *ecom, struct prefix_rd *prd) int bgp_nlri_parse_encap( - afi_t afi, struct peer *peer, struct attr *attr, /* Need even for withdraw */ - struct bgp_nlri *packet, - int withdraw) /* 0=update, !0 = withdraw */ + struct bgp_nlri *packet) { u_char *pnt; u_char *lim; + afi_t afi = packet->afi; struct prefix p; int psize = 0; int prefixlen; @@ -227,7 +226,7 @@ bgp_nlri_parse_encap( inet_ntop (p.family, &p.u.prefix, buf, BUFSIZ), p.prefixlen); - if (!withdraw) { + if (attr) { bgp_update (peer, &p, attr, afi, SAFI_ENCAP, ZEBRA_ROUTE_BGP, BGP_ROUTE_NORMAL, &prd, NULL, 0); } else { |