Lines Matching +full:control +full:- +full:field
29 #include "netdissect-stdinc.h"
152 uint16_t control; in llc_print() local
156 ndo->ndo_protocol = "llc"; in llc_print()
173 * of the control field depends on that - I frames in llc_print()
174 * have a two-byte control field, and U frames have in llc_print()
175 * a one-byte control field. in llc_print()
177 control = GET_U_1(p + 2); in llc_print()
178 if ((control & LLC_U_FMT) == LLC_U_FMT) { in llc_print()
183 hdrlen = 3; /* DSAP, SSAP, 1-byte control field */ in llc_print()
186 * The control field in I and S frames is in llc_print()
201 * ...and is little-endian. in llc_print()
203 control = GET_LE_U_2(p + 2); in llc_print()
205 hdrlen = 4; /* DSAP, SSAP, 2-byte control field */ in llc_print()
212 * type/length field is <= MAX_ETHERNET_LENGTH_VAL, in llc_print()
213 * i.e. it's a length field, not a type field), but in llc_print()
214 * has no 802.2 header - the IPX packet starts right in llc_print()
224 if (ndo->ndo_eflag) in llc_print()
234 if (ndo->ndo_eflag) { in llc_print()
244 ND_PRINT(", ctrl 0x%02x: ", control); in llc_print()
246 ND_PRINT(", ctrl 0x%04x: ", control); in llc_print()
254 length -= hdrlen; in llc_print()
255 caplen -= hdrlen; in llc_print()
258 && control == LLC_UI) { in llc_print()
260 * XXX - what *is* the right bridge pad value here? in llc_print()
270 return (-(hdrlen + 5)); /* include LLC and SNAP header */ in llc_print()
276 control == LLC_UI) { in llc_print()
282 control == LLC_UI) { in llc_print()
284 * This is an RFC 948-style IP packet, with in llc_print()
294 control == LLC_UI) { in llc_print()
300 if (ndo->ndo_eflag) in llc_print()
309 && (!(control & LLC_S_FMT) || control == LLC_U_FMT)) { in llc_print()
312 * smb parser can handle many smb-in-netbeui packets, which in llc_print()
316 * (which are frames that don't have the low-order bit, in llc_print()
317 * LLC_S_FMT, set in the first byte of the control field) in llc_print()
318 * and UI frames (whose control field is just 3, LLC_U_FMT). in llc_print()
320 netbeui_print(ndo, control, p, length); in llc_print()
325 && control == LLC_UI) { in llc_print()
330 if (!ndo->ndo_eflag) { in llc_print()
336 (src->addr_string)(ndo, src->addr), in llc_print()
337 (dst->addr_string)(ndo, dst->addr), in llc_print()
346 (src->addr_string)(ndo, src->addr), in llc_print()
348 (dst->addr_string)(ndo, dst->addr), in llc_print()
355 tok2str(llc_cmd_values, "%02x", LLC_U_CMD(control)), in llc_print()
356 … tok2str(llc_flag_values,"?",(ssap_field & LLC_GSAP) | (control & LLC_U_POLL)), in llc_print()
359 if ((control & ~LLC_U_POLL) == LLC_XID) { in llc_print()
387 if ((control & LLC_S_FMT) == LLC_S_FMT) { in llc_print()
389 tok2str(llc_supervisory_values,"?",LLC_S_CMD(control)), in llc_print()
390 LLC_IS_NR(control), in llc_print()
391 tok2str(llc_flag_values,"?",(ssap_field & LLC_GSAP) | (control & LLC_IS_POLL)), in llc_print()
396 LLC_I_NS(control), in llc_print()
397 LLC_IS_NR(control), in llc_print()
398 tok2str(llc_flag_values,"?",(ssap_field & LLC_GSAP) | (control & LLC_IS_POLL)), in llc_print()
402 return (-hdrlen); in llc_print()
411 for (otp = &oui_to_tok[0]; otp->tok != NULL; otp++) { in oui_to_struct_tok()
412 if (otp->oui == orgcode) { in oui_to_struct_tok()
413 tok = otp->tok; in oui_to_struct_tok()
429 ndo->ndo_protocol = "snap"; in snap_print()
436 if (ndo->ndo_eflag) { in snap_print()
447 et, length - 5); in snap_print()
450 length -= 5; in snap_print()
451 caplen -= 5; in snap_print()
512 * XXX - remove the last two bytes for in snap_print()
519 caplen -= bridge_pad; in snap_print()
520 length -= bridge_pad; in snap_print()
532 * XXX - remove the last two bytes for in snap_print()
537 * Control field. in snap_print()
540 caplen -= bridge_pad; in snap_print()
541 length -= bridge_pad; in snap_print()
554 * XXX - remove the last two bytes for in snap_print()
561 caplen -= bridge_pad + 1; in snap_print()
562 length -= bridge_pad + 1; in snap_print()
576 if (!ndo->ndo_eflag) { in snap_print()
578 * Nobody printed the link-layer addresses, so print them, if in snap_print()
583 (src->addr_string)(ndo, src->addr), in snap_print()
584 (dst->addr_string)(ndo, dst->addr)); in snap_print()