X-Git-Url: https://git.tcpdump.org/tcpdump/blobdiff_plain/e2982e7f6f0b624a773ec5a58885ee80fab46d34..4c1c6e82938e355a998da1b01212b6ba7c7fdddf:/print-nsh.c diff --git a/print-nsh.c b/print-nsh.c index 0ad1364c..7de9002f 100644 --- a/print-nsh.c +++ b/print-nsh.c @@ -26,15 +26,14 @@ /* specification: draft-ietf-sfc-nsh-01 */ #ifdef HAVE_CONFIG_H -#include "config.h" +#include #endif -#include +#include "netdissect-stdinc.h" #include "netdissect.h" #include "extract.h" -static const char tstr[] = " [|NSH]"; static const struct tok nsh_flags [] = { { 0x20, "O" }, { 0x10, "C" }, @@ -48,10 +47,10 @@ static const struct tok nsh_flags [] = { void nsh_print(netdissect_options *ndo, const u_char *bp, u_int len) { - int n, vn; + u_int n, vn; uint8_t ver; uint8_t flags; - uint8_t length; + u_int length; uint8_t md_type; uint8_t next_protocol; uint32_t service_path_id; @@ -62,6 +61,7 @@ nsh_print(netdissect_options *ndo, const u_char *bp, u_int len) uint8_t tlv_len; u_int next_len; + ndo->ndo_protocol = "nsh"; /* print Base Header and Service Path Header */ if (len < NSH_BASE_HDR_LEN + NSH_SERVICE_PATH_HDR_LEN) goto trunc; @@ -84,11 +84,11 @@ nsh_print(netdissect_options *ndo, const u_char *bp, u_int len) ND_PRINT("NSH, "); if (ndo->ndo_vflag > 1) { - ND_PRINT("ver %d, ", ver); + ND_PRINT("ver %u, ", ver); } ND_PRINT("flags [%s], ", bittok2str_nosep(nsh_flags, "none", flags)); if (ndo->ndo_vflag > 2) { - ND_PRINT("length %d, ", length); + ND_PRINT("length %u, ", length); ND_PRINT("md type 0x%x, ", md_type); } if (ndo->ndo_vflag > 1) { @@ -119,7 +119,7 @@ nsh_print(netdissect_options *ndo, const u_char *bp, u_int len) for (n = 0; n < length - 2; n++) { ctx = EXTRACT_BE_U_4(bp); bp += NSH_HDR_WORD_SIZE; - ND_PRINT("\n Context[%02d]: 0x%08x", n, ctx); + ND_PRINT("\n Context[%02u]: 0x%08x", n, ctx); } } else if (md_type == 0x02) { @@ -132,7 +132,7 @@ nsh_print(netdissect_options *ndo, const u_char *bp, u_int len) tlv_len = EXTRACT_U_1(bp); bp += 1; - ND_PRINT("\n TLV Class %d, Type %d, Len %d", + ND_PRINT("\n TLV Class %u, Type %u, Len %u", tlv_class, tlv_type, tlv_len); n += 1; @@ -145,7 +145,7 @@ nsh_print(netdissect_options *ndo, const u_char *bp, u_int len) for (vn = 0; vn < tlv_len; vn++) { ctx = EXTRACT_BE_U_4(bp); bp += NSH_HDR_WORD_SIZE; - ND_PRINT("\n Value[%02d]: 0x%08x", vn, ctx); + ND_PRINT("\n Value[%02u]: 0x%08x", vn, ctx); } n += tlv_len; } @@ -180,6 +180,6 @@ nsh_print(netdissect_options *ndo, const u_char *bp, u_int len) return; trunc: - ND_PRINT("%s", tstr); + nd_print_trunc(ndo); }