Acked-by: Donald Sharp <sha...@cumulusnetworks.com> On Thu, Dec 24, 2015 at 1:10 PM, Lou Berger <lber...@labn.net> wrote:
> This is part of the core VPN and Encap SAFI changes. > > Add code to print ENCAP communities. > > Signed-off-by: Lou Berger <lber...@labn.net> > Signed-off-by: David Lamparter <equi...@opensourcerouting.org> > --- > bgpd/bgp_ecommunity.c | 37 ++++++++++++++++++++++++++++--------- > bgpd/bgp_ecommunity.h | 6 +++++- > 2 files changed, 33 insertions(+), 10 deletions(-) > > diff --git a/bgpd/bgp_ecommunity.c b/bgpd/bgp_ecommunity.c > index 04957d4..5386b6f 100644 > --- a/bgpd/bgp_ecommunity.c > +++ b/bgpd/bgp_ecommunity.c > @@ -642,15 +642,34 @@ ecommunity_ecom2str (struct ecommunity *ecom, int > format) > > /* High-order octet of type. */ > encode = *pnt++; > - if (encode != ECOMMUNITY_ENCODE_AS && encode != ECOMMUNITY_ENCODE_IP > - && encode != ECOMMUNITY_ENCODE_AS4) > - { > - len = sprintf (str_buf + str_pnt, "?"); > - str_pnt += len; > - first = 0; > - continue; > - } > - > + > + switch (encode) > + { > + case ECOMMUNITY_ENCODE_AS: > + case ECOMMUNITY_ENCODE_IP: > + case ECOMMUNITY_ENCODE_AS4: > + break; > + > + case ECOMMUNITY_ENCODE_OPAQUE: > + if (*pnt == ECOMMUNITY_OPAQUE_SUBTYPE_ENCAP) > + { > + uint16_t tunneltype; > + memcpy (&tunneltype, pnt + 5, 2); > + tunneltype = ntohs(tunneltype); > + len = sprintf (str_buf + str_pnt, "ET:%d", tunneltype); > + str_pnt += len; > + first = 0; > + continue; > + } > + /* fall through */ > + > + default: > + len = sprintf (str_buf + str_pnt, "?"); > + str_pnt += len; > + first = 0; > + continue; > + } > + > /* Low-order octet of type. */ > type = *pnt++; > if (type != ECOMMUNITY_ROUTE_TARGET && type != > ECOMMUNITY_SITE_ORIGIN) > diff --git a/bgpd/bgp_ecommunity.h b/bgpd/bgp_ecommunity.h > index 92affcc..993fd5a 100644 > --- a/bgpd/bgp_ecommunity.h > +++ b/bgpd/bgp_ecommunity.h > @@ -25,11 +25,15 @@ Software Foundation, Inc., 59 Temple Place - Suite > 330, Boston, MA > #define ECOMMUNITY_ENCODE_AS 0x00 > #define ECOMMUNITY_ENCODE_IP 0x01 > #define ECOMMUNITY_ENCODE_AS4 0x02 > +#define ECOMMUNITY_ENCODE_OPAQUE 0x03 > > -/* Low-order octet of the Extended Communityes type field. */ > +/* Low-order octet of the Extended Communities type field. */ > #define ECOMMUNITY_ROUTE_TARGET 0x02 > #define ECOMMUNITY_SITE_ORIGIN 0x03 > > +/* Low-order octet of the Extended Communities type field for OPAQUE > types */ > +#define ECOMMUNITY_OPAQUE_SUBTYPE_ENCAP 0x0c > + > /* Extended communities attribute string format. */ > #define ECOMMUNITY_FORMAT_ROUTE_MAP 0 > #define ECOMMUNITY_FORMAT_COMMUNITY_LIST 1 > -- > 2.1.3 > > > _______________________________________________ > Quagga-dev mailing list > Quagga-dev@lists.quagga.net > https://lists.quagga.net/mailman/listinfo/quagga-dev >
_______________________________________________ Quagga-dev mailing list Quagga-dev@lists.quagga.net https://lists.quagga.net/mailman/listinfo/quagga-dev