X-Git-Url: https://git.tcpdump.org/tcpdump/blobdiff_plain/b751376719cfe1924aa07ab8fd364ec1a55c04b3..a63600a1fc28dbc7ae7ce9f996829c49a25fb33c:/print-lldp.c diff --git a/print-lldp.c b/print-lldp.c index 54745e5b..6a41d187 100644 --- a/print-lldp.c +++ b/print-lldp.c @@ -136,19 +136,21 @@ static const struct tok lldp_cap_values[] = { #define LLDP_PRIVATE_8021_SUBTYPE_PROTOCOL_VLAN_ID 2 #define LLDP_PRIVATE_8021_SUBTYPE_VLAN_NAME 3 #define LLDP_PRIVATE_8021_SUBTYPE_PROTOCOL_IDENTITY 4 +#define LLDP_PRIVATE_8021_SUBTYPE_LINKAGGR 7 #define LLDP_PRIVATE_8021_SUBTYPE_CONGESTION_NOTIFICATION 8 #define LLDP_PRIVATE_8021_SUBTYPE_ETS_CONFIGURATION 9 #define LLDP_PRIVATE_8021_SUBTYPE_ETS_RECOMMENDATION 10 #define LLDP_PRIVATE_8021_SUBTYPE_PFC_CONFIGURATION 11 #define LLDP_PRIVATE_8021_SUBTYPE_APPLICATION_PRIORITY 12 #define LLDP_PRIVATE_8021_SUBTYPE_EVB 13 -#define LLDP_PRIVATE_8021_SUBTYPE_CDCP 14 +#define LLDP_PRIVATE_8021_SUBTYPE_CDCP 14 static const struct tok lldp_8021_subtype_values[] = { { LLDP_PRIVATE_8021_SUBTYPE_PORT_VLAN_ID, "Port VLAN Id"}, { LLDP_PRIVATE_8021_SUBTYPE_PROTOCOL_VLAN_ID, "Port and Protocol VLAN ID"}, { LLDP_PRIVATE_8021_SUBTYPE_VLAN_NAME, "VLAN name"}, { LLDP_PRIVATE_8021_SUBTYPE_PROTOCOL_IDENTITY, "Protocol Identity"}, + { LLDP_PRIVATE_8021_SUBTYPE_LINKAGGR, "Link aggregation"}, { LLDP_PRIVATE_8021_SUBTYPE_CONGESTION_NOTIFICATION, "Congestion Notification"}, { LLDP_PRIVATE_8021_SUBTYPE_ETS_CONFIGURATION, "ETS Configuration"}, { LLDP_PRIVATE_8021_SUBTYPE_ETS_RECOMMENDATION, "ETS Recommendation"}, @@ -509,10 +511,10 @@ static const struct tok lldp_pmd_capability_values[] = { #define LLDP_MDI_PAIR_CONTROL_ABILITY (1 << 3) static const struct tok lldp_mdi_values[] = { - { LLDP_MDI_PORT_CLASS, "PSE"}, - { LLDP_MDI_POWER_SUPPORT, "supported"}, - { LLDP_MDI_POWER_STATE, "enabled"}, - { LLDP_MDI_PAIR_CONTROL_ABILITY, "can be controlled"}, + { LLDP_MDI_PORT_CLASS, "PSE"}, + { LLDP_MDI_POWER_SUPPORT, "supported"}, + { LLDP_MDI_POWER_STATE, "enabled"}, + { LLDP_MDI_PAIR_CONTROL_ABILITY, "can be controlled"}, { 0, NULL} }; @@ -699,7 +701,7 @@ lldp_private_8021_print(netdissect_options *ndo, return hexdump; } ND_PRINT("\n\t vlan name: "); - (void)nd_printzp(ndo, tptr + 7, sublen, NULL); + nd_printjnp(ndo, tptr + 7, sublen); break; case LLDP_PRIVATE_8021_SUBTYPE_PROTOCOL_IDENTITY: if (tlv_len < 5) { @@ -710,8 +712,18 @@ lldp_private_8021_print(netdissect_options *ndo, return hexdump; } ND_PRINT("\n\t protocol identity: "); - (void)nd_printzp(ndo, tptr + 5, sublen, NULL); + nd_printjnp(ndo, tptr + 5, sublen); break; + + case LLDP_PRIVATE_8021_SUBTYPE_LINKAGGR: + if (tlv_len < 9) { + return hexdump; + } + ND_PRINT("\n\t aggregation status [%s], aggregation port ID %u", + bittok2str(lldp_aggregation_values, "none", GET_U_1((tptr + 4))), + GET_BE_U_4(tptr + 5)); + break; + case LLDP_PRIVATE_8021_SUBTYPE_CONGESTION_NOTIFICATION: if(tlv_lenndo_vflag) { ND_PRINT(": "); - (void)nd_printzp(ndo, tptr, tlv_len, NULL); + nd_printjnp(ndo, tptr, tlv_len); } break; @@ -1584,13 +1594,13 @@ lldp_print(netdissect_options *ndo, * similar to the CDP printer. */ ND_PRINT(": "); - (void)nd_printzp(ndo, tptr, tlv_len, NULL); + nd_printjnp(ndo, tptr, tlv_len); break; case LLDP_SYSTEM_DESCR_TLV: if (ndo->ndo_vflag) { ND_PRINT("\n\t "); - (void)nd_printzp(ndo, tptr, tlv_len, NULL); + nd_printjnp(ndo, tptr, tlv_len); } break;