X-Git-Url: https://git.tcpdump.org/tcpdump/blobdiff_plain/64e8f9a9ed91a3cbfa8e66367f87ef50a1d62b99..d8078c7fcb4d8260ca2e9ebb78f43d71894be639:/print-dsa.c diff --git a/print-dsa.c b/print-dsa.c index 7dad9e2a..42d59461 100644 --- a/print-dsa.c +++ b/print-dsa.c @@ -21,9 +21,7 @@ /* \summary: Marvell (Ethertype) Distributed Switch Architecture printer */ -#ifdef HAVE_CONFIG_H #include -#endif #include "netdissect-stdinc.h" @@ -83,7 +81,7 @@ #define DSA_RX_SNIFF(tag) TOK(tag, 1, 0x04, 2) #define DSA_CFI(tag) TOK(tag, 1, 0x01, 0) #define DSA_PRI(tag) TOK(tag, 2, 0xe0, 5) -#define DSA_VID(tag) ((u_short)((TOK(tag, 2, 0xe0, 5) << 8) | (TOK(tag, 3, 0xff, 0)))) +#define DSA_VID(tag) ((u_short)((TOK(tag, 2, 0x0f, 0) << 8) | (TOK(tag, 3, 0xff, 0)))) #define DSA_CODE(tag) ((TOK(tag, 1, 0x06, 1) << 1) | TOK(tag, 2, 0x10, 4)) #define EDSA_LEN 8 @@ -196,24 +194,24 @@ edsa_tag_print(netdissect_options *ndo, const u_char *bp) tag_common_print(ndo, p); } -u_int +void dsa_if_print(netdissect_options *ndo, const struct pcap_pkthdr *h, const u_char *p) { u_int caplen = h->caplen; u_int length = h->len; ndo->ndo_protocol = "dsa"; - return (ether_switch_tag_print(ndo, p, length, caplen, - dsa_tag_print, DSA_LEN)); + ndo->ndo_ll_hdr_len += + ether_switch_tag_print(ndo, p, length, caplen, dsa_tag_print, DSA_LEN); } -u_int +void edsa_if_print(netdissect_options *ndo, const struct pcap_pkthdr *h, const u_char *p) { u_int caplen = h->caplen; u_int length = h->len; ndo->ndo_protocol = "edsa"; - return (ether_switch_tag_print(ndo, p, length, caplen, - edsa_tag_print, EDSA_LEN)); + ndo->ndo_ll_hdr_len += + ether_switch_tag_print(ndo, p, length, caplen, edsa_tag_print, EDSA_LEN); }