mirror of
https://git.rtems.org/rtems-libbsd/
synced 2025-10-17 22:28:43 +08:00
Update to FreeBSD head 2018-02-01
Git mirror commit d079ae0442af8fa3cfd6d7ede190d04e64a2c0d4. Update #3472.
This commit is contained in:
@@ -18,7 +18,7 @@
|
||||
* LIMITATION, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
|
||||
* FOR A PARTICULAR PURPOSE.
|
||||
*
|
||||
* Original code by Hannes Gredler (hannes@juniper.net)
|
||||
* Original code by Hannes Gredler (hannes@gredler.at)
|
||||
*/
|
||||
|
||||
/* \summary: DLT_JUNIPER_* printers */
|
||||
@@ -478,6 +478,7 @@ juniper_ggsn_print(netdissect_options *ndo,
|
||||
p+=l2info.header_len;
|
||||
gh = (struct juniper_ggsn_header *)&l2info.cookie;
|
||||
|
||||
ND_TCHECK(*gh);
|
||||
if (ndo->ndo_eflag) {
|
||||
ND_PRINT((ndo, "proto %s (%u), vlan %u: ",
|
||||
tok2str(juniper_protocol_values,"Unknown",gh->proto),
|
||||
@@ -498,6 +499,10 @@ juniper_ggsn_print(netdissect_options *ndo,
|
||||
}
|
||||
|
||||
return l2info.header_len;
|
||||
|
||||
trunc:
|
||||
ND_PRINT((ndo, "[|juniper_services]"));
|
||||
return l2info.header_len;
|
||||
}
|
||||
#endif
|
||||
|
||||
@@ -525,6 +530,7 @@ juniper_es_print(netdissect_options *ndo,
|
||||
p+=l2info.header_len;
|
||||
ih = (const struct juniper_ipsec_header *)p;
|
||||
|
||||
ND_TCHECK(*ih);
|
||||
switch (ih->type) {
|
||||
case JUNIPER_IPSEC_O_ESP_ENCRYPT_ESP_AUTHEN_TYPE:
|
||||
case JUNIPER_IPSEC_O_ESP_ENCRYPT_AH_AUTHEN_TYPE:
|
||||
@@ -570,6 +576,10 @@ juniper_es_print(netdissect_options *ndo,
|
||||
|
||||
ip_print(ndo, p, l2info.length);
|
||||
return l2info.header_len;
|
||||
|
||||
trunc:
|
||||
ND_PRINT((ndo, "[|juniper_services]"));
|
||||
return l2info.header_len;
|
||||
}
|
||||
#endif
|
||||
|
||||
@@ -594,6 +604,7 @@ juniper_monitor_print(netdissect_options *ndo,
|
||||
p+=l2info.header_len;
|
||||
mh = (const struct juniper_monitor_header *)p;
|
||||
|
||||
ND_TCHECK(*mh);
|
||||
if (ndo->ndo_eflag)
|
||||
ND_PRINT((ndo, "service-id %u, iif %u, pkt-type %u: ",
|
||||
EXTRACT_32BITS(&mh->service_id),
|
||||
@@ -604,6 +615,10 @@ juniper_monitor_print(netdissect_options *ndo,
|
||||
ip_heuristic_guess (ndo, p, l2info.length);
|
||||
|
||||
return l2info.header_len;
|
||||
|
||||
trunc:
|
||||
ND_PRINT((ndo, "[|juniper_services]"));
|
||||
return l2info.header_len;
|
||||
}
|
||||
#endif
|
||||
|
||||
@@ -628,6 +643,7 @@ juniper_services_print(netdissect_options *ndo,
|
||||
p+=l2info.header_len;
|
||||
sh = (const struct juniper_services_header *)p;
|
||||
|
||||
ND_TCHECK(*sh);
|
||||
if (ndo->ndo_eflag)
|
||||
ND_PRINT((ndo, "service-id %u flags 0x%02x service-set-id 0x%04x iif %u: ",
|
||||
sh->svc_id,
|
||||
@@ -639,6 +655,10 @@ juniper_services_print(netdissect_options *ndo,
|
||||
ip_heuristic_guess (ndo, p, l2info.length);
|
||||
|
||||
return l2info.header_len;
|
||||
|
||||
trunc:
|
||||
ND_PRINT((ndo, "[|juniper_services]"));
|
||||
return l2info.header_len;
|
||||
}
|
||||
#endif
|
||||
|
||||
@@ -746,6 +766,7 @@ juniper_pppoe_atm_print(netdissect_options *ndo,
|
||||
|
||||
p+=l2info.header_len;
|
||||
|
||||
ND_TCHECK2(p[0], 2);
|
||||
extracted_ethertype = EXTRACT_16BITS(p);
|
||||
/* this DLT contains nothing but raw PPPoE frames,
|
||||
* prepended with a type field*/
|
||||
@@ -758,6 +779,10 @@ juniper_pppoe_atm_print(netdissect_options *ndo,
|
||||
ND_PRINT((ndo, "unknown ethertype 0x%04x", extracted_ethertype));
|
||||
|
||||
return l2info.header_len;
|
||||
|
||||
trunc:
|
||||
ND_PRINT((ndo, "[|juniper_pppoe_atm]"));
|
||||
return l2info.header_len;
|
||||
}
|
||||
#endif
|
||||
|
||||
@@ -799,7 +824,7 @@ juniper_mlppp_print(netdissect_options *ndo,
|
||||
mpls_print(ndo, p, l2info.length);
|
||||
return l2info.header_len;
|
||||
case JUNIPER_LSQ_L3_PROTO_ISO:
|
||||
isoclns_print(ndo, p, l2info.length, l2info.caplen);
|
||||
isoclns_print(ndo, p, l2info.length);
|
||||
return l2info.header_len;
|
||||
default:
|
||||
break;
|
||||
@@ -854,7 +879,7 @@ juniper_mfr_print(netdissect_options *ndo,
|
||||
mpls_print(ndo, p, l2info.length);
|
||||
return l2info.header_len;
|
||||
case JUNIPER_LSQ_L3_PROTO_ISO:
|
||||
isoclns_print(ndo, p, l2info.length, l2info.caplen);
|
||||
isoclns_print(ndo, p, l2info.length);
|
||||
return l2info.header_len;
|
||||
default:
|
||||
break;
|
||||
@@ -867,13 +892,13 @@ juniper_mfr_print(netdissect_options *ndo,
|
||||
ND_PRINT((ndo, "Bundle-ID %u, ", l2info.bundle));
|
||||
switch (l2info.proto) {
|
||||
case (LLCSAP_ISONS<<8 | LLCSAP_ISONS):
|
||||
isoclns_print(ndo, p + 1, l2info.length - 1, l2info.caplen - 1);
|
||||
isoclns_print(ndo, p + 1, l2info.length - 1);
|
||||
break;
|
||||
case (LLC_UI<<8 | NLPID_Q933):
|
||||
case (LLC_UI<<8 | NLPID_IP):
|
||||
case (LLC_UI<<8 | NLPID_IP6):
|
||||
/* pass IP{4,6} to the OSI layer for proper link-layer printing */
|
||||
isoclns_print(ndo, p - 1, l2info.length + 1, l2info.caplen + 1);
|
||||
isoclns_print(ndo, p - 1, l2info.length + 1);
|
||||
break;
|
||||
default:
|
||||
ND_PRINT((ndo, "unknown protocol 0x%04x, length %u", l2info.proto, l2info.length));
|
||||
@@ -902,13 +927,13 @@ juniper_mlfr_print(netdissect_options *ndo,
|
||||
switch (l2info.proto) {
|
||||
case (LLC_UI):
|
||||
case (LLC_UI<<8):
|
||||
isoclns_print(ndo, p, l2info.length, l2info.caplen);
|
||||
isoclns_print(ndo, p, l2info.length);
|
||||
break;
|
||||
case (LLC_UI<<8 | NLPID_Q933):
|
||||
case (LLC_UI<<8 | NLPID_IP):
|
||||
case (LLC_UI<<8 | NLPID_IP6):
|
||||
/* pass IP{4,6} to the OSI layer for proper link-layer printing */
|
||||
isoclns_print(ndo, p - 1, l2info.length + 1, l2info.caplen + 1);
|
||||
isoclns_print(ndo, p - 1, l2info.length + 1);
|
||||
break;
|
||||
default:
|
||||
ND_PRINT((ndo, "unknown protocol 0x%04x, length %u", l2info.proto, l2info.length));
|
||||
@@ -946,6 +971,7 @@ juniper_atm1_print(netdissect_options *ndo,
|
||||
return l2info.header_len;
|
||||
}
|
||||
|
||||
ND_TCHECK2(p[0], 3);
|
||||
if (EXTRACT_24BITS(p) == 0xfefe03 || /* NLPID encaps ? */
|
||||
EXTRACT_24BITS(p) == 0xaaaa03) { /* SNAP encaps ? */
|
||||
|
||||
@@ -955,7 +981,7 @@ juniper_atm1_print(netdissect_options *ndo,
|
||||
}
|
||||
|
||||
if (p[0] == 0x03) { /* Cisco style NLPID encaps ? */
|
||||
isoclns_print(ndo, p + 1, l2info.length - 1, l2info.caplen - 1);
|
||||
isoclns_print(ndo, p + 1, l2info.length - 1);
|
||||
/* FIXME check if frame was recognized */
|
||||
return l2info.header_len;
|
||||
}
|
||||
@@ -964,6 +990,10 @@ juniper_atm1_print(netdissect_options *ndo,
|
||||
return l2info.header_len;
|
||||
|
||||
return l2info.header_len;
|
||||
|
||||
trunc:
|
||||
ND_PRINT((ndo, "[|juniper_atm1]"));
|
||||
return l2info.header_len;
|
||||
}
|
||||
#endif
|
||||
|
||||
@@ -995,6 +1025,7 @@ juniper_atm2_print(netdissect_options *ndo,
|
||||
return l2info.header_len;
|
||||
}
|
||||
|
||||
ND_TCHECK2(p[0], 3);
|
||||
if (EXTRACT_24BITS(p) == 0xfefe03 || /* NLPID encaps ? */
|
||||
EXTRACT_24BITS(p) == 0xaaaa03) { /* SNAP encaps ? */
|
||||
|
||||
@@ -1010,7 +1041,7 @@ juniper_atm2_print(netdissect_options *ndo,
|
||||
}
|
||||
|
||||
if (p[0] == 0x03) { /* Cisco style NLPID encaps ? */
|
||||
isoclns_print(ndo, p + 1, l2info.length - 1, l2info.caplen - 1);
|
||||
isoclns_print(ndo, p + 1, l2info.length - 1);
|
||||
/* FIXME check if frame was recognized */
|
||||
return l2info.header_len;
|
||||
}
|
||||
@@ -1022,6 +1053,10 @@ juniper_atm2_print(netdissect_options *ndo,
|
||||
return l2info.header_len;
|
||||
|
||||
return l2info.header_len;
|
||||
|
||||
trunc:
|
||||
ND_PRINT((ndo, "[|juniper_atm2]"));
|
||||
return l2info.header_len;
|
||||
}
|
||||
#endif
|
||||
|
||||
@@ -1286,6 +1321,7 @@ juniper_parse_header(netdissect_options *ndo,
|
||||
l2info->caplen -= l2info->header_len;
|
||||
|
||||
/* search through the cookie table and copy values matching for our PIC type */
|
||||
ND_TCHECK(p[0]);
|
||||
while (lp->s != NULL) {
|
||||
if (lp->pictype == l2info->pictype) {
|
||||
|
||||
@@ -1337,6 +1373,7 @@ juniper_parse_header(netdissect_options *ndo,
|
||||
if (ndo->ndo_eflag) ND_PRINT((ndo, ": ")); /* print demarc b/w L2/L3*/
|
||||
|
||||
|
||||
ND_TCHECK_16BITS(p+l2info->cookie_len);
|
||||
l2info->proto = EXTRACT_16BITS(p+l2info->cookie_len);
|
||||
break;
|
||||
}
|
||||
@@ -1366,6 +1403,7 @@ juniper_parse_header(netdissect_options *ndo,
|
||||
case DLT_JUNIPER_MLFR:
|
||||
switch (l2info->cookie_type) {
|
||||
case LS_COOKIE_ID:
|
||||
ND_TCHECK2(p[0], 2);
|
||||
l2info->bundle = l2info->cookie[1];
|
||||
l2info->proto = EXTRACT_16BITS(p);
|
||||
l2info->header_len += 2;
|
||||
@@ -1389,6 +1427,7 @@ juniper_parse_header(netdissect_options *ndo,
|
||||
case DLT_JUNIPER_MFR:
|
||||
switch (l2info->cookie_type) {
|
||||
case LS_COOKIE_ID:
|
||||
ND_TCHECK2(p[0], 2);
|
||||
l2info->bundle = l2info->cookie[1];
|
||||
l2info->proto = EXTRACT_16BITS(p);
|
||||
l2info->header_len += 2;
|
||||
|
Reference in New Issue
Block a user