- egp = (struct egp_packet *)bp;
- ip = (struct ip *)bp2;
- (void)printf("%s > %s: egp: ",
- ipaddr_string(&ip->ip_src),
- ipaddr_string(&ip->ip_dst));
+ egp = (const struct egp_packet *)bp;
+ if (length < sizeof(*egp) || !ND_TTEST(*egp)) {
+ ND_PRINT((ndo, "[|egp]"));
+ return;
+ }
+
+ if (!ndo->ndo_vflag) {
+ ND_PRINT((ndo, "EGPv%u, AS %u, seq %u, length %u",
+ egp->egp_version,
+ EXTRACT_16BITS(&egp->egp_as),
+ EXTRACT_16BITS(&egp->egp_sequence),
+ length));
+ return;
+ } else
+ ND_PRINT((ndo, "EGPv%u, length %u",
+ egp->egp_version,
+ length));