Lines Matching refs:nk
434 struct pf_state_key *nk; \
436 nk = (_s)->key[PF_SK_STACK]; \
438 nk = (_s)->key[PF_SK_WIRE]; \
439 pf_packet_rework_nat(_pd, _off, nk); \
621 pf_packet_rework_nat(struct pf_pdesc *pd, int off, struct pf_state_key *nk)
628 if (PF_ANEQ(pd->src, &nk->addr[pd->sidx], pd->af))
630 &nk->addr[pd->sidx], nk->port[pd->sidx]);
631 if (PF_ANEQ(pd->dst, &nk->addr[pd->didx], pd->af))
633 &nk->addr[pd->didx], nk->port[pd->didx]);
640 if (PF_ANEQ(pd->src, &nk->addr[pd->sidx], pd->af))
642 &nk->addr[pd->sidx], nk->port[pd->sidx]);
643 if (PF_ANEQ(pd->dst, &nk->addr[pd->didx], pd->af))
645 &nk->addr[pd->didx], nk->port[pd->didx]);
652 if (PF_ANEQ(pd->src, &nk->addr[pd->sidx], pd->af)) {
654 &nk->addr[pd->sidx], nk->port[pd->sidx]);
656 if (PF_ANEQ(pd->dst, &nk->addr[pd->didx], pd->af)) {
658 &nk->addr[pd->didx], nk->port[pd->didx]);
666 if (nk->port[pd->sidx] != ih->icmp_id) {
669 nk->port[pd->sidx], 0);
670 ih->icmp_id = nk->port[pd->sidx];
678 if (PF_ANEQ(pd->src, &nk->addr[pd->sidx], pd->af)) {
682 pd->ip_sum, nk->addr[pd->sidx].v4.s_addr,
686 pf_addrcpy(pd->src, &nk->addr[pd->sidx],
693 if (PF_ANEQ(pd->dst, &nk->addr[pd->didx], pd->af)) {
697 pd->ip_sum, nk->addr[pd->didx].v4.s_addr,
701 pf_addrcpy(pd->dst, &nk->addr[pd->didx],
1718 struct pf_state_key **sk, struct pf_state_key **nk)
1736 *nk = pf_state_key_clone(*sk);
1737 if (*nk == NULL) {
1747 (*nk)->af = pd->naf;
1753 bzero(&(*nk)->addr[0], sizeof((*nk)->addr[0]));
1754 bzero(&(*nk)->addr[1], sizeof((*nk)->addr[1]));
1756 pf_addrcpy(&(*nk)->addr[pd->didx], &pd->nsaddr,
1758 pf_addrcpy(&(*nk)->addr[pd->sidx], &pd->ndaddr,
1760 (*nk)->port[pd->didx] = pd->nsport;
1761 (*nk)->port[pd->sidx] = pd->ndport;
1763 pf_addrcpy(&(*nk)->addr[pd->sidx], &pd->nsaddr,
1765 pf_addrcpy(&(*nk)->addr[pd->didx], &pd->ndaddr,
1767 (*nk)->port[pd->sidx] = pd->nsport;
1768 (*nk)->port[pd->didx] = pd->ndport;
1773 (*nk)->proto = IPPROTO_ICMPV6;
1776 (*nk)->proto = IPPROTO_ICMP;
1779 (*nk)->proto = pd->proto;
5853 KASSERT(ctx.nk != NULL, ("%s: null nk", __func__));
5944 ctx.sk = ctx.nk = NULL;
5965 if (ctx.nk == NULL)
5966 ctx.nk = (*sm)->key[pd->dir == PF_IN ? PF_SK_WIRE : PF_SK_STACK];
5985 if (ctx.rewrite && ctx.sk->af != ctx.nk->af)
5995 uma_zfree(V_pf_state_key_z, ctx.nk);
5996 ctx.sk = ctx.nk = NULL;
6027 uma_zfree(V_pf_state_key_z, ctx.nk);
6088 ctx->nk ? &(ctx->nk->addr[1]) : &(pd->nsaddr), NULL,
6205 * sk/nk could already been setup by pf_get_translation().
6207 if (ctx->sk == NULL && ctx->nk == NULL) {
6211 &ctx->sk, &ctx->nk)) {
6215 KASSERT((ctx->sk != NULL && ctx->nk != NULL), ("%s: nr %p sk %p, nk %p",
6216 __func__, ctx->nr, ctx->sk, ctx->nk));
6218 /* Swap sk/nk for PF_OUT. */
6220 (pd->dir == PF_IN) ? ctx->sk : ctx->nk,
6221 (pd->dir == PF_IN) ? ctx->nk : ctx->sk, s)) {
6226 ctx->sk = ctx->nk = NULL;
6272 uma_zfree(V_pf_state_key_z, ctx->nk);
6387 struct pf_state_key *nk = ctx->nk;
6392 KASSERT(ctx->nk != NULL, ("%s: null nk", __func__));
6396 if (PF_ANEQ(&pd->nsaddr, &nk->addr[pd->sidx], pd->af) ||
6397 nk->port[pd->sidx] != pd->nsport) {
6399 &nk->addr[pd->sidx], nk->port[pd->sidx]);
6405 if (PF_ANEQ(&pd->ndaddr, &nk->addr[pd->didx], pd->af) ||
6406 nk->port[pd->didx] != pd->ndport) {
6408 &nk->addr[pd->didx], nk->port[pd->didx]);
6416 if (PF_ANEQ(&pd->nsaddr, &nk->addr[pd->sidx], pd->af) ||
6417 nk->port[pd->sidx] != pd->nsport) {
6420 &nk->addr[pd->sidx],
6421 nk->port[pd->sidx]);
6427 if (PF_ANEQ(&pd->ndaddr, &nk->addr[pd->didx], pd->af) ||
6428 nk->port[pd->didx] != pd->ndport) {
6431 &nk->addr[pd->didx],
6432 nk->port[pd->didx]);
6440 if (PF_ANEQ(&pd->nsaddr, &nk->addr[pd->sidx], pd->af) ||
6441 nk->port[pd->sidx] != pd->nsport) {
6444 &nk->addr[pd->sidx],
6445 nk->port[pd->sidx]);
6450 if (PF_ANEQ(&pd->ndaddr, &nk->addr[pd->didx], pd->af) ||
6451 nk->port[pd->didx] != pd->ndport) {
6454 &nk->addr[pd->didx],
6455 nk->port[pd->didx]);
6464 if (PF_ANEQ(&pd->nsaddr, &nk->addr[pd->sidx], AF_INET)) {
6466 nk->addr[pd->sidx].v4.s_addr, 0);
6470 if (PF_ANEQ(&pd->ndaddr, &nk->addr[pd->didx], AF_INET)) {
6472 nk->addr[pd->didx].v4.s_addr, 0);
6477 nk->port[pd->sidx] != pd->hdr.icmp.icmp_id) {
6480 nk->port[pd->sidx], 0);
6481 pd->hdr.icmp.icmp_id = nk->port[pd->sidx];
6489 if (PF_ANEQ(&pd->nsaddr, &nk->addr[pd->sidx], AF_INET6)) {
6491 &nk->addr[pd->sidx], 0);
6495 if (PF_ANEQ(&pd->ndaddr, &nk->addr[pd->didx], AF_INET6)) {
6497 &nk->addr[pd->didx], 0);
6508 &nk->addr[pd->sidx], AF_INET)) {
6511 nk->addr[pd->sidx].v4.s_addr, 0);
6516 &nk->addr[pd->didx], AF_INET)) {
6519 nk->addr[pd->didx].v4.s_addr, 0);
6527 &nk->addr[pd->sidx], AF_INET6)) {
6528 pf_addrcpy(&pd->nsaddr, &nk->addr[pd->sidx],
6530 pf_addrcpy(pd->src, &nk->addr[pd->sidx], pd->af);
6534 &nk->addr[pd->didx], AF_INET6)) {
6535 pf_addrcpy(&pd->ndaddr, &nk->addr[pd->didx],
6537 pf_addrcpy(pd->dst, &nk->addr[pd->didx],
7230 struct pf_state_key *nk;
7234 nk = (*state)->key[pd->sidx];
7236 nk = (*state)->key[pd->didx];
7238 afto = pd->af != nk->af;
7249 pf_addrcpy(&pd->nsaddr, &nk->addr[sidx], nk->af);
7250 pf_addrcpy(&pd->ndaddr, &nk->addr[didx], nk->af);
7251 pd->naf = nk->af;
7255 if (afto || PF_ANEQ(pd->src, &nk->addr[sidx], pd->af) ||
7256 nk->port[sidx] != pd->osport)
7258 &nk->addr[sidx], nk->port[sidx]);
7260 if (afto || PF_ANEQ(pd->dst, &nk->addr[didx], pd->af) ||
7261 nk->port[didx] != pd->odport)
7263 &nk->addr[didx], nk->port[didx]);
7857 struct pf_state_key *nk;
7861 nk = (*state)->key[pd->sidx];
7863 nk = (*state)->key[pd->didx];
7865 afto = pd->af != nk->af;
7888 PF_ANEQ(pd->src, &nk->addr[sidx], AF_INET))
7891 nk->addr[sidx].v4.s_addr,
7895 &nk->addr[didx], AF_INET))
7898 nk->addr[didx].v4.s_addr, 0);
7900 if (nk->port[iidx] !=
7905 nk->port[iidx], 0);
7907 nk->port[iidx];
7925 PF_ANEQ(pd->src, &nk->addr[sidx], AF_INET6))
7928 &nk->addr[sidx], 0);
7931 &nk->addr[didx], AF_INET6))
7934 &nk->addr[didx], 0);
7936 if (nk->port[iidx] != pd->hdr.icmp6.icmp6_id)
7938 nk->port[iidx];
7946 pf_addrcpy(&pd->nsaddr, &nk->addr[sidx],
7947 nk->af);
7948 pf_addrcpy(&pd->ndaddr, &nk->addr[didx],
7949 nk->af);
7950 pd->naf = nk->af;
8153 struct pf_state_key *nk;
8156 nk = (*state)->key[pd->sidx];
8158 nk = (*state)->key[pd->didx];
8163 afto = pd->af != nk->af;
8174 if (pf_translate_icmp_af(nk->af,
8181 &pd2, &nk->addr[sidx],
8182 &nk->addr[didx], pd->af,
8183 nk->af))
8186 &nk->addr[pd2.sidx], nk->af);
8188 &nk->addr[pd2.didx], nk->af);
8189 if (nk->af == AF_INET) {
8203 pd->naf = pd2.naf = nk->af;
8205 &nk->addr[pd2.sidx], nk->port[sidx]);
8207 &nk->addr[pd2.didx], nk->port[didx]);
8214 &nk->addr[pd2.sidx], pd2.af) ||
8215 nk->port[pd2.sidx] != th->th_sport)
8217 daddr, &nk->addr[pd2.sidx],
8218 nk->port[pd2.sidx], NULL,
8223 &nk->addr[pd2.didx], pd2.af) ||
8224 nk->port[pd2.didx] != th->th_dport)
8226 saddr, &nk->addr[pd2.didx],
8227 nk->port[pd2.didx], NULL,
8288 struct pf_state_key *nk;
8291 nk = (*state)->key[pd->sidx];
8293 nk = (*state)->key[pd->didx];
8298 afto = pd->af != nk->af;
8309 if (pf_translate_icmp_af(nk->af,
8316 &pd2, &nk->addr[sidx],
8317 &nk->addr[didx], pd->af,
8318 nk->af))
8321 &nk->addr[pd2.sidx], nk->af);
8323 &nk->addr[pd2.didx], nk->af);
8324 if (nk->af == AF_INET) {
8338 pd->naf = pd2.naf = nk->af;
8340 &nk->addr[pd2.sidx], nk->port[sidx]);
8342 &nk->addr[pd2.didx], nk->port[didx]);
8350 &nk->addr[pd2.sidx], pd2.af) ||
8351 nk->port[pd2.sidx] != uh->uh_sport)
8353 daddr, &nk->addr[pd2.sidx],
8354 nk->port[pd2.sidx], &uh->uh_sum,
8359 &nk->addr[pd2.didx], pd2.af) ||
8360 nk->port[pd2.didx] != uh->uh_dport)
8362 saddr, &nk->addr[pd2.didx],
8363 nk->port[pd2.didx], &uh->uh_sum,
8440 struct pf_state_key *nk;
8443 nk = (*state)->key[pd->sidx];
8445 nk = (*state)->key[pd->didx];
8450 afto = pd->af != nk->af;
8461 if (pf_translate_icmp_af(nk->af,
8468 &pd2, &nk->addr[sidx],
8469 &nk->addr[didx], pd->af,
8470 nk->af))
8472 sh->src_port = nk->port[sidx];
8473 sh->dest_port = nk->port[didx];
8476 &nk->addr[pd2.sidx], nk->af);
8478 &nk->addr[pd2.didx], nk->af);
8479 if (nk->af == AF_INET) {
8493 pd->naf = nk->af;
8499 &nk->addr[pd2.sidx], pd2.af) ||
8500 nk->port[pd2.sidx] != sh->src_port)
8502 daddr, &nk->addr[pd2.sidx],
8503 nk->port[pd2.sidx], NULL,
8508 &nk->addr[pd2.didx], pd2.af) ||
8509 nk->port[pd2.didx] != sh->dest_port)
8511 saddr, &nk->addr[pd2.didx],
8512 nk->port[pd2.didx], NULL,
8575 struct pf_state_key *nk;
8578 nk = (*state)->key[pd->sidx];
8580 nk = (*state)->key[pd->didx];
8585 afto = pd->af != nk->af;
8597 if (nk->af != AF_INET6)
8599 if (pf_translate_icmp_af(nk->af,
8606 &pd2, &nk->addr[sidx],
8607 &nk->addr[didx], pd->af,
8608 nk->af))
8611 if (pf_translate_icmp_af(nk->af, iih))
8614 nk->port[iidx] != iih->icmp_id)
8615 iih->icmp_id = nk->port[iidx];
8619 &nk->addr[pd2.sidx], nk->af);
8621 &nk->addr[pd2.didx], nk->af);
8630 pd->naf = nk->af;
8636 &nk->addr[pd2.sidx], pd2.af) ||
8638 nk->port[iidx] != iih->icmp_id))
8642 daddr, &nk->addr[pd2.sidx],
8644 nk->port[iidx] : 0, NULL,
8649 &nk->addr[pd2.didx], pd2.af))
8651 &nk->addr[pd2.didx], 0, NULL,
8702 struct pf_state_key *nk;
8705 nk = (*state)->key[pd->sidx];
8707 nk = (*state)->key[pd->didx];
8712 afto = pd->af != nk->af;
8724 if (nk->af != AF_INET)
8726 if (pf_translate_icmp_af(nk->af,
8733 &pd2, &nk->addr[sidx],
8734 &nk->addr[didx], pd->af,
8735 nk->af))
8738 if (pf_translate_icmp_af(nk->af, iih))
8742 nk->port[iidx] != iih->icmp6_id)
8743 iih->icmp6_id = nk->port[iidx];
8747 &nk->addr[pd2.sidx], nk->af);
8749 &nk->addr[pd2.didx], nk->af);
8750 pd->naf = nk->af;
8756 &nk->addr[pd2.sidx], pd2.af) ||
8758 nk->port[pd2.sidx] != iih->icmp6_id))
8762 daddr, &nk->addr[pd2.sidx],
8764 ? nk->port[iidx] : 0, NULL,
8769 &nk->addr[pd2.didx], pd2.af))
8771 &nk->addr[pd2.didx], 0, NULL,
8801 struct pf_state_key *nk =
8805 &nk->addr[pd2.sidx], pd2.af))
8807 &nk->addr[pd2.sidx], 0, NULL,
8812 &nk->addr[pd2.didx], pd2.af))
8814 &nk->addr[pd2.didx], 0, NULL,