if (!json)
return;
- if (p->prefix.route_type == BGP_EVPN_IMET_ROUTE)
- {
- json_object_int_add (json, "routeType", p->prefix.route_type);
- json_object_int_add (json, "ethTag", 0);
- json_object_int_add (json, "ipLen", IS_EVPN_PREFIX_IPADDR_V4 (p) ? IPV4_MAX_BITLEN : IPV6_MAX_BITLEN);
- json_object_string_add (json, "ip", inet_ntoa (p->prefix.ip.ipaddr_v4));
- }
- else if (p->prefix.route_type == BGP_EVPN_MAC_IP_ROUTE)
- {
- if (IS_EVPN_PREFIX_IPADDR_NONE(p))
- {
- json_object_int_add (json, "routeType", p->prefix.route_type);
- json_object_int_add (json, "esi", 0); /* TODO: we don't support esi yet */
- json_object_int_add (json, "ethTag", 0);
- json_object_int_add (json, "macLen", 8 * ETHER_ADDR_LEN);
- json_object_string_add (json, "mac", prefix_mac2str (&p->prefix.mac, buf1, sizeof (buf1)));
- }
- else
- {
- u_char family;
-
- family = IS_EVPN_PREFIX_IPADDR_V4(p) ? \
- AF_INET : AF_INET6;
-
- json_object_int_add (json, "routeType", p->prefix.route_type);
- json_object_int_add (json, "esi", 0); /* TODO: we don't support esi yet */
- json_object_int_add (json, "ethTag", 0);
- json_object_int_add (json, "macLen", 8 * ETHER_ADDR_LEN);
- json_object_string_add (json, "mac", prefix_mac2str (&p->prefix.mac, buf1, sizeof (buf1)));
- json_object_int_add (json, "ipLen", IS_EVPN_PREFIX_IPADDR_V4 (p) ? IPV4_MAX_BITLEN : IPV6_MAX_BITLEN);
- json_object_string_add (json, "ip", inet_ntop (family, &p->prefix.ip.ip.addr, buf2, PREFIX2STR_BUFFER));
- }
- }
- else
- {
- /* Currently, this is to cater to other AF_ETHERNET code. */
- }
+ if (p->prefix.route_type == BGP_EVPN_IMET_ROUTE) {
+ json_object_int_add (json, "routeType", p->prefix.route_type);
+ json_object_int_add (json, "ethTag", 0);
+ json_object_int_add (json,
+ "ipLen",
+ IS_EVPN_PREFIX_IPADDR_V4 (p) ?
+ IPV4_MAX_BITLEN : IPV6_MAX_BITLEN);
+ json_object_string_add (json, "ip",
+ inet_ntoa (p->prefix.ip.ipaddr_v4));
+ }
+ else if (p->prefix.route_type == BGP_EVPN_MAC_IP_ROUTE) {
+ if (IS_EVPN_PREFIX_IPADDR_NONE(p)) {
+ json_object_int_add (json, "routeType", p->prefix.route_type);
+ json_object_int_add (json, "esi", 0); /* TODO: we don't support esi yet */
+ json_object_int_add (json, "ethTag", 0);
+ json_object_int_add (json, "macLen", 8 * ETH_ALEN);
+ json_object_string_add (json, "mac",
+ prefix_mac2str (&p->prefix.mac,
+ buf1, sizeof (buf1)));
+ } else {
+ u_char family;
+
+ family = IS_EVPN_PREFIX_IPADDR_V4(p) ? \
+ AF_INET : AF_INET6;
+
+ json_object_int_add (json, "routeType",
+ p->prefix.route_type);
+ json_object_int_add (json, "esi", 0); /* TODO: we don't support esi yet */
+ json_object_int_add (json, "ethTag", 0);
+ json_object_int_add (json, "macLen",
+ 8 * ETH_ALEN);
+ json_object_string_add (json, "mac",
+ prefix_mac2str (&p->prefix.mac,
+ buf1,
+ sizeof (buf1)));
+ json_object_int_add (json, "ipLen",
+ IS_EVPN_PREFIX_IPADDR_V4 (p) ?
+ IPV4_MAX_BITLEN :
+ IPV6_MAX_BITLEN);
+ json_object_string_add (json, "ip",
+ inet_ntop (family,
+ &p->prefix.ip.ip.addr,
+ buf2,
+ PREFIX2STR_BUFFER));
+ }
+ } else {
+ /* Currently, this is to cater to other AF_ETHERNET code. */
+ }
return;
}
safi_t safi, u_char use_json,
json_object *json_neigh)
{
- struct bgp_filter *filter;
- struct peer_af *paf;
- char orf_pfx_name[BUFSIZ];
- int orf_pfx_count;
- json_object *json_af = NULL;
- json_object *json_prefA = NULL;
- json_object *json_prefB = NULL;
- json_object *json_addr = NULL;
+ struct bgp_filter *filter;
+ struct peer_af *paf;
+ char orf_pfx_name[BUFSIZ];
+ int orf_pfx_count;
+ json_object *json_af = NULL;
+ json_object *json_prefA = NULL;
+ json_object *json_prefB = NULL;
+ json_object *json_addr = NULL;
if (use_json) {
json_addr = json_object_new_object();
"defaultNotSent");
}
+ if (afi == AFI_L2VPN && safi == SAFI_EVPN) {
+ if (p->bgp->advertise_all_vni)
+ json_object_boolean_true_add(json_addr,
+ "advertiseAllVnis");
+ }
+
if (filter->plist[FILTER_IN].name
|| filter->dlist[FILTER_IN].name
|| filter->aslist[FILTER_IN].name
vty_out(vty, " default not sent\n");
}
+ /* advertise-vni-all */
+ if (afi == AFI_L2VPN && safi == SAFI_EVPN) {
+ if (p->bgp->advertise_all_vni)
+ vty_out(vty, " advertise-all-vni\n");
+ }
+
if (filter->plist[FILTER_IN].name
|| filter->dlist[FILTER_IN].name
|| filter->aslist[FILTER_IN].name
static void bgp_show_all_instances_neighbors_vty(struct vty *vty,
u_char use_json)
{
- struct listnode *node, *nnode;
- struct bgp *bgp;
- json_object *json = NULL;
- int is_first = 1;
+ struct listnode *node, *nnode;
+ struct bgp *bgp;
+ json_object *json = NULL;
+ int is_first = 1;
if (use_json)
vty_out(vty, "{\n");