/* \summary: IEEE 802.1ag Connectivity Fault Management (CFM) protocols printer */
-#ifdef HAVE_CONFIG_H
#include <config.h>
-#endif
#include "netdissect-stdinc.h"
struct cfm_ltm_t {
nd_uint32_t transaction_id;
nd_uint8_t ttl;
- nd_mac_addr original_mac;
- nd_mac_addr target_mac;
+ nd_mac48 original_mac;
+ nd_mac48 target_mac;
};
static const struct tok cfm_ltm_flag_values[] = {
u_int hexdump = FALSE;
/*
- * Although AFIs are typically 2 octects wide,
+ * Although AFIs are typically 2 octets wide,
* 802.1ab specifies that this field width
* is only one octet.
*/
* Resolve the passed in Address.
*/
switch(network_addr_type) {
- case AFNUM_INET:
+ case AFNUM_IP:
if (length != 1 + 4) {
ND_PRINT("(invalid IPv4 address length %u)", length - 1);
hexdump = TRUE;
ND_PRINT(", %s", GET_IPADDR_STRING(tptr + 1));
break;
- case AFNUM_INET6:
+ case AFNUM_IP6:
if (length != 1 + 16) {
ND_PRINT("(invalid IPv6 address length %u)", length - 1);
hexdump = TRUE;
switch (md_nameformat) {
case CFM_CCM_MD_FORMAT_DNS:
case CFM_CCM_MD_FORMAT_CHAR:
- (void)nd_printzp(ndo, md_name, md_namelength, NULL);
+ nd_printjnp(ndo, md_name, md_namelength);
break;
case CFM_CCM_MD_FORMAT_MAC:
- if (md_namelength == MAC_ADDR_LEN) {
- ND_PRINT("\n\t MAC %s", GET_ETHERADDR_STRING(md_name));
+ if (md_namelength == MAC48_LEN) {
+ ND_PRINT("\n\t MAC %s", GET_MAC48_STRING(md_name));
} else {
ND_PRINT("\n\t MAC (length invalid)");
}
ND_PRINT("\n\t MA Name: ");
switch (ma_nameformat) {
case CFM_CCM_MA_FORMAT_CHAR:
- (void)nd_printzp(ndo, ma_name, ma_namelength, NULL);
+ nd_printjnp(ndo, ma_name, ma_namelength);
break;
/* FIXME add printers for those MA formats - hexdump for now */
GET_U_1(msg_ptr.cfm_ltm->ttl));
ND_PRINT("\n\t Original-MAC %s, Target-MAC %s",
- GET_ETHERADDR_STRING(msg_ptr.cfm_ltm->original_mac),
- GET_ETHERADDR_STRING(msg_ptr.cfm_ltm->target_mac));
+ GET_MAC48_STRING(msg_ptr.cfm_ltm->original_mac),
+ GET_MAC48_STRING(msg_ptr.cfm_ltm->target_mac));
break;
case CFM_OPCODE_LTR:
tptr += first_tlv_offset;
tlen -= first_tlv_offset;
- while (tlen > 0) {
+ while (tlen != 0) {
cfm_tlv_header = (const struct cfm_tlv_header_t *)tptr;
/* Enough to read the tlv type ? */
/* IEEE 802.1Q-2014 Section 21.5.3.3: Chassis ID */
switch (chassis_id_type) {
case CFM_CHASSIS_ID_MAC_ADDRESS:
- if (chassis_id_length != MAC_ADDR_LEN) {
+ if (chassis_id_length != MAC48_LEN) {
ND_PRINT(" (invalid MAC address length)");
hexdump = TRUE;
break;
}
- ND_PRINT("\n\t MAC %s", GET_ETHERADDR_STRING(tptr + 1));
+ ND_PRINT("\n\t MAC %s", GET_MAC48_STRING(tptr + 1));
break;
case CFM_CHASSIS_ID_NETWORK_ADDRESS:
case CFM_CHASSIS_ID_LOCAL:
case CFM_CHASSIS_ID_CHASSIS_COMPONENT:
case CFM_CHASSIS_ID_PORT_COMPONENT:
- (void)nd_printzp(ndo, tptr + 1, chassis_id_length, NULL);
+ nd_printjnp(ndo, tptr + 1, chassis_id_length);
break;
default: