• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /freebsd-13-stable/contrib/ipfilter/tools/

Lines Matching refs:nat

46 static	ipnat_t		*nat = NULL;
131 while ((nat = nattop) != NULL) {
132 if (nat->in_v[0] == 0)
133 nat->in_v[0] = 4;
134 if (nat->in_v[1] == 0)
135 nat->in_v[1] = nat->in_v[0];
136 nattop = nat->in_next;
137 err = (*nataddfunc)(natfd, natioctlfunc, nat);
138 free(nat);
175 no: IPNY_NO { nat->in_flags |= IPN_NO; }
184 if (nat->in_v[0] == 0 && $5.v != 0)
185 nat->in_v[0] = $5.v;
186 else if (nat->in_v[0] == 0 && $3.v != 0)
187 nat->in_v[0] = $3.v;
188 if (nat->in_v[1] == 0 && $5.v != 0)
189 nat->in_v[1] = $5.v;
190 else if (nat->in_v[1] == 0 && $3.v != 0)
191 nat->in_v[1] = $3.v;
192 nat->in_osrcatype = $3.t;
193 bcopy(&$3.a, &nat->in_osrc.na_addr[0],
195 bcopy(&$3.m, &nat->in_osrc.na_addr[1],
197 nat->in_nsrcatype = $5.t;
198 nat->in_nsrcafunc = $5.u;
199 bcopy(&$5.a, &nat->in_nsrc.na_addr[0],
201 bcopy(&$5.m, &nat->in_nsrc.na_addr[1],
209 if (nat->in_v[1] == 0 && $5.v != 0)
210 nat->in_v[1] = $5.v;
211 else if (nat->in_v[0] == 0 && $3.v != 0)
212 nat->in_v[0] = $3.v;
213 if (nat->in_v[0] == 0 && $5.v != 0)
214 nat->in_v[0] = $5.v;
215 else if (nat->in_v[1] == 0 && $3.v != 0)
216 nat->in_v[1] = $3.v;
217 nat->in_osrcatype = $3.t;
218 bcopy(&$3.a, &nat->in_osrc.na_addr[0],
220 bcopy(&$3.m, &nat->in_osrc.na_addr[1],
222 nat->in_nsrcatype = $5.t;
223 nat->in_nsrcafunc = $5.u;
224 bcopy(&$5.a, &nat->in_nsrc.na_addr[0],
226 bcopy(&$5.m, &nat->in_nsrc.na_addr[1],
232 { if (nat->in_v[0] == 0)
233 nat->in_v[0] = $4.v;
234 nat->in_osrcatype = $4.t;
235 bcopy(&$4.a, &nat->in_osrc.na_addr[0],
237 bcopy(&$4.m, &nat->in_osrc.na_addr[1],
245 if (nat->in_v[0] == 0 && $5.v != 0)
246 nat->in_v[0] = $5.v;
247 else if (nat->in_v[0] == 0 && $3 != 0)
248 nat->in_v[0] = ftov($3);
249 if (nat->in_v[1] == 0 && $5.v != 0)
250 nat->in_v[1] = $5.v;
251 else if (nat->in_v[1] == 0 && $3 != 0)
252 nat->in_v[1] = ftov($3);
253 nat->in_nsrcatype = $5.t;
254 nat->in_nsrcafunc = $5.u;
255 bcopy(&$5.a, &nat->in_nsrc.na_addr[0],
257 bcopy(&$5.m, &nat->in_nsrc.na_addr[1],
263 { nat->in_v[0] = ftov($4);
269 if (nat->in_v[0] == 0 && $5.v != 0)
270 nat->in_v[0] = $5.v;
271 else if (nat->in_v[0] == 0 && $3 != 0)
272 nat->in_v[0] = ftov($3);
273 if (nat->in_v[1] == 0 && $5.v != 0)
274 nat->in_v[1] = $5.v;
275 else if (nat->in_v[1] == 0 && $3 != 0)
276 nat->in_v[1] = ftov($3);
277 nat->in_nsrcatype = $5.t;
278 nat->in_nsrcafunc = $5.u;
279 bcopy(&$5.a, &nat->in_nsrc.na_addr[0],
281 bcopy(&$5.m, &nat->in_nsrc.na_addr[1],
292 if (nat->in_v[0] == 0 && $5.v != 0)
293 nat->in_v[0] = $5.v;
294 else if (nat->in_v[0] == 0 && $3.v != 0)
295 nat->in_v[0] = $3.v;
296 if (nat->in_v[1] == 0 && $5.v != 0)
297 nat->in_v[1] = $5.v;
298 else if (nat->in_v[1] == 0 && $3.v != 0)
299 nat->in_v[1] = $3.v;
300 nat->in_osrcatype = $3.t;
301 bcopy(&$3.a, &nat->in_osrc.na_addr[0],
303 bcopy(&$3.m, &nat->in_osrc.na_addr[1],
305 nat->in_nsrcatype = $5.t;
306 nat->in_nsrcafunc = $5.u;
307 bcopy(&$5.a, &nat->in_nsrc.na_addr[0],
309 bcopy(&$5.m, &nat->in_nsrc.na_addr[1],
315 { if (nat->in_v[0] == 0)
316 nat->in_v[0] = $5.v;
317 if (nat->in_v[1] == 0)
318 nat->in_v[1] = $5.v;
319 nat->in_osrcatype = $5.t;
320 bcopy(&$5.a, &nat->in_osrc.na_addr[0],
322 bcopy(&$5.m, &nat->in_osrc.na_addr[1],
332 if (nat->in_v[0] == 0) {
334 nat->in_v[0] = ftov($3.f);
336 nat->in_v[0] = ftov($6);
338 nat->in_odstatype = $3.t;
339 bcopy(&$3.a, &nat->in_odst.na_addr[0],
341 bcopy(&$3.m, &nat->in_odst.na_addr[1],
347 { if (nat->in_v[0] == 0)
348 nat->in_v[0] = ftov($4.f);
349 nat->in_odstatype = $4.t;
350 bcopy(&$4.a, &nat->in_odst.na_addr[0],
352 bcopy(&$4.m, &nat->in_odst.na_addr[1],
360 if (nat->in_v[0] == 0) {
362 nat->in_v[0] = ftov($3);
364 nat->in_v[0] = ftov($5);
369 { nat->in_v[0] = ftov($4);
377 { if (nat->in_v[0] == 0)
378 nat->in_v[0] = ftov($4);
379 if (nat->in_redir & NAT_MAP)
383 nat->in_redir |= NAT_REWRITE;
388 { if (nat->in_v[0] == 0)
389 nat->in_v[0] = ftov($4);
390 if (nat->in_redir & NAT_MAP) {
392 nat->in_pr[0] = IPPROTO_UDP;
395 nat->in_pr[1] = IPPROTO_UDP;
397 nat->in_flags &= ~IPN_TCP;
429 inout: IPNY_IN { nat->in_redir = NAT_REDIRECT; }
430 | IPNY_OUT { nat->in_redir = NAT_MAP; }
438 { nat->in_nsrc.na_addr[0] = $2.a;
439 nat->in_nsrc.na_addr[1] = $2.m;
440 nat->in_nsrc.na_atype = $2.t;
442 nat->in_nsrc.na_type = $2.u;
443 nat->in_nsrc.na_subtype = $2.s;
444 nat->in_nsrc.na_num = $2.n;
446 nat->in_nsports[0] = $3.p1;
447 nat->in_nsports[1] = $3.p2;
448 nat->in_ndst.na_addr[0] = $5.a;
449 nat->in_ndst.na_addr[1] = $5.m;
450 nat->in_ndst.na_atype = $5.t;
452 nat->in_ndst.na_type = $5.u;
453 nat->in_ndst.na_subtype = $5.s;
454 nat->in_ndst.na_num = $5.n;
456 nat->in_ndports[0] = $6.p1;
457 nat->in_ndports[1] = $6.p2;
462 { nat->in_nsrc.na_addr[0] = $2.a;
465 nat->in_nsrc.na_addr[1] = $2.m;
466 nat->in_nsports[0] = $4;
467 nat->in_nsports[1] = $4;
469 nat->in_ndst.na_addr[0] = $6.a;
470 nat->in_ndst.na_addr[1] = $6.m;
473 nat->in_ndports[0] = $8;
474 nat->in_ndports[1] = $8;
476 nat->in_redir |= NAT_DIVERTUDP;
493 nat->in_flags |= IPN_FIXEDSPORT;
504 nat->in_flags |= IPN_FIXEDDPORT;
512 | ',' { if (!(nat->in_flags & IPN_TCPUDP))
522 pos = addname(&nat, $4);
523 nat->in_plabel = pos;
524 if (nat->in_dcmp == 0) {
525 nat->in_odport = $3;
526 } else if ($3 != nat->in_odport) {
529 nat->in_ndport = $3;
535 pos = addname(&nat, $4);
536 nat->in_plabel = pos;
540 nat->in_odport = ntohs(pnum);
541 nat->in_ndport = ntohs(pnum);
548 pos = addname(&nat, $4);
549 nat->in_plabel = pos;
550 if (nat->in_dcmp == 0) {
551 nat->in_odport = $3;
552 } else if ($3 != nat->in_odport) {
555 nat->in_ndport = $3;
557 nat->in_pconfig = addname(&nat, $8);
563 pos = addname(&nat, $4);
564 nat->in_plabel = pos;
568 nat->in_odport = ntohs(pnum);
569 nat->in_ndport = ntohs(pnum);
571 pos = addname(&nat, $8);
572 nat->in_pconfig = pos;
579 | proto { if (nat->in_pr[0] != 0 ||
580 nat->in_pr[1] != 0 ||
581 nat->in_flags & IPN_TCPUDP)
585 | IPNY_TCPUDP { if (nat->in_pr[0] != 0 ||
586 nat->in_pr[1] != 0 ||
587 nat->in_flags & IPN_TCPUDP)
589 nat->in_flags |= IPN_TCPUDP;
590 nat->in_pr[0] = 0;
591 nat->in_pr[1] = 0;
593 | IPNY_TCP '/' IPNY_UDP { if (nat->in_pr[0] != 0 ||
594 nat->in_pr[1] != 0 ||
595 nat->in_flags & IPN_TCPUDP)
597 nat->in_flags |= IPN_TCPUDP;
598 nat->in_pr[0] = 0;
599 nat->in_pr[1] = 0;
616 nat->in_flags |= IPN_SIPRANGE;
628 nat->in_flags |= IPN_SIPRANGE;
635 { nat->in_flags |= IPN_SPLIT;
640 nat->in_ndstip6 = $1.a;
641 nat->in_ndstmsk6 = $4.a;
642 nat->in_ndstatype = FRI_SPLIT;
646 nat->in_ndstip6 = $1.a;
647 nat->in_ndstmsk6 = $1.m;
648 nat->in_ndst.na_atype = $1.t;
677 nat->in_flags |= IPN_DIPRANGE;
689 nat->in_flags |= IPN_DIPRANGE;
704 $$.n = addname(&nat, $3);
730 dport: | port portpair { nat->in_odport = $2.p1;
732 nat->in_dtop = $2.p1;
734 nat->in_dtop = $2.p2;
738 nport: | port portpair { nat->in_dpmin = $2.p1;
739 nat->in_dpnext = $2.p1;
740 nat->in_dpmax = $2.p2;
741 nat->in_ndport = $2.p1;
742 if (nat->in_dtop == 0)
743 nat->in_dtop = $2.p2;
745 | port '=' portspec { nat->in_dpmin = $3;
746 nat->in_dpnext = $3;
747 nat->in_ndport = $3;
748 if (nat->in_dtop == 0)
749 nat->in_dtop = nat->in_odport;
750 nat->in_flags |= IPN_FIXEDDPORT;
754 ports: | IPNY_PORTS YY_NUMBER { nat->in_spmin = $2; }
755 | IPNY_PORTS IPNY_AUTO { nat->in_flags |= IPN_AUTOPORTMAP; }
758 mapit: IPNY_MAP { nat->in_redir = NAT_MAP; }
759 | IPNY_BIMAP { nat->in_redir = NAT_BIMAP; }
762 rdrit: IPNY_RDR { nat->in_redir = NAT_REDIRECT; }
766 IPNY_MAPBLOCK { nat->in_redir = NAT_MAPBLK; }
779 nat->in_flags |= IPN_NOTDST;
786 nat->in_flags |= IPN_NOTDST;
801 nat->in_flags |= IPN_NOTSRC;
808 nat->in_flags |= IPN_NOTSRC;
813 from: IPNY_FROM { nat->in_flags |= IPN_FILTER;
826 ifname: YY_STR { setifname(&nat, 0, $1);
831 family: | IPNY_INET { nat->in_v[0] = 4; nat->in_v[1] = 4; }
832 | IPNY_INET6 { nat->in_v[0] = 6; nat->in_v[1] = 6; }
836 YY_STR { setifname(&nat, 1, $1);
843 { nat->in_spmin = $3.p1;
844 nat->in_spmax = $3.p2;
847 { nat->in_spmin = $2.p1;
848 nat->in_spmax = $2.p2;
851 { nat->in_flags |= IPN_AUTOPORTMAP;
852 nat->in_spmin = 1024;
853 nat->in_spmax = 65535;
866 nat->in_pr[0] = IPPROTO_ICMPV6;
867 nat->in_pr[1] = IPPROTO_ICMPV6;
869 nat->in_pr[0] = IPPROTO_ICMP;
870 nat->in_pr[1] = IPPROTO_ICMP;
872 nat->in_flags = IPN_ICMPQUERY;
873 nat->in_spmin = $3.p1;
874 nat->in_spmax = $3.p2;
880 | saddr port portstuff { nat->in_osport = $3.p1;
881 nat->in_stop = $3.p2;
882 nat->in_scmp = $3.pc;
887 saddr: addr { nat->in_osrcatype = $1.t;
889 &nat->in_osrc.na_addr[0],
892 &nat->in_osrc.na_addr[1],
900 | daddr port portstuff { nat->in_odport = $3.p1;
901 nat->in_dtop = $3.p2;
902 nat->in_dcmp = $3.pc;
907 daddr: addr { nat->in_odstatype = $1.t;
909 &nat->in_odst.na_addr[0],
912 &nat->in_odst.na_addr[1],
1007 $$.a.iplookupname = addname(&nat,$3);
1019 $$.a.iplookupname = addname(&nat,$3);
1032 pool: IPNY_POOL { if (!(nat->in_flags & IPN_FILTER)) {
1040 hash: IPNY_HASH { if (!(nat->in_flags & IPN_FILTER)) {
1061 nattag: | IPNY_TAG YY_STR { strncpy(nat->in_tag.ipt_tag, $2,
1062 sizeof(nat->in_tag.ipt_tag));
1064 rr: | IPNY_ROUNDROBIN { nat->in_flags |= IPN_ROUNDR; }
1067 frag: | IPNY_FRAG { nat->in_flags |= IPN_FRAG; }
1070 age: | IPNY_AGE YY_NUMBER { nat->in_age[0] = $2;
1071 nat->in_age[1] = $2; }
1072 | IPNY_AGE YY_NUMBER '/' YY_NUMBER { nat->in_age[0] = $2;
1073 nat->in_age[1] = $4; }
1076 sticky: | IPNY_STICKY { if (!(nat->in_flags & IPN_ROUNDR) &&
1077 !(nat->in_flags & IPN_SPLIT)) {
1081 nat->in_flags |= IPN_STICKY;
1086 | IPNY_MSSCLAMP YY_NUMBER { nat->in_mssclamp = $2; }
1091 | IPNY_TCPUDP { nat->in_flags |= IPN_TCPUDP;
1092 nat->in_pr[0] = 0;
1093 nat->in_pr[1] = 0;
1095 | IPNY_TCP '/' IPNY_UDP { nat->in_flags |= IPN_TCPUDP;
1096 nat->in_pr[0] = 0;
1097 nat->in_pr[1] = 0;
1102 | IPNY_SEQUENTIAL { nat->in_flags |= IPN_SEQUENTIAL; }
1106 | IPNY_PURGE { nat->in_flags |= IPN_PURGE; }
1112 pos = addname(&nat, $2);
1113 nat->in_plabel = pos;
1114 nat->in_odport = nat->in_dpnext;
1115 nat->in_dtop = nat->in_odport;
1118 | proxy { if (nat->in_plabel != -1) {
1119 nat->in_ndport = nat->in_odport;
1120 nat->in_dpmin = nat->in_odport;
1121 nat->in_dpmax = nat->in_dpmin;
1122 nat->in_dtop = nat->in_dpmin;
1123 nat->in_dpnext = nat->in_dpmin;
1129 | IPNY_PURGE { nat->in_flags |= IPN_PURGE; }
1158 if (nat->in_v[0] == 6)
1384 if (nat == NULL) {
1385 nattop = nat = n;
1388 nat->in_next = n;
1389 n->in_pnext = &nat->in_next;
1390 nat = n;
1408 nat->in_pr[0] = p;
1409 nat->in_pr[1] = p;
1414 nat->in_flags |= IPN_TCP;
1415 nat->in_flags &= ~IPN_UDP;
1418 nat->in_flags |= IPN_UDP;
1419 nat->in_flags &= ~IPN_TCP;
1425 nat->in_flags &= ~IPN_TCPUDP;
1426 if (!(nat->in_flags & IPN_ICMPQUERY) &&
1427 !(nat->in_redir & NAT_DIVERTUDP)) {
1428 nat->in_dcmp = 0;
1429 nat->in_scmp = 0;
1430 nat->in_dpmin = 0;
1431 nat->in_dpmax = 0;
1432 nat->in_dpnext = 0;
1433 nat->in_spmin = 0;
1434 nat->in_spmax = 0;
1435 nat->in_spnext = 0;
1439 if ((nat->in_redir & NAT_MAPBLK) == 0) {
1440 nat->in_flags &= ~IPN_TCPUDP;
1441 nat->in_dcmp = 0;
1442 nat->in_scmp = 0;
1443 nat->in_dpmin = 0;
1444 nat->in_dpmax = 0;
1445 nat->in_dpnext = 0;
1446 nat->in_spmin = 0;
1447 nat->in_spmax = 0;
1448 nat->in_spnext = 0;
1453 if ((nat->in_flags & (IPN_TCP|IPN_UDP)) == 0) {
1454 nat->in_stop = 0;
1455 nat->in_dtop = 0;
1456 nat->in_osport = 0;
1457 nat->in_odport = 0;
1458 nat->in_stop = 0;
1459 nat->in_osport = 0;
1460 nat->in_dtop = 0;
1461 nat->in_odport = 0;
1463 if ((nat->in_flags & (IPN_TCPUDP|IPN_FIXEDDPORT)) == IPN_FIXEDDPORT)
1464 nat->in_flags &= ~IPN_FIXEDDPORT;
1510 sprintf(msg, "%d:ioctl(zero nat rule)",
1530 sprintf(msg, "%d:ioctl(delete nat rule)",
1540 sprintf(msg, "%d:ioctl(add/insert nat rule)",
1557 if (nat->in_ifnames[1] == -1)
1558 nat->in_ifnames[1] = nat->in_ifnames[0];
1560 if ((suggest_port == 1) && (nat->in_flags & IPN_TCPUDP) == 0)
1561 nat->in_flags |= IPN_TCPUDP;
1563 if ((nat->in_flags & IPN_TCPUDP) == 0)
1564 setnatproto(nat->in_pr[1]);
1566 if (((nat->in_redir & NAT_MAPBLK) != 0) ||
1567 ((nat->in_flags & IPN_AUTOPORTMAP) != 0))
1568 nat_setgroupmap(nat);
1575 if ((suggest_port == 1) && (nat->in_flags & IPN_TCPUDP) == 0)
1576 nat->in_flags |= IPN_TCPUDP;
1578 if ((nat->in_pr[0] == 0) && ((nat->in_flags & IPN_TCPUDP) == 0) &&
1579 (nat->in_dpmin != 0 || nat->in_dpmax != 0 || nat->in_dpnext != 0))
1582 if (nat->in_ifnames[1] == -1)
1583 nat->in_ifnames[1] = nat->in_ifnames[0];