The loop that processes MPLS labels decrements the length for each
label, so it's the remaining length; don't subtract the total length of
the MPLS labels from it before handing it to packet printers.
*/
if (pt == PT_UNKNOWN) {
if (!ndo->ndo_suppress_default_print)
*/
if (pt == PT_UNKNOWN) {
if (!ndo->ndo_suppress_default_print)
- ND_DEFAULTPRINT(p, length - (p - bp));
+ ND_DEFAULTPRINT(p, length);
return;
}
ND_PRINT((ndo, ndo->ndo_vflag ? "\n\t" : " "));
switch (pt) {
case PT_IPV4:
return;
}
ND_PRINT((ndo, ndo->ndo_vflag ? "\n\t" : " "));
switch (pt) {
case PT_IPV4:
- ip_print(ndo, p, length - (p - bp));
+ ip_print(ndo, p, length);
- ip6_print(ndo, p, length - (p - bp));
+ ip6_print(ndo, p, length);
- isoclns_print(ndo, p, length - (p - bp), length - (p - bp));
+ isoclns_print(ndo, p, length, length);