Home | History | Annotate | Download | only in tcpdump

Lines Matching refs:cp

101 ahcp_time_print(netdissect_options *ndo, const u_char *cp, const u_char *ep)
107 if (cp + 4 != ep)
109 ND_TCHECK2(*cp, 4);
110 t = EXTRACT_32BITS(cp);
121 ND_TCHECK2(*cp, ep - cp);
129 ahcp_seconds_print(netdissect_options *ndo, const u_char *cp, const u_char *ep)
131 if (cp + 4 != ep)
133 ND_TCHECK2(*cp, 4);
134 ND_PRINT((ndo, ": %us", EXTRACT_32BITS(cp)));
139 ND_TCHECK2(*cp, ep - cp);
147 ahcp_ipv6_addresses_print(netdissect_options *ndo, const u_char *cp, const u_char *ep)
151 while (cp < ep) {
152 if (cp + 16 > ep)
154 ND_TCHECK2(*cp, 16);
155 ND_PRINT((ndo, "%s%s", sep, ip6addr_string(ndo, cp)));
156 cp += 16;
163 ND_TCHECK2(*cp, ep - cp);
171 ahcp_ipv4_addresses_print(netdissect_options *ndo, const u_char *cp, const u_char *ep)
175 while (cp < ep) {
176 if (cp + 4 > ep)
178 ND_TCHECK2(*cp, 4);
179 ND_PRINT((ndo, "%s%s", sep, ipaddr_string(ndo, cp)));
180 cp += 4;
187 ND_TCHECK2(*cp, ep - cp);
195 ahcp_ipv6_prefixes_print(netdissect_options *ndo, const u_char *cp, const u_char *ep)
199 while (cp < ep) {
200 if (cp + 17 > ep)
202 ND_TCHECK2(*cp, 17);
203 ND_PRINT((ndo, "%s%s/%u", sep, ip6addr_string(ndo, cp), *(cp + 16)));
204 cp += 17;
211 ND_TCHECK2(*cp, ep - cp);
219 ahcp_ipv4_prefixes_print(netdissect_options *ndo, const u_char *cp, const u_char *ep)
223 while (cp < ep) {
224 if (cp + 5 > ep)
226 ND_TCHECK2(*cp, 5);
227 ND_PRINT((ndo, "%s%s/%u", sep, ipaddr_string(ndo, cp), *(cp + 4)));
228 cp += 5;
235 ND_TCHECK2(*cp, ep - cp);
262 ahcp1_options_print(netdissect_options *ndo, const u_char *cp, const u_char *ep)
266 while (cp < ep) {
268 ND_TCHECK2(*cp, 1);
269 option_no = *cp;
270 cp += 1;
275 if (cp + 1 > ep)
277 ND_TCHECK2(*cp, 1);
278 option_len = *cp;
279 cp += 1;
280 if (cp + option_len > ep)
284 if (data_decoders[option_no](ndo, cp, cp + option_len) < 0)
288 ND_TCHECK2(*cp, option_len);
290 cp += option_len;
296 ND_TCHECK2(*cp, ep - cp);
303 ahcp1_body_print(netdissect_options *ndo, const u_char *cp, const u_char *ep)
308 if (cp + AHCP1_BODY_MIN_LEN > ep)
311 ND_TCHECK2(*cp, 1);
312 type = *cp;
313 cp += 1;
315 ND_TCHECK2(*cp, 1);
316 mbz = *cp;
317 cp += 1;
319 ND_TCHECK2(*cp, 2);
320 body_len = EXTRACT_16BITS(cp);
321 cp += 2;
329 if (cp + body_len > ep)
334 ahcp1_options_print(ndo, cp, cp + body_len); /* not ep (ignore extra data) */
336 ND_TCHECK2(*cp, body_len);
341 ND_TCHECK2(*cp, ep - cp);
348 ahcp_print(netdissect_options *ndo, const u_char *cp, const u_int len)
350 const u_char *ep = cp + len;
357 ND_TCHECK2(*cp, 1);
358 if (*cp != AHCP_MAGIC_NUMBER)
360 cp += 1;
362 ND_TCHECK2(*cp, 1);
363 version = *cp;
364 cp += 1;
371 ND_TCHECK2(*cp, AHCP1_HEADER_FIX_LEN - 2);
372 cp += AHCP1_HEADER_FIX_LEN - 2;
375 ND_TCHECK2(*cp, 1);
376 ND_PRINT((ndo, "\n\tHopcount %u", *cp));
377 cp += 1;
379 ND_TCHECK2(*cp, 1);
380 ND_PRINT((ndo, ", Original Hopcount %u", *cp));
381 cp += 1;
383 ND_TCHECK2(*cp, 4);
384 ND_PRINT((ndo, ", Nonce 0x%08x", EXTRACT_32BITS(cp)));
385 cp += 4;
387 ND_TCHECK2(*cp, 8);
388 ND_PRINT((ndo, ", Source Id %s", linkaddr_string(ndo, cp, 0, 8)));
389 cp += 8;
391 ND_TCHECK2(*cp, 8);
392 ND_PRINT((ndo, ", Destination Id %s", linkaddr_string(ndo, cp, 0, 8)));
393 cp += 8;
396 ahcp1_body_print(ndo, cp, ep);
407 ND_TCHECK2(*cp, ep - cp);