#include "oui.h"
-#define OF_VER_1_0 0x01
-#define OF_VER_1_1 0x02
-#define OF_VER_1_2 0x03
-#define OF_VER_1_3 0x04
-#define OF_VER_1_4 0x05
-#define OF_VER_1_5 0x06
-
static const struct tok ofver_str[] = {
{ OF_VER_1_0, "1.0" },
{ OF_VER_1_1, "1.1" },
return tok2str(table, "unknown", vendor);
}
+void
+of_bitmap_print(netdissect_options *ndo,
+ const struct tok *t, const uint32_t v, const uint32_t u)
+{
+ const char *sep = " (";
+
+ if (v == 0)
+ return;
+ /* assigned bits */
+ for (; t->s != NULL; t++)
+ if (v & t->v) {
+ ND_PRINT("%s%s", sep, t->s);
+ sep = ", ";
+ }
+ /* unassigned bits? */
+ ND_PRINT((v & u) ? ") (bogus)" : ")");
+}
+
void
of_data_print(netdissect_options *ndo,
const u_char *cp, const u_int len)
uint8_t version, type;
uint16_t length;
void (*decoder)(struct netdissect_options *,
- const u_char *, u_int16_t, const uint8_t) = NULL;
+ const u_char *, uint16_t, const uint8_t) = NULL;
/* version */
version = GET_U_1(cp);