Lines Matching refs:npc
74 npfa_icmp_match(npf_cache_t *npc, npf_nat_t *nt, int di)
76 const int proto = npc->npc_proto;
77 const struct ip *ip = npc->npc_ip.v4;
80 KASSERT(npf_iscached(npc, NPC_IP46));
81 KASSERT(npf_iscached(npc, NPC_LAYER4));
90 const struct tcphdr *th = npc->npc_l4.tcp;
95 const struct udphdr *uh = npc->npc_l4.udp;
123 * the nbuf nor npc is touched.
127 npfa_icmp4_inspect(const int type, npf_cache_t *npc, bool *hasqid)
129 nbuf_t *nbuf = npc->npc_nbuf;
142 return (npf_cache_all(npc) & NPC_LAYER4) != 0;
160 npfa_icmp6_inspect(const int type, npf_cache_t *npc, bool *hasqid)
162 nbuf_t *nbuf = npc->npc_nbuf;
174 return (npf_cache_all(npc) & NPC_LAYER4) != 0;
193 npfa_icmp_inspect(npf_cache_t *npc, npf_cache_t *enpc)
195 nbuf_t *nbuf = npc->npc_nbuf;
198 KASSERT(npf_iscached(npc, NPC_IP46));
199 KASSERT(npf_iscached(npc, NPC_ICMP));
203 if (!nbuf_advance(nbuf, npc->npc_hlen, 0)) {
207 enpc->npc_ctx = npc->npc_ctx;
214 if (npf_iscached(npc, NPC_IP4) &&
215 npc->npc_proto == IPPROTO_ICMP) {
216 const struct icmp *ic = npc->npc_l4.icmp;
218 } else if (npf_iscached(npc, NPC_IP6) &&
219 npc->npc_proto == IPPROTO_ICMPV6) {
220 const struct icmp6_hdr *ic6 = npc->npc_l4.icmp6;
231 npc->npc_info |= NPC_ICMP_ID;
238 npfa_icmp_conn(npf_cache_t *npc, int di)
245 if (!npf_iscached(npc, NPC_ICMP))
247 if (!npfa_icmp_inspect(npc, &enpc))
252 * modified, so no need to recache npc.
254 if (npf_iscached(npc, NPC_ICMP_ID)) {
255 KASSERT(!nbuf_flag_p(npc->npc_nbuf, NBUF_DATAREF_RESET));
308 * Recache npc. The nbuf may have been updated as a result of
311 npf_recache(npc);
320 npfa_icmp_nat(npf_cache_t *npc, npf_nat_t *nt, npf_flow_t flow)
327 if (flow == NPF_FLOW_FORW || !npf_iscached(npc, NPC_ICMP))
333 ic = npc->npc_l4.icmp;
336 if (!npfa_icmp_inspect(npc, &enpc))
341 * modified, so no need to recache npc.
343 if (npf_iscached(npc, NPC_ICMP_ID)) {
344 KASSERT(!nbuf_flag_p(npc->npc_nbuf, NBUF_DATAREF_RESET));
436 npf_recache(npc);
437 KASSERT(npf_iscached(npc, NPC_ICMP));
438 ic = npc->npc_l4.icmp;
444 * Recache npc. The nbuf may have been updated as a result of
447 npf_recache(npc);