From: Denis Ovsienko Date: Thu, 14 Jan 2021 03:31:50 +0000 (+0000) Subject: RIP: Make a couple trivial protocol updates. X-Git-Url: https://git.tcpdump.org/tcpdump/commitdiff_plain/4352d308780026c49142ff80a672de68de0238de RIP: Make a couple trivial protocol updates. Synchronize with the RIP Commands IANA registry and treat version 0 as invalid. --- diff --git a/CHANGES b/CHANGES index 7263f80e..e22bd508 100644 --- a/CHANGES +++ b/CHANGES @@ -8,6 +8,7 @@ Monthday, Month DD, YYYY by gharris and denis UDP: Clean up address and port printing. AppleTalk: Declutter appletalk.h. OpenFlow 1.0: Fix indentation of PORT_MOD. + RIP: Make a couple trivial protocol updates. Monthday, Month DD, YYYY by gharris Summary for 4.99.1 tcpdump release (so far!) diff --git a/print-rip.c b/print-rip.c index fca534fb..0a2bef3e 100644 --- a/print-rip.c +++ b/print-rip.c @@ -55,16 +55,25 @@ struct rip { #define RIPCMD_RESPONSE 2 /* responding to request */ #define RIPCMD_TRACEON 3 /* turn tracing on */ #define RIPCMD_TRACEOFF 4 /* turn it off */ -#define RIPCMD_POLL 5 /* want info from everybody */ -#define RIPCMD_POLLENTRY 6 /* poll for entry */ +/* 5 is reserved */ +#define RIPCMD_TRIGREQ 6 +#define RIPCMD_TRIGRESP 7 +#define RIPCMD_TRIGACK 8 +#define RIPCMD_UPDREQ 9 +#define RIPCMD_UPDRESP 10 +#define RIPCMD_UPDACK 11 static const struct tok rip_cmd_values[] = { { RIPCMD_REQUEST, "Request" }, { RIPCMD_RESPONSE, "Response" }, { RIPCMD_TRACEON, "Trace on" }, { RIPCMD_TRACEOFF, "Trace off" }, - { RIPCMD_POLL, "Poll" }, - { RIPCMD_POLLENTRY, "Poll Entry" }, + { RIPCMD_TRIGREQ, "Triggered Request" }, + { RIPCMD_TRIGRESP, "Triggered Response" }, + { RIPCMD_TRIGACK, "Triggered Acknowledgement" }, + { RIPCMD_UPDREQ, "Update Request" }, + { RIPCMD_UPDRESP, "Update Response" }, + { RIPCMD_UPDACK, "Update Acknowledge" }, { 0, NULL} }; @@ -317,22 +326,6 @@ rip_print(netdissect_options *ndo, (ndo->ndo_vflag >= 1) ? "\n\t" : "", vers); - if (vers == 0) { - /* - * RFC 1058. - * - * XXX - RFC 1058 says - * - * 0 Datagrams whose version number is zero are to be ignored. - * These are from a previous version of the protocol, whose - * packet format was machine-specific. - * - * so perhaps we should just dump the packet, in hex. - */ - print_unknown_data(ndo, (const uint8_t *)&rp->rip_cmd, "\n\t", length); - return; - } - /* dump version and lets see if we know the commands name*/ cmd = GET_U_1(rp->rip_cmd); ND_PRINT(", %s, length: %u", @@ -398,13 +391,16 @@ rip_print(netdissect_options *ndo, } break; + case RIPCMD_TRACEON: case RIPCMD_TRACEOFF: - case RIPCMD_POLL: - case RIPCMD_POLLENTRY: + case RIPCMD_TRIGREQ: + case RIPCMD_TRIGRESP: + case RIPCMD_TRIGACK: + case RIPCMD_UPDREQ: + case RIPCMD_UPDRESP: + case RIPCMD_UPDACK: break; - case RIPCMD_TRACEON: - /* fall through */ default: if (ndo->ndo_vflag <= 1) { if (!print_unknown_data(ndo, (const uint8_t *)rp, "\n\t", length))