Skip to content

Commit b6cee67

Browse files
committed
Add dissector for EVPN extended communities
1 parent d0c66a2 commit b6cee67

File tree

1 file changed

+42
-0
lines changed

1 file changed

+42
-0
lines changed

print-bgp.c

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -505,6 +505,11 @@ static const struct tok bgp_graceful_restart_comm_flag_values[] = {
505505
#define BGP_EXT_COM_VRF_RT_IMP 0x010b /* RFC-ietf-l3vpn-2547bis-mcast-bgp-08.txt */
506506
#define BGP_EXT_COM_L2VPN_RT_0 0x000a /* L2VPN Identifier,Format AS(2bytes):AN(4bytes) */
507507
#define BGP_EXT_COM_L2VPN_RT_1 0xF10a /* L2VPN Identifier,Format IP address:AN(2bytes) */
508+
/* rfc7432 */
509+
#define BGP_EXT_COM_DEF_GATEWAY 0x030d /* Default gateway */
510+
#define BGP_EXT_COM_EVPN_MMOB 0x0600 /* EVPN MAC Mobility */
511+
#define BGP_EXT_COM_EVPN_ESI 0x0601 /* EVPN ESI Label */
512+
#define BGP_EXT_COM_EVPN_ES_IMP 0x0602 /* EVPN ES-Import Route Target */
508513

509514
/* https://www.cisco.com/en/US/tech/tk436/tk428/technologies_tech_note09186a00801eb09a.shtml */
510515
#define BGP_EXT_COM_EIGRP_GEN 0x8800
@@ -560,6 +565,10 @@ static const struct tok bgp_extd_comm_subtype_values[] = {
560565
{ BGP_EXT_COM_VRF_RT_IMP, "vrf-route-import"},
561566
{ BGP_EXT_COM_L2VPN_RT_0, "l2vpn-id"},
562567
{ BGP_EXT_COM_L2VPN_RT_1, "l2vpn-id"},
568+
{ BGP_EXT_COM_DEF_GATEWAY, "default-gateway" },
569+
{ BGP_EXT_COM_EVPN_MMOB, "mac-mobility" },
570+
{ BGP_EXT_COM_EVPN_ESI, "esi-label" },
571+
{ BGP_EXT_COM_EVPN_ES_IMP, "es-import-target" },
563572
{ 0, NULL},
564573
};
565574

@@ -982,6 +991,39 @@ bgp_extended_community_print(netdissect_options *ndo,
982991
GET_BE_U_2(pptr + 6)));
983992
break;
984993

994+
case BGP_EXT_COM_DEF_GATEWAY:
995+
/* Empty payload */
996+
ND_PRINT("(empty)");
997+
break;
998+
999+
case BGP_EXT_COM_EVPN_MMOB:
1000+
{
1001+
uint8_t flag = GET_U_1(pptr + 2);
1002+
ND_PRINT("Sequence number: %u%s",
1003+
GET_BE_U_4(pptr + 4),
1004+
flag == 0x1 ? " (static)" : "");
1005+
}
1006+
break;
1007+
1008+
case BGP_EXT_COM_EVPN_ESI:
1009+
{
1010+
uint8_t flag = GET_U_1(pptr + 2);
1011+
ND_PRINT("%u %s",
1012+
GET_BE_U_3(pptr + 5),
1013+
flag == 1 ? "(Single-Active)" : "(All-Active)");
1014+
}
1015+
break;
1016+
1017+
case BGP_EXT_COM_EVPN_ES_IMP:
1018+
ND_PRINT("%02x:%02x:%02x:%02x:%02x:%02x",
1019+
GET_U_1(pptr + 2),
1020+
GET_U_1(pptr + 3),
1021+
GET_U_1(pptr + 4),
1022+
GET_U_1(pptr + 5),
1023+
GET_U_1(pptr + 6),
1024+
GET_U_1(pptr + 7));
1025+
break;
1026+
9851027
default:
9861028
ND_PRINT("%02x%02x%02x%02x%02x%02x",
9871029
GET_U_1(pptr + 2),

0 commit comments

Comments
 (0)