Lines Matching +full:p +full:- +full:states
28 * $OpenBSD: print-pfsync.c,v 1.38 2012/09/19 13:50:36 mikeb Exp $
46 #include <netdissect-stdinc.h>
62 register const u_char *p) in pfsync_if_print() argument
64 u_int caplen = h->caplen; in pfsync_if_print()
66 ts_print(ndo, &h->ts); in pfsync_if_print()
73 pfsync_print(ndo, (struct pfsync_header *)p, in pfsync_if_print()
74 p + sizeof(struct pfsync_header), in pfsync_if_print()
75 caplen - sizeof(struct pfsync_header)); in pfsync_if_print()
77 if (ndo->ndo_xflag) { in pfsync_if_print()
78 hex_print(ndo, "\n\t", p, caplen); in pfsync_if_print()
93 len - sizeof(struct pfsync_header)); in pfsync_ip_print()
144 plen = ntohs(hdr->len); in pfsync_print()
146 ND_PRINT("PFSYNCv%d len %d", hdr->version, plen); in pfsync_print()
148 if (hdr->version != PFSYNC_VERSION) in pfsync_print()
151 plen -= sizeof(*hdr); in pfsync_print()
159 len -= sizeof(*subh); in pfsync_print()
160 plen -= sizeof(*subh); in pfsync_print()
162 if (subh->action >= PFSYNC_ACT_MAX) { in pfsync_print()
164 subh->action); in pfsync_print()
168 count = ntohs(subh->count); in pfsync_print()
169 ND_PRINT("\n %s count %d", actions[subh->action].name, in pfsync_print()
171 alen = actions[subh->action].len; in pfsync_print()
173 if (subh->action == PFSYNC_ACT_EOF) in pfsync_print()
176 if (actions[subh->action].print == NULL) { in pfsync_print()
178 subh->action); in pfsync_print()
188 if (ndo->ndo_vflag) in pfsync_print()
189 actions[subh->action].print(ndo, bp); in pfsync_print()
192 len -= alen; in pfsync_print()
193 plen -= alen; in pfsync_print()
214 ND_PRINT("\n\tcreatorid: %08x", htonl(clr->creatorid)); in pfsync_print_clr()
215 if (clr->ifname[0] != '\0') in pfsync_print_clr()
216 ND_PRINT(" interface: %s", clr->ifname); in pfsync_print_clr()
243 (uintmax_t)be64toh(iack->id), ntohl(iack->creatorid)); in pfsync_print_ins_ack()
252 (uintmax_t)be64toh(u->id), ntohl(u->creatorid)); in pfsync_print_upd_c()
253 if (ndo->ndo_vflag > 2) { in pfsync_print_upd_c()
255 print_src_dst(ndo, &u->src, &u->dst, IPPROTO_TCP); in pfsync_print_upd_c()
265 (uintmax_t)be64toh(ur->id), ntohl(ur->creatorid)); in pfsync_print_upd_req()
274 (uintmax_t)be64toh(d->id), ntohl(d->creatorid)); in pfsync_print_del_c()
285 endtime = ntohl(b->endtime); in pfsync_print_bus()
291 switch (b->status) { in pfsync_print_bus()
304 htonl(b->creatorid), endtime, min, sec, status); in pfsync_print_bus()
313 ntohl(t->spi), (uintmax_t )be64toh(t->rpl), in pfsync_print_tdb()
314 (uintmax_t )be64toh(t->cur_bytes)); in pfsync_print_tdb()
333 print_seq(netdissect_options *ndo, const struct pfsync_state_peer *p) in print_seq() argument
335 if (p->seqdiff) in print_seq()
336 ND_PRINT("[%u + %u](+%u)", ntohl(p->seqlo), in print_seq()
337 ntohl(p->seqhi) - ntohl(p->seqlo), ntohl(p->seqdiff)); in print_seq()
339 ND_PRINT("[%u + %u]", ntohl(p->seqlo), in print_seq()
340 ntohl(p->seqhi) - ntohl(p->seqlo)); in print_seq()
349 if (src->state <= TCPS_TIME_WAIT && in print_src_dst()
350 dst->state <= TCPS_TIME_WAIT) in print_src_dst()
351 ND_PRINT(" %s:%s", tcpstates[src->state], in print_src_dst()
352 tcpstates[dst->state]); in print_src_dst()
353 else if (src->state == PF_TCPS_PROXY_SRC || in print_src_dst()
354 dst->state == PF_TCPS_PROXY_SRC) in print_src_dst()
356 else if (src->state == PF_TCPS_PROXY_DST || in print_src_dst()
357 dst->state == PF_TCPS_PROXY_DST) in print_src_dst()
361 src->state, dst->state); in print_src_dst()
362 if (ndo->ndo_vflag > 1) { in print_src_dst()
365 if (src->wscale && dst->wscale) in print_src_dst()
367 src->wscale & PF_WSCALE_MASK); in print_src_dst()
370 if (src->wscale && dst->wscale) in print_src_dst()
372 dst->wscale & PF_WSCALE_MASK); in print_src_dst()
374 } else if (proto == IPPROTO_UDP && src->state < PFUDPS_NSTATES && in print_src_dst()
375 dst->state < PFUDPS_NSTATES) { in print_src_dst()
376 const char *states[] = PFUDPS_NAMES; in print_src_dst() local
378 ND_PRINT(" %s:%s", states[src->state], states[dst->state]); in print_src_dst()
379 } else if (proto != IPPROTO_ICMP && src->state < PFOTHERS_NSTATES && in print_src_dst()
380 dst->state < PFOTHERS_NSTATES) { in print_src_dst()
382 const char *states[] = PFOTHERS_NAMES; in print_src_dst() local
384 ND_PRINT(" %s:%s", states[src->state], states[dst->state]); in print_src_dst()
386 ND_PRINT(" %u:%u", src->state, dst->state); in print_src_dst()
397 if (s->pfs_1301.direction == PF_OUT) { in print_state()
398 src = &s->pfs_1301.src; in print_state()
399 dst = &s->pfs_1301.dst; in print_state()
400 sk = &s->pfs_1301.key[PF_SK_STACK]; in print_state()
401 nk = &s->pfs_1301.key[PF_SK_WIRE]; in print_state()
402 if (s->pfs_1301.proto == IPPROTO_ICMP || s->pfs_1301.proto == IPPROTO_ICMPV6) in print_state()
403 sk->port[0] = nk->port[0]; in print_state()
405 src = &s->pfs_1301.dst; in print_state()
406 dst = &s->pfs_1301.src; in print_state()
407 sk = &s->pfs_1301.key[PF_SK_WIRE]; in print_state()
408 nk = &s->pfs_1301.key[PF_SK_STACK]; in print_state()
409 if (s->pfs_1301.proto == IPPROTO_ICMP || s->pfs_1301.proto == IPPROTO_ICMPV6) in print_state()
410 sk->port[1] = nk->port[1]; in print_state()
412 ND_PRINT("\t%s ", s->pfs_1301.ifname); in print_state()
413 ND_PRINT("proto %u ", s->pfs_1301.proto); in print_state()
415 print_host(ndo, &nk->addr[1], nk->port[1], s->pfs_1301.af, NULL); in print_state()
416 if (PF_ANEQ(&nk->addr[1], &sk->addr[1], s->pfs_1301.af) || in print_state()
417 nk->port[1] != sk->port[1]) { in print_state()
419 print_host(ndo, &sk->addr[1], sk->port[1], s->pfs_1301.af, NULL); in print_state()
422 if (s->pfs_1301.direction == PF_OUT) in print_state()
423 ND_PRINT((" -> ")); in print_state()
425 ND_PRINT((" <- ")); in print_state()
426 print_host(ndo, &nk->addr[0], nk->port[0], s->pfs_1301.af, NULL); in print_state()
427 if (PF_ANEQ(&nk->addr[0], &sk->addr[0], s->pfs_1301.af) || in print_state()
428 nk->port[0] != sk->port[0]) { in print_state()
430 print_host(ndo, &sk->addr[0], sk->port[0], s->pfs_1301.af, NULL); in print_state()
434 print_src_dst(ndo, src, dst, s->pfs_1301.proto); in print_state()
436 if (ndo->ndo_vflag > 1) { in print_state()
439 uint32_t creation = ntohl(s->pfs_1301.creation); in print_state()
440 uint32_t expire = ntohl(s->pfs_1301.expire); in print_state()
453 bcopy(s->pfs_1301.packets[0], &packets[0], sizeof(uint64_t)); in print_state()
454 bcopy(s->pfs_1301.packets[1], &packets[1], sizeof(uint64_t)); in print_state()
455 bcopy(s->pfs_1301.bytes[0], &bytes[0], sizeof(uint64_t)); in print_state()
456 bcopy(s->pfs_1301.bytes[1], &bytes[1], sizeof(uint64_t)); in print_state()
460 if (s->pfs_1301.anchor != ntohl(-1)) in print_state()
461 ND_PRINT(", anchor %u", ntohl(s->pfs_1301.anchor)); in print_state()
462 if (s->pfs_1301.rule != ntohl(-1)) in print_state()
463 ND_PRINT(", rule %u", ntohl(s->pfs_1301.rule)); in print_state()
465 if (ndo->ndo_vflag > 1) { in print_state()
468 bcopy(&s->pfs_1301.id, &id, sizeof(uint64_t)); in print_state()
470 (uintmax_t )be64toh(id), ntohl(s->pfs_1301.creatorid)); in print_state()