/* \summary: Protocol Independent Multicast (PIM) printer */
#ifdef HAVE_CONFIG_H
-#include "config.h"
+#include <config.h>
#endif
-#include <netdissect-stdinc.h>
+#include "netdissect-stdinc.h"
#include "netdissect.h"
#include "addrtoname.h"
return;
}
- if (len < sizeof(struct in_addr))
+ if (len < sizeof(nd_ipv4))
goto trunc;
- ND_TCHECK_LEN(bp, sizeof(struct in_addr));
+ ND_TCHECK_LEN(bp, sizeof(nd_ipv4));
if (ndo->ndo_vflag > 1)
ND_PRINT("\n");
ND_PRINT(" Upstream Nbr: %s", ipaddr_string(ndo, bp));
*/
if (len < 4)
goto trunc;
- ND_TCHECK_LEN(bp, sizeof(struct in_addr));
+ ND_TCHECK_LEN(bp, sizeof(nd_ipv4));
ND_PRINT("\n\tGroup: %s", ipaddr_string(ndo, bp));
bp += 4;
len -= 4;
if (len < 4)
goto trunc;
- ND_TCHECK_LEN(bp, sizeof(struct in_addr));
+ ND_TCHECK_LEN(bp, sizeof(nd_ipv4));
if (EXTRACT_BE_U_4(bp) != 0xffffffff)
ND_PRINT("/%s", ipaddr_string(ndo, bp));
bp += 4;
}
return;
trunc:
- ND_PRINT("[|pim]");
+ nd_print_trunc(ndo);
return;
}
{
u_char type;
+ ndo->ndo_protocol = "pimv1";
ND_TCHECK_1(bp + 1);
type = EXTRACT_U_1(bp + 1);
ipaddr_string(ndo, bp + 24));
break;
case PIMV1_TYPE_REGISTER_STOP:
- ND_TCHECK_LEN(bp + 12, sizeof(struct in_addr));
+ ND_TCHECK_LEN(bp + 12, sizeof(nd_ipv4));
ND_PRINT(" for %s > %s", ipaddr_string(ndo, bp + 8),
ipaddr_string(ndo, bp + 12));
break;
}
break;
case PIMV1_TYPE_ASSERT:
- ND_TCHECK_LEN(bp + 16, sizeof(struct in_addr));
+ ND_TCHECK_LEN(bp + 16, sizeof(nd_ipv4));
ND_PRINT(" for %s > %s", ipaddr_string(ndo, bp + 16),
ipaddr_string(ndo, bp + 8));
if (EXTRACT_BE_U_4(bp + 12) != 0xffffffff)
return;
trunc:
- ND_PRINT("[|pim]");
+ nd_print_trunc(ndo);
return;
}
u_int numrps;
u_int hold;
+ ndo->ndo_protocol = "cisco_autorp";
if (len < 8)
goto trunc;
ND_TCHECK_1(bp);
return;
trunc:
- ND_PRINT("[|autorp]");
+ nd_print_trunc(ndo);
return;
}
const struct pim *pim = (const struct pim *)bp;
uint8_t pim_typever;
+ ndo->ndo_protocol = "pim";
#ifdef notyet /* currently we see only version and type */
ND_TCHECK_1(pim->pim_rsv);
#endif
return;
trunc:
- ND_PRINT("[|pim]");
+ nd_print_trunc(ndo);
return;
}
switch (EXTRACT_U_1(bp)) {
case 1:
af = AF_INET;
- addr_len = (u_int)sizeof(struct in_addr);
+ addr_len = (u_int)sizeof(nd_ipv4);
break;
case 2:
af = AF_INET6;
- addr_len = (u_int)sizeof(struct in6_addr);
+ addr_len = (u_int)sizeof(nd_ipv6);
break;
default:
return -1;
hdrlen = 2;
} else {
switch (addr_len) {
- case sizeof(struct in_addr):
+ case sizeof(nd_ipv4):
af = AF_INET;
break;
- case sizeof(struct in6_addr):
+ case sizeof(nd_ipv6):
af = AF_INET6;
break;
default:
u_int pim_typever;
u_int pimv2_addr_len;
+ ndo->ndo_protocol = "pimv2";
if (len < 2)
goto trunc;
ND_TCHECK_1(pim->pim_rsv);
if (len < 4)
goto trunc;
- ND_TCHECK(pim->pim_cksum);
+ ND_TCHECK_2(pim->pim_cksum);
ND_PRINT(", cksum 0x%04x ", EXTRACT_BE_U_2(pim->pim_cksum));
if (EXTRACT_BE_U_2(pim->pim_cksum) == 0) {
ND_PRINT("(unverified)");
if (len == 0)
goto trunc;
ip = (const struct ip *)bp;
- ND_TCHECK(ip->ip_vhl);
+ ND_TCHECK_1(ip->ip_vhl);
switch (IP_V(ip)) {
case 0: /* Null header */
- ND_TCHECK(ip->ip_dst);
+ ND_TCHECK_4(ip->ip_dst);
ND_PRINT("IP-Null-header %s > %s",
- ipaddr_string(ndo, &ip->ip_src),
- ipaddr_string(ndo, &ip->ip_dst));
+ ipaddr_string(ndo, ip->ip_src),
+ ipaddr_string(ndo, ip->ip_dst));
break;
case 4: /* IPv4 */
return;
trunc:
- ND_PRINT("[|pim]");
+ nd_print_trunc(ndo);
}
-
-/*
- * Local Variables:
- * c-style: whitesmith
- * c-basic-offset: 8
- * End:
- */