#include "oui.h"
#include "openflow.h"
-static const char tstr[] = " [|openflow]";
#define OFPT_HELLO 0x00
#define OFPT_ERROR 0x01
if (vid == OFP_VLAN_NONE)
return "NONE";
fmt = (vid > 0 && vid < 0x0fff) ? "%u" : "%u (bogus)";
- snprintf(buf, sizeof(buf), fmt, vid);
+ nd_snprintf(buf, sizeof(buf), fmt, vid);
return buf;
}
pcp_str(const uint8_t pcp)
{
static char buf[sizeof("255 (bogus)")];
- snprintf(buf, sizeof(buf), pcp <= 7 ? "%u" : "%u (bogus)", pcp);
+ nd_snprintf(buf, sizeof(buf), pcp <= 7 ? "%u" : "%u (bogus)", pcp);
return buf;
}
return cp + len;
trunc:
- ND_PRINT("%s", tstr);
+ nd_print_trunc(ndo);
return ep;
}
cp += 4;
/* data */
ND_PRINT(", data '");
- if (fn_printn(ndo, cp, len - 8, ep)) {
+ if (nd_printn(ndo, cp, len - 8, ep)) {
ND_PRINT("'");
goto trunc;
}
/* already checked that len >= 4 */
/* data */
ND_PRINT(", data '");
- if (fn_printn(ndo, cp, len - 4, ep)) {
+ if (nd_printn(ndo, cp, len - 4, ep)) {
ND_PRINT("'");
goto trunc;
}
return cp;
invalid: /* skip the undersized data */
- ND_PRINT("%s", istr);
+ nd_print_invalid(ndo);
ND_TCHECK_LEN(cp0, len);
return cp0 + len;
trunc:
- ND_PRINT("%s", tstr);
+ nd_print_trunc(ndo);
return ep;
}
return cp;
invalid:
- ND_PRINT("%s", istr);
+ nd_print_invalid(ndo);
ND_TCHECK_LEN(cp0, len);
return cp0 + len;
trunc:
- ND_PRINT("%s", tstr);
+ nd_print_trunc(ndo);
return ep;
}
return decoder(ndo, cp, ep, len - 4);
invalid: /* skip the undersized data */
- ND_PRINT("%s", istr);
+ nd_print_invalid(ndo);
ND_TCHECK_LEN(cp, len);
return cp + len;
trunc:
- ND_PRINT("%s", tstr);
+ nd_print_trunc(ndo);
return ep;
}
return decoder(ndo, cp, ep, len - 4);
invalid: /* skip the undersized data */
- ND_PRINT("%s", istr);
+ nd_print_invalid(ndo);
ND_TCHECK_LEN(cp, len);
return cp + len;
trunc:
- ND_PRINT("%s", tstr);
+ nd_print_trunc(ndo);
return ep;
}
return of10_data_print(ndo, cp, ep, len - 4);
invalid: /* skip the undersized data */
- ND_PRINT("%s", istr);
+ nd_print_invalid(ndo);
ND_TCHECK_LEN(cp, len);
return cp + len;
trunc:
- ND_PRINT("%s", tstr);
+ nd_print_trunc(ndo);
return ep;
}
return cp + len;
trunc:
- ND_PRINT("%s", tstr);
+ nd_print_trunc(ndo);
return ep;
}
/* name */
ND_TCHECK_LEN(cp, OFP_MAX_PORT_NAME_LEN);
ND_PRINT(", name '");
- fn_print(ndo, cp, cp + OFP_MAX_PORT_NAME_LEN);
+ nd_print(ndo, cp, cp + OFP_MAX_PORT_NAME_LEN);
ND_PRINT("'");
cp += OFP_MAX_PORT_NAME_LEN;
return cp;
invalid: /* skip the undersized trailing data */
- ND_PRINT("%s", istr);
+ nd_print_invalid(ndo);
ND_TCHECK_LEN(cp0, len0);
return cp0 + len0;
trunc:
- ND_PRINT("%s", tstr);
+ nd_print_trunc(ndo);
return ep;
}
return cp;
invalid: /* skip the rest of queue properties */
- ND_PRINT("%s", istr);
+ nd_print_invalid(ndo);
ND_TCHECK_LEN(cp0, len0);
return cp0 + len0;
trunc:
- ND_PRINT("%s", tstr);
+ nd_print_trunc(ndo);
return ep;
}
return cp;
invalid: /* skip the rest of queues */
- ND_PRINT("%s", istr);
+ nd_print_invalid(ndo);
ND_TCHECK_LEN(cp0, len0);
return cp0 + len0;
trunc:
- ND_PRINT("%s", tstr);
+ nd_print_trunc(ndo);
return ep;
}
return cp + 2;
trunc:
- ND_PRINT("%s", tstr);
+ nd_print_trunc(ndo);
return ep;
}
return cp;
invalid: /* skip the rest of actions */
- ND_PRINT("%s", istr);
+ nd_print_invalid(ndo);
ND_TCHECK_LEN(cp0, len0);
return cp0 + len0;
trunc:
- ND_PRINT("%s", tstr);
+ nd_print_trunc(ndo);
return ep;
}
return of10_phy_ports_print(ndo, cp, ep, len - OF_SWITCH_FEATURES_LEN);
trunc:
- ND_PRINT("%s", tstr);
+ nd_print_trunc(ndo);
return ep;
}
return of10_actions_print(ndo, "\n\t ", cp, ep, len - OF_FLOW_MOD_LEN);
trunc:
- ND_PRINT("%s", tstr);
+ nd_print_trunc(ndo);
return ep;
}
return cp + 4;
trunc:
- ND_PRINT("%s", tstr);
+ nd_print_trunc(ndo);
return ep;
}
return cp;
invalid: /* skip the message body */
- ND_PRINT("%s", istr);
+ nd_print_invalid(ndo);
ND_TCHECK_LEN(cp0, len0);
return cp0 + len0;
trunc:
- ND_PRINT("%s", tstr);
+ nd_print_trunc(ndo);
return ep;
}
/* mfr_desc */
ND_TCHECK_LEN(cp, DESC_STR_LEN);
ND_PRINT("\n\t mfr_desc '");
- fn_print(ndo, cp, cp + DESC_STR_LEN);
+ nd_print(ndo, cp, cp + DESC_STR_LEN);
ND_PRINT("'");
cp += DESC_STR_LEN;
/* hw_desc */
ND_TCHECK_LEN(cp, DESC_STR_LEN);
ND_PRINT("\n\t hw_desc '");
- fn_print(ndo, cp, cp + DESC_STR_LEN);
+ nd_print(ndo, cp, cp + DESC_STR_LEN);
ND_PRINT("'");
cp += DESC_STR_LEN;
/* sw_desc */
ND_TCHECK_LEN(cp, DESC_STR_LEN);
ND_PRINT("\n\t sw_desc '");
- fn_print(ndo, cp, cp + DESC_STR_LEN);
+ nd_print(ndo, cp, cp + DESC_STR_LEN);
ND_PRINT("'");
cp += DESC_STR_LEN;
/* serial_num */
ND_TCHECK_LEN(cp, SERIAL_NUM_LEN);
ND_PRINT("\n\t serial_num '");
- fn_print(ndo, cp, cp + SERIAL_NUM_LEN);
+ nd_print(ndo, cp, cp + SERIAL_NUM_LEN);
ND_PRINT("'");
cp += SERIAL_NUM_LEN;
/* dp_desc */
ND_TCHECK_LEN(cp, DESC_STR_LEN);
ND_PRINT("\n\t dp_desc '");
- fn_print(ndo, cp, cp + DESC_STR_LEN);
+ nd_print(ndo, cp, cp + DESC_STR_LEN);
ND_PRINT("'");
return cp + DESC_STR_LEN;
invalid: /* skip the message body */
- ND_PRINT("%s", istr);
+ nd_print_invalid(ndo);
ND_TCHECK_LEN(cp, len);
return cp + len;
trunc:
- ND_PRINT("%s", tstr);
+ nd_print_trunc(ndo);
return ep;
}
return cp;
invalid: /* skip the rest of flow statistics entries */
- ND_PRINT("%s", istr);
+ nd_print_invalid(ndo);
ND_TCHECK_LEN(cp0, len0);
return cp0 + len0;
trunc:
- ND_PRINT("%s", tstr);
+ nd_print_trunc(ndo);
return ep;
}
return cp + 4;
invalid: /* skip the message body */
- ND_PRINT("%s", istr);
+ nd_print_invalid(ndo);
ND_TCHECK_LEN(cp, len);
return cp + len;
trunc:
- ND_PRINT("%s", tstr);
+ nd_print_trunc(ndo);
return ep;
}
/* name */
ND_TCHECK_LEN(cp, OFP_MAX_TABLE_NAME_LEN);
ND_PRINT(", name '");
- fn_print(ndo, cp, cp + OFP_MAX_TABLE_NAME_LEN);
+ nd_print(ndo, cp, cp + OFP_MAX_TABLE_NAME_LEN);
ND_PRINT("'");
cp += OFP_MAX_TABLE_NAME_LEN;
/* wildcards */
return cp;
invalid: /* skip the undersized trailing data */
- ND_PRINT("%s", istr);
+ nd_print_invalid(ndo);
ND_TCHECK_LEN(cp0, len0);
return cp0 + len0;
trunc:
- ND_PRINT("%s", tstr);
+ nd_print_trunc(ndo);
return ep;
}
return cp;
invalid: /* skip the undersized trailing data */
- ND_PRINT("%s", istr);
+ nd_print_invalid(ndo);
ND_TCHECK_LEN(cp0, len0);
return cp0 + len0;
trunc:
- ND_PRINT("%s", tstr);
+ nd_print_trunc(ndo);
return ep;
}
return cp;
invalid: /* skip the undersized trailing data */
- ND_PRINT("%s", istr);
+ nd_print_invalid(ndo);
ND_TCHECK_LEN(cp0, len0);
return cp0 + len0;
trunc:
- ND_PRINT("%s", tstr);
+ nd_print_trunc(ndo);
return ep;
}
return cp0 + len;
trunc:
- ND_PRINT("%s", tstr);
+ nd_print_trunc(ndo);
return ep;
}
return of10_packet_data_print(ndo, cp, ep, len - OF_PACKET_OUT_LEN - actions_len);
invalid: /* skip the rest of the message body */
- ND_PRINT("%s", istr);
+ nd_print_invalid(ndo);
ND_TCHECK_LEN(cp0, len0);
return cp0 + len0;
trunc:
- ND_PRINT("%s", tstr);
+ nd_print_trunc(ndo);
return ep;
}
return of10_packet_data_print(ndo, cp, ep, len - (OF_PACKET_IN_LEN - 2));
trunc:
- ND_PRINT("%s", tstr);
+ nd_print_trunc(ndo);
return ep;
}
return cp + 8;
trunc:
- ND_PRINT("%s", tstr);
+ nd_print_trunc(ndo);
return ep;
}
return of10_data_print(ndo, cp, ep, len - OF_ERROR_MSG_LEN);
trunc:
- ND_PRINT("%s", tstr);
+ nd_print_trunc(ndo);
return ep;
}
goto next_message;
invalid: /* skip the message body */
- ND_PRINT("%s", istr);
+ nd_print_invalid(ndo);
next_message:
ND_TCHECK_LEN(cp0, len0 - OF_HEADER_LEN);
return cp0 + len0 - OF_HEADER_LEN;
trunc:
- ND_PRINT("%s", tstr);
+ nd_print_trunc(ndo);
return ep;
}