ND_ICHECKMSG_U("remaining data length", remaining, <, RIP_ROUTELEN);
ND_TCHECK_SIZE(ni);
family = GET_BE_U_2(ni->rip_family);
ND_ICHECKMSG_U("remaining data length", remaining, <, RIP_ROUTELEN);
ND_TCHECK_SIZE(ni);
family = GET_BE_U_2(ni->rip_family);
ND_PRINT("\n\t AFI %s, ", tok2str(bsd_af_values, "Unknown (%u)", family));
print_unknown_data(ndo, p + sizeof(*eh), "\n\t ", RIP_ROUTELEN - sizeof(*eh));
return (RIP_ROUTELEN);
ND_PRINT("\n\t AFI %s, ", tok2str(bsd_af_values, "Unknown (%u)", family));
print_unknown_data(ndo, p + sizeof(*eh), "\n\t ", RIP_ROUTELEN - sizeof(*eh));
return (RIP_ROUTELEN);
GET_IPADDR_STRING(ni->rip_dest),
GET_BE_U_4(ni->rip_metric));
return (RIP_ROUTELEN);
GET_IPADDR_STRING(ni->rip_dest),
GET_BE_U_4(ni->rip_metric));
return (RIP_ROUTELEN);
ND_PRINT("\n\t %s, metric: %u",
GET_IPADDR_STRING(ni->rip_dest),
GET_BE_U_4(ni->rip_metric));
ND_PRINT("\n\t %s, metric: %u",
GET_IPADDR_STRING(ni->rip_dest),
GET_BE_U_4(ni->rip_metric));
print_unknown_data(ndo, p, "\n\t ", remaining);
return (sizeof(*eh) + remaining); /* we don't know how long this is, so we go to the packet end */
}
print_unknown_data(ndo, p, "\n\t ", remaining);
return (sizeof(*eh) + remaining); /* we don't know how long this is, so we go to the packet end */
}
ND_PRINT("\n\t AFI %s", tok2str(bsd_af_values, "Unknown (%u)", family));
print_unknown_data(ndo, p + sizeof(*eh), "\n\t ", RIP_ROUTELEN - sizeof(*eh));
ND_PRINT("\n\t AFI %s", tok2str(bsd_af_values, "Unknown (%u)", family));
print_unknown_data(ndo, p + sizeof(*eh), "\n\t ", RIP_ROUTELEN - sizeof(*eh));
ni = (const struct rip_netinfo_v2 *)p;
ND_ICHECKMSG_ZU("remaining data length", remaining, <,
sizeof(*ni));
ni = (const struct rip_netinfo_v2 *)p;
ND_ICHECKMSG_ZU("remaining data length", remaining, <,
sizeof(*ni));
if (!print_unknown_data(ndo, p, "\n\t", len))
return;
}
if (!print_unknown_data(ndo, p, "\n\t", len))
return;
}