/* \summary: Marvell Extended Distributed Switch Architecture (MEDSA) printer */
#ifdef HAVE_CONFIG_H
-#include "config.h"
+#include <config.h>
#endif
-#include <netdissect-stdinc.h>
+#include "netdissect-stdinc.h"
#include "netdissect.h"
#include "ethertype.h"
#include "addrtoname.h"
#include "extract.h"
-static const char tstr[] = "[|MEDSA]";
/*
* Marvell Extended Distributed Switch Archiecture.
#define CODE_ARP_MIRROR 4
#define CFI(medsa) (EXTRACT_U_1(medsa->port_trunc_codehi_cfi) & 0x01)
#define PRI(medsa) (EXTRACT_U_1(medsa->pri_vidhi_codelo) >> 5)
-#define VID(medsa) (((u_short)(EXTRACT_U_1(medsa->pri_vidhi_codelo) & 0xf) << 8 | \
- EXTRACT_U_1(medsa->vidlo)))
+#define VID(medsa) ((u_short)(EXTRACT_U_1(medsa->pri_vidhi_codelo) & 0xf) << 8 | \
+ EXTRACT_U_1(medsa->vidlo))
static const struct tok tag_values[] = {
{ TAG_TO_CPU, "To_CPU" },
switch (tag) {
case TAG_TO_CPU:
ND_PRINT(", %stagged", SRC_TAG(medsa) ? "" : "un");
- ND_PRINT(", dev.port:vlan %d.%d:%d",
+ ND_PRINT(", dev.port:vlan %u.%u:%u",
SRC_DEV(medsa), SRC_PORT(medsa), VID(medsa));
ND_PRINT(", %s",
if (CFI(medsa))
ND_PRINT(", CFI");
- ND_PRINT(", pri %d: ", PRI(medsa));
+ ND_PRINT(", pri %u: ", PRI(medsa));
break;
case TAG_FROM_CPU:
ND_PRINT(", %stagged", SRC_TAG(medsa) ? "" : "un");
- ND_PRINT(", dev.port:vlan %d.%d:%d",
+ ND_PRINT(", dev.port:vlan %u.%u:%u",
SRC_DEV(medsa), SRC_PORT(medsa), VID(medsa));
if (CFI(medsa))
ND_PRINT(", CFI");
- ND_PRINT(", pri %d: ", PRI(medsa));
+ ND_PRINT(", pri %u: ", PRI(medsa));
break;
case TAG_FORWARD:
ND_PRINT(", %stagged", SRC_TAG(medsa) ? "" : "un");
if (TRUNK(medsa))
- ND_PRINT(", dev.trunk:vlan %d.%d:%d",
+ ND_PRINT(", dev.trunk:vlan %u.%u:%u",
SRC_DEV(medsa), SRC_PORT(medsa), VID(medsa));
else
- ND_PRINT(", dev.port:vlan %d.%d:%d",
+ ND_PRINT(", dev.port:vlan %u.%u:%u",
SRC_DEV(medsa), SRC_PORT(medsa), VID(medsa));
if (CFI(medsa))
ND_PRINT(", CFI");
- ND_PRINT(", pri %d: ", PRI(medsa));
+ ND_PRINT(", pri %u: ", PRI(medsa));
break;
default:
ND_DEFAULTPRINT((const u_char *)medsa, caplen);
const struct medsa_pkthdr *medsa;
u_short ether_type;
+ ndo->ndo_protocol = "medsa";
medsa = (const struct medsa_pkthdr *)bp;
ND_TCHECK_SIZE(medsa);
if (!ndo->ndo_eflag)
- ND_PRINT("MEDSA %d.%d:%d: ",
+ ND_PRINT("MEDSA %u.%u:%u: ",
SRC_DEV(medsa), SRC_PORT(medsa), VID(medsa));
else
medsa_print_full(ndo, medsa, caplen);
length -= 8;
caplen -= 8;
- ether_type = EXTRACT_BE_U_2(&medsa->ether_type);
+ ether_type = EXTRACT_BE_U_2(medsa->ether_type);
if (ether_type <= MAX_ETHERNET_LENGTH_VAL) {
/* Try to print the LLC-layer header & higher layers */
if (llc_print(ndo, bp, length, caplen, src, dst) < 0) {
}
return;
trunc:
- ND_PRINT("%s", tstr);
+ nd_print_trunc(ndo);
}
-
-/*
- * Local Variables:
- * c-style: bsd
- * End:
- */
-