Symbol: nat
usr/src/cmd/cmd-inet/usr.lib/ilbd/ilb/ilb_probe.c
222
param->mode = nat;
usr/src/cmd/cmd-inet/usr.lib/ilbd/ilb/ilb_probe.c
258
case nat:
usr/src/cmd/cmd-inet/usr.lib/ilbd/ilbd_nat.c
164
ilb_nat_entry_t *nat;
usr/src/cmd/cmd-inet/usr.lib/ilbd/ilbd_nat.c
166
nat = &kcmd->entries[i];
usr/src/cmd/cmd-inet/usr.lib/ilbd/ilbd_nat.c
168
nat_ret->nat_proto = nat->proto;
usr/src/cmd/cmd-inet/usr.lib/ilbd/ilbd_nat.c
170
nat_ret->nat_in_local = nat->in_local;
usr/src/cmd/cmd-inet/usr.lib/ilbd/ilbd_nat.c
171
nat_ret->nat_in_global = nat->in_global;
usr/src/cmd/cmd-inet/usr.lib/ilbd/ilbd_nat.c
172
nat_ret->nat_out_local = nat->out_local;
usr/src/cmd/cmd-inet/usr.lib/ilbd/ilbd_nat.c
173
nat_ret->nat_out_global = nat->out_global;
usr/src/cmd/cmd-inet/usr.lib/ilbd/ilbd_nat.c
175
nat_ret->nat_in_local_port = nat->in_local_port;
usr/src/cmd/cmd-inet/usr.lib/ilbd/ilbd_nat.c
176
nat_ret->nat_in_global_port = nat->in_global_port;
usr/src/cmd/cmd-inet/usr.lib/ilbd/ilbd_nat.c
177
nat_ret->nat_out_local_port = nat->out_local_port;
usr/src/cmd/cmd-inet/usr.lib/ilbd/ilbd_nat.c
178
nat_ret->nat_out_global_port = nat->out_global_port;
usr/src/cmd/ipf/lib/getnattype.c
23
char *getnattype(nat, alive)
usr/src/cmd/ipf/lib/getnattype.c
24
nat_t *nat;
usr/src/cmd/ipf/lib/getnattype.c
32
if (!nat)
usr/src/cmd/ipf/lib/getnattype.c
35
type = nat->nat_redir;
usr/src/cmd/ipf/lib/getnattype.c
37
ipn = nat->nat_ptr;
usr/src/cmd/ipf/lib/printactivenat.c
15
void printactivenat(nat, opts, alive)
usr/src/cmd/ipf/lib/printactivenat.c
16
nat_t *nat;
usr/src/cmd/ipf/lib/printactivenat.c
20
printf("%s", getnattype(nat, alive));
usr/src/cmd/ipf/lib/printactivenat.c
22
if (nat->nat_flags & SI_CLONE)
usr/src/cmd/ipf/lib/printactivenat.c
25
printactiveaddress(nat->nat_v, " %-15s", &nat->nat_inip6,
usr/src/cmd/ipf/lib/printactivenat.c
26
nat->nat_ifnames[0]);
usr/src/cmd/ipf/lib/printactivenat.c
28
if ((nat->nat_flags & IPN_TCPUDP) != 0)
usr/src/cmd/ipf/lib/printactivenat.c
29
printf(" %-5hu", ntohs(nat->nat_inport));
usr/src/cmd/ipf/lib/printactivenat.c
32
printactiveaddress(nat->nat_v, "%-15s", &nat->nat_outip6,
usr/src/cmd/ipf/lib/printactivenat.c
33
nat->nat_ifnames[0]);
usr/src/cmd/ipf/lib/printactivenat.c
35
if ((nat->nat_flags & IPN_TCPUDP) != 0)
usr/src/cmd/ipf/lib/printactivenat.c
36
printf(" %-5hu", ntohs(nat->nat_outport));
usr/src/cmd/ipf/lib/printactivenat.c
39
printactiveaddress(nat->nat_v, "%s", &nat->nat_oip6,
usr/src/cmd/ipf/lib/printactivenat.c
40
nat->nat_ifnames[0]);
usr/src/cmd/ipf/lib/printactivenat.c
42
if ((nat->nat_flags & IPN_TCPUDP) != 0)
usr/src/cmd/ipf/lib/printactivenat.c
43
printf(" %hu", ntohs(nat->nat_oport));
usr/src/cmd/ipf/lib/printactivenat.c
48
nat->nat_age, nat->nat_use, getsumd(nat->nat_sumd[0]));
usr/src/cmd/ipf/lib/printactivenat.c
50
getsumd(nat->nat_sumd[1]), nat->nat_p,
usr/src/cmd/ipf/lib/printactivenat.c
51
nat->nat_hv[0], nat->nat_hv[1], nat->nat_flags);
usr/src/cmd/ipf/lib/printactivenat.c
52
printf("\tifp %s", getifname(nat->nat_ifps[0]));
usr/src/cmd/ipf/lib/printactivenat.c
53
printf(",%s ", getifname(nat->nat_ifps[1]));
usr/src/cmd/ipf/lib/printactivenat.c
56
(unsigned long long)nat->nat_bytes[0],
usr/src/cmd/ipf/lib/printactivenat.c
57
(unsigned long long)nat->nat_bytes[1],
usr/src/cmd/ipf/lib/printactivenat.c
58
(unsigned long long)nat->nat_pkts[0],
usr/src/cmd/ipf/lib/printactivenat.c
59
(unsigned long long)nat->nat_pkts[1]);
usr/src/cmd/ipf/lib/printactivenat.c
61
printf("bytes %lu/%lu pkts %lu/%lu", nat->nat_bytes[0],
usr/src/cmd/ipf/lib/printactivenat.c
62
nat->nat_bytes[1], nat->nat_pkts[0], nat->nat_pkts[1]);
usr/src/cmd/ipf/lib/printactivenat.c
64
printf(" ipsumd %x", nat->nat_ipsumd);
usr/src/cmd/ipf/lib/printactivenat.c
69
nat->nat_next, nat->nat_pnext, nat->nat_hm);
usr/src/cmd/ipf/lib/printactivenat.c
71
nat->nat_hnext[0], nat->nat_hnext[1],
usr/src/cmd/ipf/lib/printactivenat.c
72
nat->nat_phnext[0], nat->nat_phnext[1]);
usr/src/cmd/ipf/lib/printactivenat.c
74
nat->nat_data, nat->nat_me, nat->nat_state, nat->nat_aps);
usr/src/cmd/ipf/lib/printactivenat.c
76
nat->nat_fr, nat->nat_ptr, nat->nat_ifps[0],
usr/src/cmd/ipf/lib/printactivenat.c
77
nat->nat_ifps[1], nat->nat_sync);
usr/src/cmd/ipf/lib/printactivenat.c
79
nat->nat_tqe.tqe_pnext, nat->nat_tqe.tqe_next,
usr/src/cmd/ipf/lib/printactivenat.c
80
nat->nat_tqe.tqe_ifq, nat->nat_tqe.tqe_parent, nat);
usr/src/cmd/ipf/lib/printactivenat.c
82
nat->nat_tqe.tqe_die, nat->nat_tqe.tqe_touched,
usr/src/cmd/ipf/lib/printactivenat.c
83
nat->nat_tqe.tqe_flags, nat->nat_tqe.tqe_state[0],
usr/src/cmd/ipf/lib/printactivenat.c
84
nat->nat_tqe.tqe_state[1]);
usr/src/cmd/ipf/tools/ipfs.c
170
nat_t *nat;
usr/src/cmd/ipf/tools/ipfs.c
180
nat = &ipn.ipn_nat;
usr/src/cmd/ipf/tools/ipfs.c
181
if (nlen >= sizeof(nat->nat_ifnames[0]) ||
usr/src/cmd/ipf/tools/ipfs.c
182
olen >= sizeof(nat->nat_ifnames[0]))
usr/src/cmd/ipf/tools/ipfs.c
193
if (!strncmp(nat->nat_ifnames[0], ifs, olen + 1)) {
usr/src/cmd/ipf/tools/ipfs.c
194
strcpy(nat->nat_ifnames[0], s);
usr/src/cmd/ipf/tools/ipfs.c
197
if (!strncmp(nat->nat_ifnames[1], ifs, olen + 1)) {
usr/src/cmd/ipf/tools/ipfs.c
198
strcpy(nat->nat_ifnames[1], s);
usr/src/cmd/ipf/tools/ipfs.c
570
nat_t *nat;
usr/src/cmd/ipf/tools/ipfs.c
640
nat = &in->ipn_nat;
usr/src/cmd/ipf/tools/ipfs.c
641
if (nat->nat_fr != NULL) {
usr/src/cmd/ipf/tools/ipfs.c
643
if (in1->ipn_rule == nat->nat_fr)
usr/src/cmd/ipf/tools/ipfs.c
646
nat->nat_flags |= SI_NEWFR;
usr/src/cmd/ipf/tools/ipfs.c
648
nat->nat_fr = &in1->ipn_fr;
usr/src/cmd/ipf/tools/ipfs.c
671
nat = &in->ipn_nat;
usr/src/cmd/ipf/tools/ipfs.c
672
if (nat->nat_flags & SI_NEWFR) {
usr/src/cmd/ipf/tools/ipfs.c
686
if (nat->nat_flags & SI_NEWFR) {
usr/src/cmd/ipf/tools/ipfs.c
688
printf("Real rule addr %p\n", nat->nat_fr);
usr/src/cmd/ipf/tools/ipfs.c
691
in1->ipn_rule = nat->nat_fr;
usr/src/cmd/ipf/tools/ipftest.c
634
nat_t *nat;
usr/src/cmd/ipf/tools/ipftest.c
640
for (nat = ifs->ifs_nat_instances; nat; nat = nat->nat_next) {
usr/src/cmd/ipf/tools/ipftest.c
641
printactivenat(nat, opts, 0);
usr/src/cmd/ipf/tools/ipftest.c
642
if (nat->nat_aps)
usr/src/cmd/ipf/tools/ipftest.c
643
printaps(nat->nat_aps, opts);
usr/src/cmd/ipf/tools/ipnat.c
294
nat_t *np, nat;
usr/src/cmd/ipf/tools/ipnat.c
338
for (np = nsp->ns_instances; np; np = nat.nat_next) {
usr/src/cmd/ipf/tools/ipnat.c
339
if (kmemcpy((char *)&nat, (long)np, sizeof (nat)))
usr/src/cmd/ipf/tools/ipnat.c
341
printactivenat(&nat, opts, 0);
usr/src/cmd/ipf/tools/ipnat.c
342
if (nat.nat_aps)
usr/src/cmd/ipf/tools/ipnat.c
343
printaps(nat.nat_aps, opts);
usr/src/cmd/ipf/tools/ipnat.c
427
nat_t nat;
usr/src/cmd/ipf/tools/ipnat.c
456
iter.igi_data = &nat;
usr/src/cmd/ipf/tools/ipnat.c
461
printactivenat(&nat, opts, 1);
usr/src/cmd/ipf/tools/ipnat.c
462
if (nat.nat_aps)
usr/src/cmd/ipf/tools/ipnat.c
463
printaps(nat.nat_aps, opts);
usr/src/cmd/ipf/tools/ipnat.c
464
nsp->ns_instances = nat.nat_next;
usr/src/cmd/ipf/tools/ipnat_y.y
117
line: xx rule { while ((nat = nattop) != NULL) {
usr/src/cmd/ipf/tools/ipnat_y.y
118
if (nat->in_v == 0)
usr/src/cmd/ipf/tools/ipnat_y.y
119
nat->in_v = 4;
usr/src/cmd/ipf/tools/ipnat_y.y
120
nattop = nat->in_next;
usr/src/cmd/ipf/tools/ipnat_y.y
121
(*nataddfunc)(natfd, natioctlfunc, nat);
usr/src/cmd/ipf/tools/ipnat_y.y
122
free(nat);
usr/src/cmd/ipf/tools/ipnat_y.y
154
bcopy(&$3.a, &nat->in_in[0], sizeof($3.a));
usr/src/cmd/ipf/tools/ipnat_y.y
155
bcopy(&$3.m, &nat->in_in[1], sizeof($3.a));
usr/src/cmd/ipf/tools/ipnat_y.y
156
bcopy(&$5.a, &nat->in_out[0], sizeof($5.a));
usr/src/cmd/ipf/tools/ipnat_y.y
157
bcopy(&$5.m, &nat->in_out[1], sizeof($5.a));
usr/src/cmd/ipf/tools/ipnat_y.y
158
if (nat->in_ifnames[1][0] == '\0')
usr/src/cmd/ipf/tools/ipnat_y.y
159
strncpy(nat->in_ifnames[1],
usr/src/cmd/ipf/tools/ipnat_y.y
160
nat->in_ifnames[0],
usr/src/cmd/ipf/tools/ipnat_y.y
161
sizeof(nat->in_ifnames[0]));
usr/src/cmd/ipf/tools/ipnat_y.y
162
if ((nat->in_flags & IPN_TCPUDP) == 0)
usr/src/cmd/ipf/tools/ipnat_y.y
163
setnatproto(nat->in_p);
usr/src/cmd/ipf/tools/ipnat_y.y
164
if (((nat->in_redir & NAT_MAPBLK) != 0) ||
usr/src/cmd/ipf/tools/ipnat_y.y
165
((nat->in_flags & IPN_AUTOPORTMAP) != 0))
usr/src/cmd/ipf/tools/ipnat_y.y
166
nat_setgroupmap(nat);
usr/src/cmd/ipf/tools/ipnat_y.y
171
bcopy(&$3.a, &nat->in_in[0], sizeof($3.a));
usr/src/cmd/ipf/tools/ipnat_y.y
172
bcopy(&$3.m, &nat->in_in[1], sizeof($3.a));
usr/src/cmd/ipf/tools/ipnat_y.y
173
bcopy(&$5.a, &nat->in_out[0], sizeof($5.a));
usr/src/cmd/ipf/tools/ipnat_y.y
174
bcopy(&$5.m, &nat->in_out[1], sizeof($5.a));
usr/src/cmd/ipf/tools/ipnat_y.y
175
if (nat->in_ifnames[1][0] == '\0')
usr/src/cmd/ipf/tools/ipnat_y.y
176
strncpy(nat->in_ifnames[1],
usr/src/cmd/ipf/tools/ipnat_y.y
177
nat->in_ifnames[0],
usr/src/cmd/ipf/tools/ipnat_y.y
178
sizeof(nat->in_ifnames[0]));
usr/src/cmd/ipf/tools/ipnat_y.y
179
if ((nat->in_flags & IPN_TCPUDPICMPQ) == 0)
usr/src/cmd/ipf/tools/ipnat_y.y
180
setnatproto(nat->in_p);
usr/src/cmd/ipf/tools/ipnat_y.y
181
if (((nat->in_redir & NAT_MAPBLK) != 0) ||
usr/src/cmd/ipf/tools/ipnat_y.y
182
((nat->in_flags & IPN_AUTOPORTMAP) != 0))
usr/src/cmd/ipf/tools/ipnat_y.y
183
nat_setgroupmap(nat);
usr/src/cmd/ipf/tools/ipnat_y.y
188
bcopy(&$5.a, &nat->in_out[0], sizeof($5.a));
usr/src/cmd/ipf/tools/ipnat_y.y
189
bcopy(&$5.m, &nat->in_out[1], sizeof($5.a));
usr/src/cmd/ipf/tools/ipnat_y.y
190
if (nat->in_ifnames[1][0] == '\0')
usr/src/cmd/ipf/tools/ipnat_y.y
191
strncpy(nat->in_ifnames[1],
usr/src/cmd/ipf/tools/ipnat_y.y
192
nat->in_ifnames[0],
usr/src/cmd/ipf/tools/ipnat_y.y
193
sizeof(nat->in_ifnames[0]));
usr/src/cmd/ipf/tools/ipnat_y.y
194
if ((nat->in_flags & IPN_TCPUDP) == 0)
usr/src/cmd/ipf/tools/ipnat_y.y
195
setnatproto(nat->in_p);
usr/src/cmd/ipf/tools/ipnat_y.y
196
if (((nat->in_redir & NAT_MAPBLK) != 0) ||
usr/src/cmd/ipf/tools/ipnat_y.y
197
((nat->in_flags & IPN_AUTOPORTMAP) != 0))
usr/src/cmd/ipf/tools/ipnat_y.y
198
nat_setgroupmap(nat);
usr/src/cmd/ipf/tools/ipnat_y.y
203
bcopy(&$5.a, &nat->in_out[0], sizeof($5.a));
usr/src/cmd/ipf/tools/ipnat_y.y
204
bcopy(&$5.m, &nat->in_out[1], sizeof($5.a));
usr/src/cmd/ipf/tools/ipnat_y.y
205
if (nat->in_ifnames[1][0] == '\0')
usr/src/cmd/ipf/tools/ipnat_y.y
206
strncpy(nat->in_ifnames[1],
usr/src/cmd/ipf/tools/ipnat_y.y
207
nat->in_ifnames[0],
usr/src/cmd/ipf/tools/ipnat_y.y
208
sizeof(nat->in_ifnames[0]));
usr/src/cmd/ipf/tools/ipnat_y.y
209
if ((nat->in_flags & IPN_TCPUDPICMPQ) == 0)
usr/src/cmd/ipf/tools/ipnat_y.y
210
setnatproto(nat->in_p);
usr/src/cmd/ipf/tools/ipnat_y.y
211
if (((nat->in_redir & NAT_MAPBLK) != 0) ||
usr/src/cmd/ipf/tools/ipnat_y.y
212
((nat->in_flags & IPN_AUTOPORTMAP) != 0))
usr/src/cmd/ipf/tools/ipnat_y.y
213
nat_setgroupmap(nat);
usr/src/cmd/ipf/tools/ipnat_y.y
221
bcopy(&$3.a, &nat->in_in[0], sizeof($3.a));
usr/src/cmd/ipf/tools/ipnat_y.y
222
bcopy(&$3.m, &nat->in_in[1], sizeof($3.a));
usr/src/cmd/ipf/tools/ipnat_y.y
223
bcopy(&$5.a, &nat->in_out[0], sizeof($5.a));
usr/src/cmd/ipf/tools/ipnat_y.y
224
bcopy(&$5.m, &nat->in_out[1], sizeof($5.a));
usr/src/cmd/ipf/tools/ipnat_y.y
225
if (nat->in_ifnames[1][0] == '\0')
usr/src/cmd/ipf/tools/ipnat_y.y
226
strncpy(nat->in_ifnames[1],
usr/src/cmd/ipf/tools/ipnat_y.y
227
nat->in_ifnames[0],
usr/src/cmd/ipf/tools/ipnat_y.y
228
sizeof(nat->in_ifnames[0]));
usr/src/cmd/ipf/tools/ipnat_y.y
229
if ((nat->in_flags & IPN_TCPUDP) == 0)
usr/src/cmd/ipf/tools/ipnat_y.y
230
setnatproto(nat->in_p);
usr/src/cmd/ipf/tools/ipnat_y.y
231
if (((nat->in_redir & NAT_MAPBLK) != 0) ||
usr/src/cmd/ipf/tools/ipnat_y.y
232
((nat->in_flags & IPN_AUTOPORTMAP) != 0))
usr/src/cmd/ipf/tools/ipnat_y.y
233
nat_setgroupmap(nat);
usr/src/cmd/ipf/tools/ipnat_y.y
240
bcopy(&$3.a, &nat->in_out[0], sizeof($3.a));
usr/src/cmd/ipf/tools/ipnat_y.y
241
bcopy(&$3.m, &nat->in_out[1], sizeof($3.a));
usr/src/cmd/ipf/tools/ipnat_y.y
242
if (nat->in_ifnames[1][0] == '\0')
usr/src/cmd/ipf/tools/ipnat_y.y
243
strncpy(nat->in_ifnames[1],
usr/src/cmd/ipf/tools/ipnat_y.y
244
nat->in_ifnames[0],
usr/src/cmd/ipf/tools/ipnat_y.y
245
sizeof(nat->in_ifnames[0]));
usr/src/cmd/ipf/tools/ipnat_y.y
246
if ((nat->in_p == 0) &&
usr/src/cmd/ipf/tools/ipnat_y.y
247
((nat->in_flags & IPN_TCPUDP) == 0) &&
usr/src/cmd/ipf/tools/ipnat_y.y
248
(nat->in_pmin != 0 ||
usr/src/cmd/ipf/tools/ipnat_y.y
249
nat->in_pmax != 0 ||
usr/src/cmd/ipf/tools/ipnat_y.y
250
nat->in_pnext != 0))
usr/src/cmd/ipf/tools/ipnat_y.y
256
if ((nat->in_p == 0) &&
usr/src/cmd/ipf/tools/ipnat_y.y
257
((nat->in_flags & IPN_TCPUDP) == 0) &&
usr/src/cmd/ipf/tools/ipnat_y.y
258
(nat->in_pmin != 0 ||
usr/src/cmd/ipf/tools/ipnat_y.y
259
nat->in_pmax != 0 ||
usr/src/cmd/ipf/tools/ipnat_y.y
260
nat->in_pnext != 0))
usr/src/cmd/ipf/tools/ipnat_y.y
262
if (nat->in_ifnames[1][0] == '\0')
usr/src/cmd/ipf/tools/ipnat_y.y
263
strncpy(nat->in_ifnames[1],
usr/src/cmd/ipf/tools/ipnat_y.y
264
nat->in_ifnames[0],
usr/src/cmd/ipf/tools/ipnat_y.y
265
sizeof(nat->in_ifnames[0]));
usr/src/cmd/ipf/tools/ipnat_y.y
270
bcopy(&$3.a, &nat->in_out[0], sizeof($3.a));
usr/src/cmd/ipf/tools/ipnat_y.y
271
bcopy(&$3.m, &nat->in_out[1], sizeof($3.a));
usr/src/cmd/ipf/tools/ipnat_y.y
272
if (nat->in_ifnames[1][0] == '\0')
usr/src/cmd/ipf/tools/ipnat_y.y
273
strncpy(nat->in_ifnames[1],
usr/src/cmd/ipf/tools/ipnat_y.y
274
nat->in_ifnames[0],
usr/src/cmd/ipf/tools/ipnat_y.y
275
sizeof(nat->in_ifnames[0]));
usr/src/cmd/ipf/tools/ipnat_y.y
280
{ strncpy(nat->in_plabel, $4, sizeof(nat->in_plabel));
usr/src/cmd/ipf/tools/ipnat_y.y
281
if (nat->in_dcmp == 0) {
usr/src/cmd/ipf/tools/ipnat_y.y
282
nat->in_dport = htons($3);
usr/src/cmd/ipf/tools/ipnat_y.y
283
} else if ($3 != nat->in_dport) {
usr/src/cmd/ipf/tools/ipnat_y.y
291
strncpy(nat->in_plabel, $4, sizeof(nat->in_plabel));
usr/src/cmd/ipf/tools/ipnat_y.y
295
nat->in_dport = pnum;
usr/src/cmd/ipf/tools/ipnat_y.y
303
| proto { if (nat->in_p != 0 ||
usr/src/cmd/ipf/tools/ipnat_y.y
304
nat->in_flags & IPN_TCPUDP)
usr/src/cmd/ipf/tools/ipnat_y.y
308
| IPNY_TCPUDP { if (nat->in_p != 0 ||
usr/src/cmd/ipf/tools/ipnat_y.y
309
nat->in_flags & IPN_TCPUDP)
usr/src/cmd/ipf/tools/ipnat_y.y
311
nat->in_flags |= IPN_TCPUDP;
usr/src/cmd/ipf/tools/ipnat_y.y
312
nat->in_p = 0;
usr/src/cmd/ipf/tools/ipnat_y.y
314
| IPNY_TCP '/' IPNY_UDP { if (nat->in_p != 0 ||
usr/src/cmd/ipf/tools/ipnat_y.y
315
nat->in_flags & IPN_TCPUDP)
usr/src/cmd/ipf/tools/ipnat_y.y
317
nat->in_flags |= IPN_TCPUDP;
usr/src/cmd/ipf/tools/ipnat_y.y
318
nat->in_p = 0;
usr/src/cmd/ipf/tools/ipnat_y.y
326
$$.v = nat->in_v;
usr/src/cmd/ipf/tools/ipnat_y.y
335
nat->in_flags |= IPN_IPRANGE;
usr/src/cmd/ipf/tools/ipnat_y.y
340
hostname { bcopy(&$1.a, &nat->in_in[0],
usr/src/cmd/ipf/tools/ipnat_y.y
343
$1.v = nat->in_v;
usr/src/cmd/ipf/tools/ipnat_y.y
345
nat->in_inmsk = 0xffffffff;
usr/src/cmd/ipf/tools/ipnat_y.y
347
nat->in_in[1].i6[0] = 0xffffffff;
usr/src/cmd/ipf/tools/ipnat_y.y
348
nat->in_in[1].i6[1] = 0xffffffff;
usr/src/cmd/ipf/tools/ipnat_y.y
349
nat->in_in[1].i6[2] = 0xffffffff;
usr/src/cmd/ipf/tools/ipnat_y.y
350
nat->in_in[1].i6[3] = 0xffffffff;
usr/src/cmd/ipf/tools/ipnat_y.y
355
$1.v = nat->in_v;
usr/src/cmd/ipf/tools/ipnat_y.y
371
bcopy(&$1.a, &nat->in_in[0],
usr/src/cmd/ipf/tools/ipnat_y.y
374
(u_32_t *)&nat->in_in[1]);
usr/src/cmd/ipf/tools/ipnat_y.y
375
nat->in_in[0].i6[0] &= nat->in_in[1].i6[0];
usr/src/cmd/ipf/tools/ipnat_y.y
376
nat->in_in[0].i6[0] &= nat->in_in[1].i6[1];
usr/src/cmd/ipf/tools/ipnat_y.y
377
nat->in_in[0].i6[0] &= nat->in_in[1].i6[2];
usr/src/cmd/ipf/tools/ipnat_y.y
378
nat->in_in[0].i6[0] &= nat->in_in[1].i6[3];
usr/src/cmd/ipf/tools/ipnat_y.y
379
nat->in_v = $1.v;
usr/src/cmd/ipf/tools/ipnat_y.y
387
nat->in_flags |= IPN_SPLIT;
usr/src/cmd/ipf/tools/ipnat_y.y
388
bcopy(&$1.a, &nat->in_in[0],
usr/src/cmd/ipf/tools/ipnat_y.y
390
bcopy(&$4.a, &nat->in_in[1],
usr/src/cmd/ipf/tools/ipnat_y.y
407
dport: | IPNY_PORT portspec { nat->in_pmin = htons($2);
usr/src/cmd/ipf/tools/ipnat_y.y
408
nat->in_pmax = htons($2); }
usr/src/cmd/ipf/tools/ipnat_y.y
409
| IPNY_PORT portspec '-' portspec { nat->in_pmin = htons($2);
usr/src/cmd/ipf/tools/ipnat_y.y
410
nat->in_pmax = htons($4); }
usr/src/cmd/ipf/tools/ipnat_y.y
411
| IPNY_PORT portspec ':' portspec { nat->in_pmin = htons($2);
usr/src/cmd/ipf/tools/ipnat_y.y
412
nat->in_pmax = htons($4); }
usr/src/cmd/ipf/tools/ipnat_y.y
415
nport: IPNY_PORT portspec { nat->in_pnext = htons($2); }
usr/src/cmd/ipf/tools/ipnat_y.y
416
| IPNY_PORT '=' portspec { nat->in_pnext = htons($3);
usr/src/cmd/ipf/tools/ipnat_y.y
417
nat->in_flags |= IPN_FIXEDDPORT;
usr/src/cmd/ipf/tools/ipnat_y.y
421
ports: | IPNY_PORTS YY_NUMBER { nat->in_pmin = $2; }
usr/src/cmd/ipf/tools/ipnat_y.y
422
| IPNY_PORTS IPNY_AUTO { nat->in_flags |= IPN_AUTOPORTMAP; }
usr/src/cmd/ipf/tools/ipnat_y.y
425
mapit: IPNY_MAP { nat->in_redir = NAT_MAP; }
usr/src/cmd/ipf/tools/ipnat_y.y
426
| IPNY_BIMAP { nat->in_redir = NAT_BIMAP; }
usr/src/cmd/ipf/tools/ipnat_y.y
429
rdrit: IPNY_RDR { nat->in_redir = NAT_REDIRECT; }
usr/src/cmd/ipf/tools/ipnat_y.y
433
IPNY_MAPBLOCK { nat->in_redir = NAT_MAPBLK; }
usr/src/cmd/ipf/tools/ipnat_y.y
446
nat->in_flags |= IPN_NOTDST;
usr/src/cmd/ipf/tools/ipnat_y.y
461
nat->in_flags |= IPN_NOTSRC;
usr/src/cmd/ipf/tools/ipnat_y.y
466
from: IPNY_FROM { nat->in_flags |= IPN_FILTER;
usr/src/cmd/ipf/tools/ipnat_y.y
475
ifname: YY_STR { strncpy(nat->in_ifnames[0], $1,
usr/src/cmd/ipf/tools/ipnat_y.y
476
sizeof(nat->in_ifnames[0]));
usr/src/cmd/ipf/tools/ipnat_y.y
477
nat->in_ifnames[0][LIFNAMSIZ - 1] = '\0';
usr/src/cmd/ipf/tools/ipnat_y.y
483
YY_STR { strncpy(nat->in_ifnames[1], $1,
usr/src/cmd/ipf/tools/ipnat_y.y
484
sizeof(nat->in_ifnames[1]));
usr/src/cmd/ipf/tools/ipnat_y.y
485
nat->in_ifnames[1][LIFNAMSIZ - 1] = '\0';
usr/src/cmd/ipf/tools/ipnat_y.y
492
{ nat->in_pmin = htons($3);
usr/src/cmd/ipf/tools/ipnat_y.y
493
nat->in_pmax = htons($5);
usr/src/cmd/ipf/tools/ipnat_y.y
496
{ nat->in_flags |= IPN_AUTOPORTMAP;
usr/src/cmd/ipf/tools/ipnat_y.y
497
nat->in_pmin = htons(1024);
usr/src/cmd/ipf/tools/ipnat_y.y
498
nat->in_pmax = htons(65535);
usr/src/cmd/ipf/tools/ipnat_y.y
509
nat->in_flags = IPN_ICMPQUERY;
usr/src/cmd/ipf/tools/ipnat_y.y
510
nat->in_pmin = htons($3);
usr/src/cmd/ipf/tools/ipnat_y.y
511
nat->in_pmax = htons($5);
usr/src/cmd/ipf/tools/ipnat_y.y
516
| IPNY_SEQUENTIAL { nat->in_flags |= IPN_SEQUENTIAL; }
usr/src/cmd/ipf/tools/ipnat_y.y
521
| saddr IPNY_PORT portstuff { nat->in_sport = $3.p1;
usr/src/cmd/ipf/tools/ipnat_y.y
522
nat->in_stop = $3.p2;
usr/src/cmd/ipf/tools/ipnat_y.y
523
nat->in_scmp = $3.pc;
usr/src/cmd/ipf/tools/ipnat_y.y
528
saddr: addr { if (nat->in_redir == NAT_REDIRECT) {
usr/src/cmd/ipf/tools/ipnat_y.y
529
bcopy(&$1.a, &nat->in_src[0],
usr/src/cmd/ipf/tools/ipnat_y.y
531
bcopy(&$1.m, &nat->in_src[1],
usr/src/cmd/ipf/tools/ipnat_y.y
534
bcopy(&$1.a, &nat->in_in[0],
usr/src/cmd/ipf/tools/ipnat_y.y
536
bcopy(&$1.m, &nat->in_in[1],
usr/src/cmd/ipf/tools/ipnat_y.y
545
| daddr IPNY_PORT portstuff { nat->in_dport = $3.p1;
usr/src/cmd/ipf/tools/ipnat_y.y
546
nat->in_dtop = $3.p2;
usr/src/cmd/ipf/tools/ipnat_y.y
547
nat->in_dcmp = $3.pc;
usr/src/cmd/ipf/tools/ipnat_y.y
548
if (nat->in_redir == NAT_REDIRECT)
usr/src/cmd/ipf/tools/ipnat_y.y
549
nat->in_pmin = htons($3.p1);
usr/src/cmd/ipf/tools/ipnat_y.y
553
daddr: addr { if (nat->in_redir == NAT_REDIRECT) {
usr/src/cmd/ipf/tools/ipnat_y.y
554
bcopy(&$1.a, &nat->in_out[0],
usr/src/cmd/ipf/tools/ipnat_y.y
556
bcopy(&$1.m, &nat->in_out[1],
usr/src/cmd/ipf/tools/ipnat_y.y
559
bcopy(&$1.a, &nat->in_src[0],
usr/src/cmd/ipf/tools/ipnat_y.y
561
bcopy(&$1.m, &nat->in_src[1],
usr/src/cmd/ipf/tools/ipnat_y.y
571
$$.v = nat->in_v;
usr/src/cmd/ipf/tools/ipnat_y.y
595
nat->in_v = $1.v;
usr/src/cmd/ipf/tools/ipnat_y.y
60
static ipnat_t *nat = NULL;
usr/src/cmd/ipf/tools/ipnat_y.y
656
nattag: | IPNY_TAG YY_STR { strncpy(nat->in_tag.ipt_tag, $2,
usr/src/cmd/ipf/tools/ipnat_y.y
657
sizeof(nat->in_tag.ipt_tag));
usr/src/cmd/ipf/tools/ipnat_y.y
660
rr: | IPNY_ROUNDROBIN { nat->in_flags |= IPN_ROUNDR; }
usr/src/cmd/ipf/tools/ipnat_y.y
663
frag: | IPNY_FRAG { nat->in_flags |= IPN_FRAG; }
usr/src/cmd/ipf/tools/ipnat_y.y
666
age: | IPNY_AGE YY_NUMBER { nat->in_age[0] = $2;
usr/src/cmd/ipf/tools/ipnat_y.y
667
nat->in_age[1] = $2; }
usr/src/cmd/ipf/tools/ipnat_y.y
668
| IPNY_AGE YY_NUMBER '/' YY_NUMBER { nat->in_age[0] = $2;
usr/src/cmd/ipf/tools/ipnat_y.y
669
nat->in_age[1] = $4; }
usr/src/cmd/ipf/tools/ipnat_y.y
672
sticky: | IPNY_STICKY { if (!(nat->in_flags & IPN_ROUNDR) &&
usr/src/cmd/ipf/tools/ipnat_y.y
673
!(nat->in_flags & IPN_SPLIT)) {
usr/src/cmd/ipf/tools/ipnat_y.y
677
nat->in_flags |= IPN_STICKY;
usr/src/cmd/ipf/tools/ipnat_y.y
682
| IPNY_MSSCLAMP YY_NUMBER { nat->in_mssclamp = $2; }
usr/src/cmd/ipf/tools/ipnat_y.y
687
| IPNY_TCPUDP { nat->in_flags |= IPN_TCPUDP;
usr/src/cmd/ipf/tools/ipnat_y.y
688
nat->in_p = 0;
usr/src/cmd/ipf/tools/ipnat_y.y
690
| IPNY_TCP '/' IPNY_UDP { nat->in_flags |= IPN_TCPUDP;
usr/src/cmd/ipf/tools/ipnat_y.y
691
nat->in_p = 0;
usr/src/cmd/ipf/tools/ipnat_y.y
697
{ strncpy(nat->in_plabel, $2,
usr/src/cmd/ipf/tools/ipnat_y.y
698
sizeof(nat->in_plabel));
usr/src/cmd/ipf/tools/ipnat_y.y
699
nat->in_dport = nat->in_pnext;
usr/src/cmd/ipf/tools/ipnat_y.y
700
nat->in_dport = htons(nat->in_dport);
usr/src/cmd/ipf/tools/ipnat_y.y
703
| proxy { if (nat->in_plabel[0] != '\0') {
usr/src/cmd/ipf/tools/ipnat_y.y
704
nat->in_pmin = nat->in_dport;
usr/src/cmd/ipf/tools/ipnat_y.y
705
nat->in_pmax = nat->in_pmin;
usr/src/cmd/ipf/tools/ipnat_y.y
706
nat->in_pnext = nat->in_pmin;
usr/src/cmd/ipf/tools/ipnat_y.y
734
nat->in_v = $$.v;
usr/src/cmd/ipf/tools/ipnat_y.y
742
$$.v = nat->in_v;
usr/src/cmd/ipf/tools/ipnat_y.y
744
nat->in_v = $$.v;
usr/src/cmd/ipf/tools/ipnat_y.y
747
nat->in_v = 4;
usr/src/cmd/ipf/tools/ipnat_y.y
751
nat->in_v = 6;
usr/src/cmd/ipf/tools/ipnat_y.y
910
if (nat == NULL)
usr/src/cmd/ipf/tools/ipnat_y.y
911
nattop = nat = n;
usr/src/cmd/ipf/tools/ipnat_y.y
913
nat->in_next = n;
usr/src/cmd/ipf/tools/ipnat_y.y
914
nat = n;
usr/src/cmd/ipf/tools/ipnat_y.y
922
nat->in_p = p;
usr/src/cmd/ipf/tools/ipnat_y.y
927
nat->in_flags |= IPN_TCP;
usr/src/cmd/ipf/tools/ipnat_y.y
928
nat->in_flags &= ~IPN_UDP;
usr/src/cmd/ipf/tools/ipnat_y.y
931
nat->in_flags |= IPN_UDP;
usr/src/cmd/ipf/tools/ipnat_y.y
932
nat->in_flags &= ~IPN_TCP;
usr/src/cmd/ipf/tools/ipnat_y.y
935
nat->in_flags &= ~IPN_TCPUDP;
usr/src/cmd/ipf/tools/ipnat_y.y
936
if (!(nat->in_flags & IPN_ICMPQUERY)) {
usr/src/cmd/ipf/tools/ipnat_y.y
937
nat->in_dcmp = 0;
usr/src/cmd/ipf/tools/ipnat_y.y
938
nat->in_scmp = 0;
usr/src/cmd/ipf/tools/ipnat_y.y
939
nat->in_pmin = 0;
usr/src/cmd/ipf/tools/ipnat_y.y
940
nat->in_pmax = 0;
usr/src/cmd/ipf/tools/ipnat_y.y
941
nat->in_pnext = 0;
usr/src/cmd/ipf/tools/ipnat_y.y
945
if ((nat->in_redir & NAT_MAPBLK) == 0) {
usr/src/cmd/ipf/tools/ipnat_y.y
947
if (0 == nat->in_tuc.ftu_dport)
usr/src/cmd/ipf/tools/ipnat_y.y
948
nat->in_dcmp = 0;
usr/src/cmd/ipf/tools/ipnat_y.y
949
if (0 == nat->in_tuc.ftu_sport)
usr/src/cmd/ipf/tools/ipnat_y.y
950
nat->in_scmp = 0;
usr/src/cmd/ipf/tools/ipnat_y.y
951
nat->in_pmin = 0;
usr/src/cmd/ipf/tools/ipnat_y.y
952
nat->in_pmax = 0;
usr/src/cmd/ipf/tools/ipnat_y.y
953
nat->in_pnext = 0;
usr/src/cmd/ipf/tools/ipnat_y.y
954
nat->in_flags &= ~IPN_TCPUDP;
usr/src/cmd/ipf/tools/ipnat_y.y
959
if ((nat->in_flags & (IPN_TCPUDP|IPN_FIXEDDPORT)) == IPN_FIXEDDPORT)
usr/src/cmd/ipf/tools/ipnat_y.y
960
nat->in_flags &= ~IPN_FIXEDDPORT;
usr/src/uts/common/inet/ilb/ilb_conn.c
1038
ilb_list_nat(ilb_stack_t *ilbs, zoneid_t zoneid, ilb_nat_entry_t *nat,
usr/src/uts/common/inet/ilb/ilb_conn.c
1094
nat[j].proto = cur_connp->conn_l4;
usr/src/uts/common/inet/ilb/ilb_conn.c
1096
nat[j].in_global = cur_connp->conn_c2s_daddr;
usr/src/uts/common/inet/ilb/ilb_conn.c
1097
nat[j].in_global_port = cur_connp->conn_c2s_dport;
usr/src/uts/common/inet/ilb/ilb_conn.c
1098
nat[j].out_global = cur_connp->conn_c2s_saddr;
usr/src/uts/common/inet/ilb/ilb_conn.c
1099
nat[j].out_global_port = cur_connp->conn_c2s_sport;
usr/src/uts/common/inet/ilb/ilb_conn.c
1101
nat[j].in_local = cur_connp->conn_s2c_saddr;
usr/src/uts/common/inet/ilb/ilb_conn.c
1102
nat[j].in_local_port = cur_connp->conn_s2c_sport;
usr/src/uts/common/inet/ilb/ilb_conn.c
1103
nat[j].out_local = cur_connp->conn_s2c_daddr;
usr/src/uts/common/inet/ilb/ilb_conn.c
1104
nat[j].out_local_port = cur_connp->conn_s2c_dport;
usr/src/uts/common/inet/ilb/ilb_conn.c
1106
nat[j].create_time = TICK_TO_MSEC(cur_connp->conn_cr_time);
usr/src/uts/common/inet/ilb/ilb_conn.c
1107
nat[j].last_access_time =
usr/src/uts/common/inet/ilb/ilb_conn.c
1114
nat[j].pkt_cnt = cur_connp->conn_c2s_pkt_cnt +
usr/src/uts/common/inet/ipf/fil.c
5694
{ 0, sizeof(struct nat) }, /* nat_t */
usr/src/uts/common/inet/ipf/fil.c
7581
nat_t *nat;
usr/src/uts/common/inet/ipf/fil.c
7608
nat = (nat_t *)ent;
usr/src/uts/common/inet/ipf/fil.c
7609
if ((nat->nat_p == IPPROTO_TCP) &&
usr/src/uts/common/inet/ipf/fil.c
7610
(nat->nat_tcpstate[0] >= stateval) &&
usr/src/uts/common/inet/ipf/fil.c
7611
(nat->nat_tcpstate[1] >= stateval) &&
usr/src/uts/common/inet/ipf/fil.c
7612
(nat_delete(nat, NL_EXPIRE, ifs) == 0))
usr/src/uts/common/inet/ipf/ip_compat.c
143
struct nat *nat_next;
usr/src/uts/common/inet/ipf/ip_compat.c
144
struct nat **nat_pnext;
usr/src/uts/common/inet/ipf/ip_compat.c
145
struct nat *nat_hnext[2];
usr/src/uts/common/inet/ipf/ip_compat.c
146
struct nat **nat_phnext[2];
usr/src/uts/common/inet/ipf/ip_compat.c
149
struct nat **nat_me;
usr/src/uts/common/inet/ipf/ip_frag.c
423
int fr_nat_newfrag(fin, pass, nat)
usr/src/uts/common/inet/ipf/ip_frag.c
426
nat_t *nat;
usr/src/uts/common/inet/ipf/ip_frag.c
437
fra->ipfr_data = nat;
usr/src/uts/common/inet/ipf/ip_frag.c
438
nat->nat_data = fra;
usr/src/uts/common/inet/ipf/ip_frag.c
581
nat_t *nat;
usr/src/uts/common/inet/ipf/ip_frag.c
590
nat = ipf->ipfr_data;
usr/src/uts/common/inet/ipf/ip_frag.c
594
if ((ipf->ipfr_ttl == ifs->ifs_fr_ticks + 1) && (nat != NULL)) {
usr/src/uts/common/inet/ipf/ip_frag.c
595
nat->nat_data = NULL;
usr/src/uts/common/inet/ipf/ip_frag.c
599
nat = NULL;
usr/src/uts/common/inet/ipf/ip_frag.c
601
return nat;
usr/src/uts/common/inet/ipf/ip_frag.c
772
nat_t *nat;
usr/src/uts/common/inet/ipf/ip_frag.c
785
nat = fra->ipfr_data;
usr/src/uts/common/inet/ipf/ip_frag.c
786
if (nat != NULL) {
usr/src/uts/common/inet/ipf/ip_frag.c
787
if (nat->nat_data == fra)
usr/src/uts/common/inet/ipf/ip_frag.c
788
nat->nat_data = NULL;
usr/src/uts/common/inet/ipf/ip_frag.c
810
nat_t *nat;
usr/src/uts/common/inet/ipf/ip_frag.c
856
nat = fra->ipfr_data;
usr/src/uts/common/inet/ipf/ip_frag.c
857
if (nat != NULL) {
usr/src/uts/common/inet/ipf/ip_frag.c
858
if (nat->nat_data == fra)
usr/src/uts/common/inet/ipf/ip_frag.c
859
nat->nat_data = NULL;
usr/src/uts/common/inet/ipf/ip_nat.c
1194
nat_t *nat, *n;
usr/src/uts/common/inet/ipf/ip_nat.c
1202
nat = ng.ng_ptr;
usr/src/uts/common/inet/ipf/ip_nat.c
1203
if (!nat) {
usr/src/uts/common/inet/ipf/ip_nat.c
1204
nat = ifs->ifs_nat_instances;
usr/src/uts/common/inet/ipf/ip_nat.c
1209
if (nat == NULL) {
usr/src/uts/common/inet/ipf/ip_nat.c
1224
if (n == nat)
usr/src/uts/common/inet/ipf/ip_nat.c
1234
aps = nat->nat_aps;
usr/src/uts/common/inet/ipf/ip_nat.c
1265
nat_t *n, *nat;
usr/src/uts/common/inet/ipf/ip_nat.c
1279
nat = ipns.ipn_next;
usr/src/uts/common/inet/ipf/ip_nat.c
1280
if (nat == NULL) {
usr/src/uts/common/inet/ipf/ip_nat.c
1281
nat = ifs->ifs_nat_instances;
usr/src/uts/common/inet/ipf/ip_nat.c
1282
if (nat == NULL) {
usr/src/uts/common/inet/ipf/ip_nat.c
1294
if (n == nat)
usr/src/uts/common/inet/ipf/ip_nat.c
1301
ipn->ipn_next = nat->nat_next;
usr/src/uts/common/inet/ipf/ip_nat.c
1306
bcopy((char *)nat, &ipn->ipn_nat, sizeof(*nat));
usr/src/uts/common/inet/ipf/ip_nat.c
1311
if (nat->nat_ptr != NULL)
usr/src/uts/common/inet/ipf/ip_nat.c
1312
bcopy((char *)nat->nat_ptr, (char *)&ipn->ipn_ipnat,
usr/src/uts/common/inet/ipf/ip_nat.c
1319
if (nat->nat_fr != NULL)
usr/src/uts/common/inet/ipf/ip_nat.c
1320
bcopy((char *)nat->nat_fr, (char *)&ipn->ipn_fr,
usr/src/uts/common/inet/ipf/ip_nat.c
1328
aps = nat->nat_aps;
usr/src/uts/common/inet/ipf/ip_nat.c
1401
void nat_calc_chksum_diffs(nat)
usr/src/uts/common/inet/ipf/ip_nat.c
1402
nat_t *nat;
usr/src/uts/common/inet/ipf/ip_nat.c
1410
if (nat->nat_v != 4 && nat->nat_v != 6)
usr/src/uts/common/inet/ipf/ip_nat.c
1417
switch (nat->nat_dir)
usr/src/uts/common/inet/ipf/ip_nat.c
1424
if (nat->nat_v == 4) {
usr/src/uts/common/inet/ipf/ip_nat.c
1425
sum_changed = LONG_SUM(ntohl(nat->nat_inip.s_addr));
usr/src/uts/common/inet/ipf/ip_nat.c
1426
sum_orig = LONG_SUM(ntohl(nat->nat_outip.s_addr));
usr/src/uts/common/inet/ipf/ip_nat.c
1428
sum_changed = LONG_SUM6(&nat->nat_inip6);
usr/src/uts/common/inet/ipf/ip_nat.c
1429
sum_orig = LONG_SUM6(&nat->nat_outip6);
usr/src/uts/common/inet/ipf/ip_nat.c
1437
if (nat->nat_v == 4) {
usr/src/uts/common/inet/ipf/ip_nat.c
1438
sum_changed = LONG_SUM(ntohl(nat->nat_outip.s_addr));
usr/src/uts/common/inet/ipf/ip_nat.c
1439
sum_orig = LONG_SUM(ntohl(nat->nat_inip.s_addr));
usr/src/uts/common/inet/ipf/ip_nat.c
1441
sum_changed = LONG_SUM6(&nat->nat_outip6);
usr/src/uts/common/inet/ipf/ip_nat.c
1442
sum_orig = LONG_SUM6(&nat->nat_inip6);
usr/src/uts/common/inet/ipf/ip_nat.c
1460
nat->nat_sumd[1] = (sumd & 0xffff) + (sumd >> 16);
usr/src/uts/common/inet/ipf/ip_nat.c
1462
if (nat->nat_flags & (IPN_TCPUDP | IPN_ICMPQUERY)) {
usr/src/uts/common/inet/ipf/ip_nat.c
1468
switch (nat->nat_dir)
usr/src/uts/common/inet/ipf/ip_nat.c
1471
if (nat->nat_v == 4) {
usr/src/uts/common/inet/ipf/ip_nat.c
1473
ntohl(nat->nat_inip.s_addr) +
usr/src/uts/common/inet/ipf/ip_nat.c
1474
ntohs(nat->nat_inport));
usr/src/uts/common/inet/ipf/ip_nat.c
1476
ntohl(nat->nat_outip.s_addr) +
usr/src/uts/common/inet/ipf/ip_nat.c
1477
ntohs(nat->nat_outport));
usr/src/uts/common/inet/ipf/ip_nat.c
1479
sum_changed = LONG_SUM6(&nat->nat_inip6) +
usr/src/uts/common/inet/ipf/ip_nat.c
1480
ntohs(nat->nat_inport);
usr/src/uts/common/inet/ipf/ip_nat.c
1481
sum_orig = LONG_SUM6(&nat->nat_outip6) +
usr/src/uts/common/inet/ipf/ip_nat.c
1482
ntohs(nat->nat_outport);
usr/src/uts/common/inet/ipf/ip_nat.c
1486
if (nat->nat_v == 4) {
usr/src/uts/common/inet/ipf/ip_nat.c
1488
ntohl(nat->nat_outip.s_addr) +
usr/src/uts/common/inet/ipf/ip_nat.c
1489
ntohs(nat->nat_outport));
usr/src/uts/common/inet/ipf/ip_nat.c
1491
ntohl(nat->nat_inip.s_addr) +
usr/src/uts/common/inet/ipf/ip_nat.c
1492
ntohs(nat->nat_inport));
usr/src/uts/common/inet/ipf/ip_nat.c
1494
sum_changed = LONG_SUM6(&nat->nat_outip6) +
usr/src/uts/common/inet/ipf/ip_nat.c
1495
ntohs(nat->nat_outport);
usr/src/uts/common/inet/ipf/ip_nat.c
1496
sum_orig = LONG_SUM6(&nat->nat_inip6) +
usr/src/uts/common/inet/ipf/ip_nat.c
1497
ntohs(nat->nat_inport);
usr/src/uts/common/inet/ipf/ip_nat.c
1505
nat->nat_sumd[0] = (sumd & 0xffff) + (sumd >> 16);
usr/src/uts/common/inet/ipf/ip_nat.c
1507
if (!(nat->nat_flags & IPN_TCPUDP)) {
usr/src/uts/common/inet/ipf/ip_nat.c
1512
nat->nat_sumd[1] = nat->nat_sumd[0];
usr/src/uts/common/inet/ipf/ip_nat.c
1516
nat->nat_sumd[0] = nat->nat_sumd[1];
usr/src/uts/common/inet/ipf/ip_nat.c
1522
if (nat->nat_v == 4) {
usr/src/uts/common/inet/ipf/ip_nat.c
1523
if (NAT_HAS_L4_CHANGED(nat)) {
usr/src/uts/common/inet/ipf/ip_nat.c
1529
nat->nat_ipsumd = (sumd & 0xffff) + (sumd >> 16);
usr/src/uts/common/inet/ipf/ip_nat.c
1535
nat->nat_ipsumd = nat->nat_sumd[0];
usr/src/uts/common/inet/ipf/ip_nat.c
1540
if (!(nat->nat_flags & IPN_TCPUDP)) {
usr/src/uts/common/inet/ipf/ip_nat.c
1541
nat->nat_sumd[0] = 0;
usr/src/uts/common/inet/ipf/ip_nat.c
1542
nat->nat_sumd[1] = 0;
usr/src/uts/common/inet/ipf/ip_nat.c
1570
nat_t *n, *nat;
usr/src/uts/common/inet/ipf/ip_nat.c
1601
nat = NULL;
usr/src/uts/common/inet/ipf/ip_nat.c
1627
KMALLOC(nat, nat_t *);
usr/src/uts/common/inet/ipf/ip_nat.c
1628
if (nat == NULL) {
usr/src/uts/common/inet/ipf/ip_nat.c
1633
bcopy((char *)&ipnn->ipn_nat, (char *)nat, sizeof(*nat));
usr/src/uts/common/inet/ipf/ip_nat.c
1637
bzero((char *)nat, offsetof(struct nat, nat_tqe));
usr/src/uts/common/inet/ipf/ip_nat.c
1638
nat->nat_tqe.tqe_pnext = NULL;
usr/src/uts/common/inet/ipf/ip_nat.c
1639
nat->nat_tqe.tqe_next = NULL;
usr/src/uts/common/inet/ipf/ip_nat.c
1640
nat->nat_tqe.tqe_ifq = NULL;
usr/src/uts/common/inet/ipf/ip_nat.c
1641
nat->nat_tqe.tqe_parent = nat;
usr/src/uts/common/inet/ipf/ip_nat.c
1649
nat->nat_ptr = in;
usr/src/uts/common/inet/ipf/ip_nat.c
1670
if (nat->nat_v != 6)
usr/src/uts/common/inet/ipf/ip_nat.c
1671
nat->nat_v = 4;
usr/src/uts/common/inet/ipf/ip_nat.c
1673
fin.fin_p = nat->nat_p;
usr/src/uts/common/inet/ipf/ip_nat.c
1675
if (nat->nat_dir == NAT_OUTBOUND) {
usr/src/uts/common/inet/ipf/ip_nat.c
1676
fin.fin_data[0] = ntohs(nat->nat_oport);
usr/src/uts/common/inet/ipf/ip_nat.c
1677
fin.fin_data[1] = ntohs(nat->nat_outport);
usr/src/uts/common/inet/ipf/ip_nat.c
1678
fin.fin_ifp = nat->nat_ifps[0];
usr/src/uts/common/inet/ipf/ip_nat.c
1683
switch (nat->nat_v)
usr/src/uts/common/inet/ipf/ip_nat.c
1686
fin.fin_v = nat->nat_v;
usr/src/uts/common/inet/ipf/ip_nat.c
1687
n = nat_inlookup(&fin, nat->nat_flags, fin.fin_p,
usr/src/uts/common/inet/ipf/ip_nat.c
1688
nat->nat_oip, nat->nat_outip);
usr/src/uts/common/inet/ipf/ip_nat.c
1692
n = nat6_inlookup(&fin, nat->nat_flags, fin.fin_p,
usr/src/uts/common/inet/ipf/ip_nat.c
1693
&nat->nat_oip6.in6, &nat->nat_outip6.in6);
usr/src/uts/common/inet/ipf/ip_nat.c
1708
} else if (nat->nat_dir == NAT_INBOUND) {
usr/src/uts/common/inet/ipf/ip_nat.c
1709
fin.fin_data[0] = ntohs(nat->nat_inport);
usr/src/uts/common/inet/ipf/ip_nat.c
1710
fin.fin_data[1] = ntohs(nat->nat_oport);
usr/src/uts/common/inet/ipf/ip_nat.c
1711
fin.fin_ifp = nat->nat_ifps[1];
usr/src/uts/common/inet/ipf/ip_nat.c
1716
switch (nat->nat_v)
usr/src/uts/common/inet/ipf/ip_nat.c
1719
n = nat_outlookup(&fin, nat->nat_flags, fin.fin_p,
usr/src/uts/common/inet/ipf/ip_nat.c
1720
nat->nat_inip, nat->nat_oip);
usr/src/uts/common/inet/ipf/ip_nat.c
1724
n = nat6_outlookup(&fin, nat->nat_flags, fin.fin_p,
usr/src/uts/common/inet/ipf/ip_nat.c
1725
&nat->nat_inip6.in6, &nat->nat_oip6.in6);
usr/src/uts/common/inet/ipf/ip_nat.c
1749
aps = nat->nat_aps;
usr/src/uts/common/inet/ipf/ip_nat.c
1752
nat->nat_aps = aps;
usr/src/uts/common/inet/ipf/ip_nat.c
1784
fr = nat->nat_fr;
usr/src/uts/common/inet/ipf/ip_nat.c
1786
if ((nat->nat_flags & SI_NEWFR) != 0) {
usr/src/uts/common/inet/ipf/ip_nat.c
1788
nat->nat_fr = fr;
usr/src/uts/common/inet/ipf/ip_nat.c
1832
nat_calc_chksum_diffs(nat);
usr/src/uts/common/inet/ipf/ip_nat.c
1838
nat_calc_chksum_diffs(nat);
usr/src/uts/common/inet/ipf/ip_nat.c
1840
switch (nat->nat_v)
usr/src/uts/common/inet/ipf/ip_nat.c
1843
error = nat_insert(nat, nat->nat_rev, ifs);
usr/src/uts/common/inet/ipf/ip_nat.c
1847
error = nat6_insert(nat, nat->nat_rev, ifs);
usr/src/uts/common/inet/ipf/ip_nat.c
1874
if (nat != NULL) {
usr/src/uts/common/inet/ipf/ip_nat.c
1886
KFREE(nat);
usr/src/uts/common/inet/ipf/ip_nat.c
1903
int nat_delete(nat, logtype, ifs)
usr/src/uts/common/inet/ipf/ip_nat.c
1904
struct nat *nat;
usr/src/uts/common/inet/ipf/ip_nat.c
1912
nat_log(nat, logtype, ifs);
usr/src/uts/common/inet/ipf/ip_nat.c
1921
if ((nat->nat_phnext[0] != NULL) && (nat->nat_phnext[1] != NULL)) {
usr/src/uts/common/inet/ipf/ip_nat.c
1924
ifs->ifs_nat_stats.ns_bucketlen[0][nat->nat_hv[0]]--;
usr/src/uts/common/inet/ipf/ip_nat.c
1925
ifs->ifs_nat_stats.ns_bucketlen[1][nat->nat_hv[1]]--;
usr/src/uts/common/inet/ipf/ip_nat.c
1927
*nat->nat_phnext[0] = nat->nat_hnext[0];
usr/src/uts/common/inet/ipf/ip_nat.c
1928
if (nat->nat_hnext[0] != NULL) {
usr/src/uts/common/inet/ipf/ip_nat.c
1929
nat->nat_hnext[0]->nat_phnext[0] = nat->nat_phnext[0];
usr/src/uts/common/inet/ipf/ip_nat.c
1930
nat->nat_hnext[0] = NULL;
usr/src/uts/common/inet/ipf/ip_nat.c
1932
nat->nat_phnext[0] = NULL;
usr/src/uts/common/inet/ipf/ip_nat.c
1934
*nat->nat_phnext[1] = nat->nat_hnext[1];
usr/src/uts/common/inet/ipf/ip_nat.c
1935
if (nat->nat_hnext[1] != NULL) {
usr/src/uts/common/inet/ipf/ip_nat.c
1936
nat->nat_hnext[1]->nat_phnext[1] = nat->nat_phnext[1];
usr/src/uts/common/inet/ipf/ip_nat.c
1937
nat->nat_hnext[1] = NULL;
usr/src/uts/common/inet/ipf/ip_nat.c
1939
nat->nat_phnext[1] = NULL;
usr/src/uts/common/inet/ipf/ip_nat.c
1941
if ((nat->nat_flags & SI_WILDP) != 0)
usr/src/uts/common/inet/ipf/ip_nat.c
1948
fr_deletequeueentry(&nat->nat_tqe);
usr/src/uts/common/inet/ipf/ip_nat.c
1950
if (nat->nat_me != NULL) {
usr/src/uts/common/inet/ipf/ip_nat.c
1951
*nat->nat_me = NULL;
usr/src/uts/common/inet/ipf/ip_nat.c
1952
nat->nat_me = NULL;
usr/src/uts/common/inet/ipf/ip_nat.c
1955
MUTEX_ENTER(&nat->nat_lock);
usr/src/uts/common/inet/ipf/ip_nat.c
1956
if (nat->nat_ref > 1) {
usr/src/uts/common/inet/ipf/ip_nat.c
1957
nat->nat_ref--;
usr/src/uts/common/inet/ipf/ip_nat.c
1958
MUTEX_EXIT(&nat->nat_lock);
usr/src/uts/common/inet/ipf/ip_nat.c
1961
return (nat->nat_ref);
usr/src/uts/common/inet/ipf/ip_nat.c
1963
MUTEX_EXIT(&nat->nat_lock);
usr/src/uts/common/inet/ipf/ip_nat.c
1965
nat->nat_ref = 0;
usr/src/uts/common/inet/ipf/ip_nat.c
1975
if (nat->nat_sync)
usr/src/uts/common/inet/ipf/ip_nat.c
1976
ipfsync_del(nat->nat_sync);
usr/src/uts/common/inet/ipf/ip_nat.c
1982
if (nat->nat_pnext != NULL) {
usr/src/uts/common/inet/ipf/ip_nat.c
1983
*nat->nat_pnext = nat->nat_next;
usr/src/uts/common/inet/ipf/ip_nat.c
1984
if (nat->nat_next != NULL) {
usr/src/uts/common/inet/ipf/ip_nat.c
1985
nat->nat_next->nat_pnext = nat->nat_pnext;
usr/src/uts/common/inet/ipf/ip_nat.c
1986
nat->nat_next = NULL;
usr/src/uts/common/inet/ipf/ip_nat.c
1988
nat->nat_pnext = NULL;
usr/src/uts/common/inet/ipf/ip_nat.c
1991
if (nat->nat_fr != NULL)
usr/src/uts/common/inet/ipf/ip_nat.c
1992
(void)fr_derefrule(&nat->nat_fr, ifs);
usr/src/uts/common/inet/ipf/ip_nat.c
1994
if (nat->nat_hm != NULL)
usr/src/uts/common/inet/ipf/ip_nat.c
1995
fr_hostmapdel(&nat->nat_hm);
usr/src/uts/common/inet/ipf/ip_nat.c
2002
ipn = nat->nat_ptr;
usr/src/uts/common/inet/ipf/ip_nat.c
2014
MUTEX_DESTROY(&nat->nat_lock);
usr/src/uts/common/inet/ipf/ip_nat.c
2016
aps_free(nat->nat_aps, ifs);
usr/src/uts/common/inet/ipf/ip_nat.c
2024
fr_forgetnat((void *)nat, ifs);
usr/src/uts/common/inet/ipf/ip_nat.c
2026
KFREE(nat);
usr/src/uts/common/inet/ipf/ip_nat.c
2090
static INLINE int nat_newmap(fin, nat, ni)
usr/src/uts/common/inet/ipf/ip_nat.c
2092
nat_t *nat;
usr/src/uts/common/inet/ipf/ip_nat.c
2140
nat->nat_hm = hm;
usr/src/uts/common/inet/ipf/ip_nat.c
2301
nat->nat_inip = fin->fin_src;
usr/src/uts/common/inet/ipf/ip_nat.c
2302
nat->nat_outip.s_addr = htonl(in.s_addr);
usr/src/uts/common/inet/ipf/ip_nat.c
2303
nat->nat_oip = fin->fin_dst;
usr/src/uts/common/inet/ipf/ip_nat.c
2304
if (nat->nat_hm == NULL)
usr/src/uts/common/inet/ipf/ip_nat.c
2305
nat->nat_hm = nat_hostmap(np, fin->fin_src, fin->fin_dst,
usr/src/uts/common/inet/ipf/ip_nat.c
2306
nat->nat_outip, 0, ifs);
usr/src/uts/common/inet/ipf/ip_nat.c
2309
nat->nat_inport = sport;
usr/src/uts/common/inet/ipf/ip_nat.c
2310
nat->nat_outport = port; /* sport */
usr/src/uts/common/inet/ipf/ip_nat.c
2311
nat->nat_oport = dport;
usr/src/uts/common/inet/ipf/ip_nat.c
2315
nat->nat_inport = port;
usr/src/uts/common/inet/ipf/ip_nat.c
2316
nat->nat_outport = port;
usr/src/uts/common/inet/ipf/ip_nat.c
2338
static INLINE int nat_newrdr(fin, nat, ni)
usr/src/uts/common/inet/ipf/ip_nat.c
2340
nat_t *nat;
usr/src/uts/common/inet/ipf/ip_nat.c
2478
nat->nat_inip.s_addr = htonl(in.s_addr);
usr/src/uts/common/inet/ipf/ip_nat.c
2479
nat->nat_outip = fin->fin_dst;
usr/src/uts/common/inet/ipf/ip_nat.c
2480
nat->nat_oip = fin->fin_src;
usr/src/uts/common/inet/ipf/ip_nat.c
2487
nat->nat_inport = nport;
usr/src/uts/common/inet/ipf/ip_nat.c
2488
nat->nat_outport = dport;
usr/src/uts/common/inet/ipf/ip_nat.c
2489
nat->nat_oport = sport;
usr/src/uts/common/inet/ipf/ip_nat.c
2493
nat->nat_inport = nport;
usr/src/uts/common/inet/ipf/ip_nat.c
2494
nat->nat_outport = nport;
usr/src/uts/common/inet/ipf/ip_nat.c
2528
nat_t *nat, *natl;
usr/src/uts/common/inet/ipf/ip_nat.c
2559
KMALLOC(nat, nat_t *);
usr/src/uts/common/inet/ipf/ip_nat.c
2560
if (nat == NULL) {
usr/src/uts/common/inet/ipf/ip_nat.c
2598
bzero((char *)nat, sizeof(*nat));
usr/src/uts/common/inet/ipf/ip_nat.c
2599
nat->nat_flags = flags;
usr/src/uts/common/inet/ipf/ip_nat.c
2600
nat->nat_redir = np->in_redir;
usr/src/uts/common/inet/ipf/ip_nat.c
2618
KFREE(nat);
usr/src/uts/common/inet/ipf/ip_nat.c
2619
nat = natl;
usr/src/uts/common/inet/ipf/ip_nat.c
2623
move = nat_newmap(fin, nat, &ni);
usr/src/uts/common/inet/ipf/ip_nat.c
2635
KFREE(nat);
usr/src/uts/common/inet/ipf/ip_nat.c
2636
nat = natl;
usr/src/uts/common/inet/ipf/ip_nat.c
2640
move = nat_newrdr(fin, nat, &ni);
usr/src/uts/common/inet/ipf/ip_nat.c
2657
if (nat_finalise(fin, nat, &ni, tcp, natsave, direction) == -1) {
usr/src/uts/common/inet/ipf/ip_nat.c
2661
nat_calc_chksum_diffs(nat);
usr/src/uts/common/inet/ipf/ip_nat.c
2669
if ((hm = nat->nat_hm) != NULL)
usr/src/uts/common/inet/ipf/ip_nat.c
2671
KFREE(nat);
usr/src/uts/common/inet/ipf/ip_nat.c
2672
nat = NULL;
usr/src/uts/common/inet/ipf/ip_nat.c
2677
return nat;
usr/src/uts/common/inet/ipf/ip_nat.c
2694
static INLINE int nat_finalise(fin, nat, ni, tcp, natsave, direction)
usr/src/uts/common/inet/ipf/ip_nat.c
2696
nat_t *nat;
usr/src/uts/common/inet/ipf/ip_nat.c
2708
COPYIFNAME(fin->fin_ifp, nat->nat_ifnames[0], fin->fin_v);
usr/src/uts/common/inet/ipf/ip_nat.c
2711
if ((nat->nat_flags & SI_CLONE) == 0)
usr/src/uts/common/inet/ipf/ip_nat.c
2712
nat->nat_sync = ipfsync_new(SMC_NAT, fin, nat);
usr/src/uts/common/inet/ipf/ip_nat.c
2715
nat->nat_me = natsave;
usr/src/uts/common/inet/ipf/ip_nat.c
2716
nat->nat_dir = direction;
usr/src/uts/common/inet/ipf/ip_nat.c
2717
nat->nat_ifps[0] = np->in_ifps[0];
usr/src/uts/common/inet/ipf/ip_nat.c
2718
nat->nat_ifps[1] = np->in_ifps[1];
usr/src/uts/common/inet/ipf/ip_nat.c
2719
nat->nat_ptr = np;
usr/src/uts/common/inet/ipf/ip_nat.c
2720
nat->nat_p = fin->fin_p;
usr/src/uts/common/inet/ipf/ip_nat.c
2721
nat->nat_v = fin->fin_v;
usr/src/uts/common/inet/ipf/ip_nat.c
2722
nat->nat_mssclamp = np->in_mssclamp;
usr/src/uts/common/inet/ipf/ip_nat.c
2724
nat->nat_fr = fr;
usr/src/uts/common/inet/ipf/ip_nat.c
2727
if (appr_new(fin, nat) == -1)
usr/src/uts/common/inet/ipf/ip_nat.c
2730
if (nat_insert(nat, fin->fin_rev, ifs) == 0) {
usr/src/uts/common/inet/ipf/ip_nat.c
2732
nat_log(nat, (u_int)np->in_redir, ifs);
usr/src/uts/common/inet/ipf/ip_nat.c
2759
int nat_insert(nat, rev, ifs)
usr/src/uts/common/inet/ipf/ip_nat.c
2760
nat_t *nat;
usr/src/uts/common/inet/ipf/ip_nat.c
2771
if ((nat->nat_flags & (SI_W_SPORT|SI_W_DPORT)) == 0) {
usr/src/uts/common/inet/ipf/ip_nat.c
2772
hv1 = NAT_HASH_FN(nat->nat_inip.s_addr, nat->nat_inport,
usr/src/uts/common/inet/ipf/ip_nat.c
2774
hv1 = NAT_HASH_FN(nat->nat_oip.s_addr, hv1 + nat->nat_oport,
usr/src/uts/common/inet/ipf/ip_nat.c
2776
hv2 = NAT_HASH_FN(nat->nat_outip.s_addr, nat->nat_outport,
usr/src/uts/common/inet/ipf/ip_nat.c
2778
hv2 = NAT_HASH_FN(nat->nat_oip.s_addr, hv2 + nat->nat_oport,
usr/src/uts/common/inet/ipf/ip_nat.c
2781
hv1 = NAT_HASH_FN(nat->nat_inip.s_addr, 0, 0xffffffff);
usr/src/uts/common/inet/ipf/ip_nat.c
2782
hv1 = NAT_HASH_FN(nat->nat_oip.s_addr, hv1,
usr/src/uts/common/inet/ipf/ip_nat.c
2784
hv2 = NAT_HASH_FN(nat->nat_outip.s_addr, 0, 0xffffffff);
usr/src/uts/common/inet/ipf/ip_nat.c
2785
hv2 = NAT_HASH_FN(nat->nat_oip.s_addr, hv2,
usr/src/uts/common/inet/ipf/ip_nat.c
2794
nat->nat_hv[0] = hv1;
usr/src/uts/common/inet/ipf/ip_nat.c
2795
nat->nat_hv[1] = hv2;
usr/src/uts/common/inet/ipf/ip_nat.c
2797
MUTEX_INIT(&nat->nat_lock, "nat entry lock");
usr/src/uts/common/inet/ipf/ip_nat.c
2799
nat->nat_rev = rev;
usr/src/uts/common/inet/ipf/ip_nat.c
2800
nat->nat_ref = 1;
usr/src/uts/common/inet/ipf/ip_nat.c
2801
nat->nat_bytes[0] = 0;
usr/src/uts/common/inet/ipf/ip_nat.c
2802
nat->nat_pkts[0] = 0;
usr/src/uts/common/inet/ipf/ip_nat.c
2803
nat->nat_bytes[1] = 0;
usr/src/uts/common/inet/ipf/ip_nat.c
2804
nat->nat_pkts[1] = 0;
usr/src/uts/common/inet/ipf/ip_nat.c
2806
nat->nat_ifnames[0][LIFNAMSIZ - 1] = '\0';
usr/src/uts/common/inet/ipf/ip_nat.c
2807
nat->nat_ifps[0] = fr_resolvenic(nat->nat_ifnames[0], 4, ifs);
usr/src/uts/common/inet/ipf/ip_nat.c
2809
if (nat->nat_ifnames[1][0] !='\0') {
usr/src/uts/common/inet/ipf/ip_nat.c
2810
nat->nat_ifnames[1][LIFNAMSIZ - 1] = '\0';
usr/src/uts/common/inet/ipf/ip_nat.c
2811
nat->nat_ifps[1] = fr_resolvenic(nat->nat_ifnames[1], 4, ifs);
usr/src/uts/common/inet/ipf/ip_nat.c
2813
(void) strncpy(nat->nat_ifnames[1], nat->nat_ifnames[0],
usr/src/uts/common/inet/ipf/ip_nat.c
2815
nat->nat_ifnames[1][LIFNAMSIZ - 1] = '\0';
usr/src/uts/common/inet/ipf/ip_nat.c
2816
nat->nat_ifps[1] = nat->nat_ifps[0];
usr/src/uts/common/inet/ipf/ip_nat.c
2819
nat->nat_next = ifs->ifs_nat_instances;
usr/src/uts/common/inet/ipf/ip_nat.c
2820
nat->nat_pnext = &ifs->ifs_nat_instances;
usr/src/uts/common/inet/ipf/ip_nat.c
2822
ifs->ifs_nat_instances->nat_pnext = &nat->nat_next;
usr/src/uts/common/inet/ipf/ip_nat.c
2823
ifs->ifs_nat_instances = nat;
usr/src/uts/common/inet/ipf/ip_nat.c
2827
(*natp)->nat_phnext[0] = &nat->nat_hnext[0];
usr/src/uts/common/inet/ipf/ip_nat.c
2828
nat->nat_phnext[0] = natp;
usr/src/uts/common/inet/ipf/ip_nat.c
2829
nat->nat_hnext[0] = *natp;
usr/src/uts/common/inet/ipf/ip_nat.c
2830
*natp = nat;
usr/src/uts/common/inet/ipf/ip_nat.c
2835
(*natp)->nat_phnext[1] = &nat->nat_hnext[1];
usr/src/uts/common/inet/ipf/ip_nat.c
2836
nat->nat_phnext[1] = natp;
usr/src/uts/common/inet/ipf/ip_nat.c
2837
nat->nat_hnext[1] = *natp;
usr/src/uts/common/inet/ipf/ip_nat.c
2838
*natp = nat;
usr/src/uts/common/inet/ipf/ip_nat.c
2841
fr_setnatqueue(nat, rev, ifs);
usr/src/uts/common/inet/ipf/ip_nat.c
2867
nat_t *nat;
usr/src/uts/common/inet/ipf/ip_nat.c
2937
nat = nat_inlookup(fin, flags, p, oip->ip_dst,
usr/src/uts/common/inet/ipf/ip_nat.c
2940
nat = nat_outlookup(fin, flags, p, oip->ip_dst,
usr/src/uts/common/inet/ipf/ip_nat.c
2944
return nat;
usr/src/uts/common/inet/ipf/ip_nat.c
2960
nat = nat_inlookup(fin, flags, p, oip->ip_dst,
usr/src/uts/common/inet/ipf/ip_nat.c
2963
nat = nat_outlookup(fin, flags, p, oip->ip_dst,
usr/src/uts/common/inet/ipf/ip_nat.c
2968
return nat;
usr/src/uts/common/inet/ipf/ip_nat.c
3001
nat_t *nat;
usr/src/uts/common/inet/ipf/ip_nat.c
3012
if ((fin->fin_v != 4) || !(nat = nat_icmperrorlookup(fin, dir)))
usr/src/uts/common/inet/ipf/ip_nat.c
3038
if (oip->ip_dst.s_addr == nat->nat_oip.s_addr) {
usr/src/uts/common/inet/ipf/ip_nat.c
3040
in = nat->nat_inip;
usr/src/uts/common/inet/ipf/ip_nat.c
3044
in = nat->nat_outip;
usr/src/uts/common/inet/ipf/ip_nat.c
3097
if ((tcp->th_dport == nat->nat_oport) &&
usr/src/uts/common/inet/ipf/ip_nat.c
3098
(tcp->th_sport != nat->nat_inport)) {
usr/src/uts/common/inet/ipf/ip_nat.c
3105
psum2 = ntohs(nat->nat_inport);
usr/src/uts/common/inet/ipf/ip_nat.c
3106
tcp->th_sport = nat->nat_inport;
usr/src/uts/common/inet/ipf/ip_nat.c
3108
} else if ((tcp->th_sport == nat->nat_oport) &&
usr/src/uts/common/inet/ipf/ip_nat.c
3109
(tcp->th_dport != nat->nat_outport)) {
usr/src/uts/common/inet/ipf/ip_nat.c
3116
psum2 = ntohs(nat->nat_outport);
usr/src/uts/common/inet/ipf/ip_nat.c
3117
tcp->th_dport = nat->nat_outport;
usr/src/uts/common/inet/ipf/ip_nat.c
3190
if ((nat->nat_dir == NAT_OUTBOUND) &&
usr/src/uts/common/inet/ipf/ip_nat.c
3191
(orgicmp->icmp_id != nat->nat_inport) &&
usr/src/uts/common/inet/ipf/ip_nat.c
3208
sum2 = ntohs(nat->nat_inport);
usr/src/uts/common/inet/ipf/ip_nat.c
3210
orgicmp->icmp_id = nat->nat_inport;
usr/src/uts/common/inet/ipf/ip_nat.c
3233
return nat;
usr/src/uts/common/inet/ipf/ip_nat.c
3272
nat_t *nat;
usr/src/uts/common/inet/ipf/ip_nat.c
3311
nat = ifs->ifs_nat_table[1][hv];
usr/src/uts/common/inet/ipf/ip_nat.c
3312
for (; nat; nat = nat->nat_hnext[1]) {
usr/src/uts/common/inet/ipf/ip_nat.c
3313
if (nat->nat_v != 4)
usr/src/uts/common/inet/ipf/ip_nat.c
3316
if (nat->nat_ifps[0] != NULL) {
usr/src/uts/common/inet/ipf/ip_nat.c
3317
if ((ifp != NULL) && (ifp != nat->nat_ifps[0]))
usr/src/uts/common/inet/ipf/ip_nat.c
3320
nat->nat_ifps[0] = ifp;
usr/src/uts/common/inet/ipf/ip_nat.c
3322
nflags = nat->nat_flags;
usr/src/uts/common/inet/ipf/ip_nat.c
3324
if (nat->nat_oip.s_addr == src.s_addr &&
usr/src/uts/common/inet/ipf/ip_nat.c
3325
nat->nat_outip.s_addr == dst &&
usr/src/uts/common/inet/ipf/ip_nat.c
3327
(sflags == (nat->nat_flags & IPN_TCPUDPICMP)))
usr/src/uts/common/inet/ipf/ip_nat.c
3328
|| (p == nat->nat_p))) {
usr/src/uts/common/inet/ipf/ip_nat.c
3333
if (nat->nat_call[1] != fin->fin_data[0])
usr/src/uts/common/inet/ipf/ip_nat.c
3339
if (nat->nat_outport != sport)
usr/src/uts/common/inet/ipf/ip_nat.c
3342
if (nat->nat_outport != dport)
usr/src/uts/common/inet/ipf/ip_nat.c
3348
if (nat->nat_oport != sport)
usr/src/uts/common/inet/ipf/ip_nat.c
3350
if (nat->nat_outport != dport)
usr/src/uts/common/inet/ipf/ip_nat.c
3357
ipn = nat->nat_ptr;
usr/src/uts/common/inet/ipf/ip_nat.c
3358
if ((ipn != NULL) && (nat->nat_aps != NULL))
usr/src/uts/common/inet/ipf/ip_nat.c
3359
if (appr_match(fin, nat) != 0)
usr/src/uts/common/inet/ipf/ip_nat.c
3361
return nat;
usr/src/uts/common/inet/ipf/ip_nat.c
3385
nat = ifs->ifs_nat_table[1][hv];
usr/src/uts/common/inet/ipf/ip_nat.c
3386
for (; nat; nat = nat->nat_hnext[1]) {
usr/src/uts/common/inet/ipf/ip_nat.c
3387
if (nat->nat_v != 4)
usr/src/uts/common/inet/ipf/ip_nat.c
3390
if (nat->nat_ifps[0] != NULL) {
usr/src/uts/common/inet/ipf/ip_nat.c
3391
if ((ifp != NULL) && (ifp != nat->nat_ifps[0]))
usr/src/uts/common/inet/ipf/ip_nat.c
3394
nat->nat_ifps[0] = ifp;
usr/src/uts/common/inet/ipf/ip_nat.c
3396
if (nat->nat_p != fin->fin_p)
usr/src/uts/common/inet/ipf/ip_nat.c
3398
if (nat->nat_oip.s_addr != src.s_addr ||
usr/src/uts/common/inet/ipf/ip_nat.c
3399
nat->nat_outip.s_addr != dst)
usr/src/uts/common/inet/ipf/ip_nat.c
3402
nflags = nat->nat_flags;
usr/src/uts/common/inet/ipf/ip_nat.c
3406
if (nat_wildok(nat, (int)sport, (int)dport, nflags,
usr/src/uts/common/inet/ipf/ip_nat.c
3411
nat = fr_natclone(fin, nat);
usr/src/uts/common/inet/ipf/ip_nat.c
3412
if (nat == NULL)
usr/src/uts/common/inet/ipf/ip_nat.c
3419
nat->nat_oport = sport;
usr/src/uts/common/inet/ipf/ip_nat.c
3420
nat->nat_outport = dport;
usr/src/uts/common/inet/ipf/ip_nat.c
3421
nat->nat_flags &= ~(SI_W_DPORT|SI_W_SPORT);
usr/src/uts/common/inet/ipf/ip_nat.c
3422
nat_tabmove(nat, ifs);
usr/src/uts/common/inet/ipf/ip_nat.c
3429
return nat;
usr/src/uts/common/inet/ipf/ip_nat.c
3443
static void nat_tabmove(nat, ifs)
usr/src/uts/common/inet/ipf/ip_nat.c
3444
nat_t *nat;
usr/src/uts/common/inet/ipf/ip_nat.c
3450
if (nat->nat_flags & SI_CLONE)
usr/src/uts/common/inet/ipf/ip_nat.c
3456
if (nat->nat_hnext[0])
usr/src/uts/common/inet/ipf/ip_nat.c
3457
nat->nat_hnext[0]->nat_phnext[0] = nat->nat_phnext[0];
usr/src/uts/common/inet/ipf/ip_nat.c
3458
*nat->nat_phnext[0] = nat->nat_hnext[0];
usr/src/uts/common/inet/ipf/ip_nat.c
3459
ifs->ifs_nat_stats.ns_bucketlen[0][nat->nat_hv[0]]--;
usr/src/uts/common/inet/ipf/ip_nat.c
3461
if (nat->nat_hnext[1])
usr/src/uts/common/inet/ipf/ip_nat.c
3462
nat->nat_hnext[1]->nat_phnext[1] = nat->nat_phnext[1];
usr/src/uts/common/inet/ipf/ip_nat.c
3463
*nat->nat_phnext[1] = nat->nat_hnext[1];
usr/src/uts/common/inet/ipf/ip_nat.c
3464
ifs->ifs_nat_stats.ns_bucketlen[1][nat->nat_hv[1]]--;
usr/src/uts/common/inet/ipf/ip_nat.c
3469
hv = NAT_HASH_FN(nat->nat_inip.s_addr, nat->nat_inport, 0xffffffff);
usr/src/uts/common/inet/ipf/ip_nat.c
3470
hv = NAT_HASH_FN(nat->nat_oip.s_addr, hv + nat->nat_oport,
usr/src/uts/common/inet/ipf/ip_nat.c
3472
nat->nat_hv[0] = hv;
usr/src/uts/common/inet/ipf/ip_nat.c
3475
(*natp)->nat_phnext[0] = &nat->nat_hnext[0];
usr/src/uts/common/inet/ipf/ip_nat.c
3476
nat->nat_phnext[0] = natp;
usr/src/uts/common/inet/ipf/ip_nat.c
3477
nat->nat_hnext[0] = *natp;
usr/src/uts/common/inet/ipf/ip_nat.c
3478
*natp = nat;
usr/src/uts/common/inet/ipf/ip_nat.c
3481
hv = NAT_HASH_FN(nat->nat_outip.s_addr, nat->nat_outport, 0xffffffff);
usr/src/uts/common/inet/ipf/ip_nat.c
3482
hv = NAT_HASH_FN(nat->nat_oip.s_addr, hv + nat->nat_oport,
usr/src/uts/common/inet/ipf/ip_nat.c
3484
nat->nat_hv[1] = hv;
usr/src/uts/common/inet/ipf/ip_nat.c
3487
(*natp)->nat_phnext[1] = &nat->nat_hnext[1];
usr/src/uts/common/inet/ipf/ip_nat.c
3488
nat->nat_phnext[1] = natp;
usr/src/uts/common/inet/ipf/ip_nat.c
3489
nat->nat_hnext[1] = *natp;
usr/src/uts/common/inet/ipf/ip_nat.c
3490
*natp = nat;
usr/src/uts/common/inet/ipf/ip_nat.c
3527
nat_t *nat;
usr/src/uts/common/inet/ipf/ip_nat.c
3562
nat = ifs->ifs_nat_table[0][hv];
usr/src/uts/common/inet/ipf/ip_nat.c
3563
for (; nat; nat = nat->nat_hnext[0]) {
usr/src/uts/common/inet/ipf/ip_nat.c
3564
if (nat->nat_v != 4)
usr/src/uts/common/inet/ipf/ip_nat.c
3567
if (nat->nat_ifps[1] != NULL) {
usr/src/uts/common/inet/ipf/ip_nat.c
3568
if ((ifp != NULL) && (ifp != nat->nat_ifps[1]))
usr/src/uts/common/inet/ipf/ip_nat.c
3571
nat->nat_ifps[1] = ifp;
usr/src/uts/common/inet/ipf/ip_nat.c
3573
nflags = nat->nat_flags;
usr/src/uts/common/inet/ipf/ip_nat.c
3575
if (nat->nat_inip.s_addr == srcip &&
usr/src/uts/common/inet/ipf/ip_nat.c
3576
nat->nat_oip.s_addr == dst.s_addr &&
usr/src/uts/common/inet/ipf/ip_nat.c
3578
|| (p == nat->nat_p))) {
usr/src/uts/common/inet/ipf/ip_nat.c
3583
if (nat->nat_call[1] != fin->fin_data[0])
usr/src/uts/common/inet/ipf/ip_nat.c
3589
if (nat->nat_oport != dport)
usr/src/uts/common/inet/ipf/ip_nat.c
3591
if (nat->nat_inport != sport)
usr/src/uts/common/inet/ipf/ip_nat.c
3598
ipn = nat->nat_ptr;
usr/src/uts/common/inet/ipf/ip_nat.c
3599
if ((ipn != NULL) && (nat->nat_aps != NULL))
usr/src/uts/common/inet/ipf/ip_nat.c
3600
if (appr_match(fin, nat) != 0)
usr/src/uts/common/inet/ipf/ip_nat.c
3602
return nat;
usr/src/uts/common/inet/ipf/ip_nat.c
3626
nat = ifs->ifs_nat_table[0][hv];
usr/src/uts/common/inet/ipf/ip_nat.c
3627
for (; nat; nat = nat->nat_hnext[0]) {
usr/src/uts/common/inet/ipf/ip_nat.c
3628
if (nat->nat_v != 4)
usr/src/uts/common/inet/ipf/ip_nat.c
3631
if (nat->nat_ifps[1] != NULL) {
usr/src/uts/common/inet/ipf/ip_nat.c
3632
if ((ifp != NULL) && (ifp != nat->nat_ifps[1]))
usr/src/uts/common/inet/ipf/ip_nat.c
3635
nat->nat_ifps[1] = ifp;
usr/src/uts/common/inet/ipf/ip_nat.c
3637
if (nat->nat_p != fin->fin_p)
usr/src/uts/common/inet/ipf/ip_nat.c
3639
if ((nat->nat_inip.s_addr != srcip) ||
usr/src/uts/common/inet/ipf/ip_nat.c
3640
(nat->nat_oip.s_addr != dst.s_addr))
usr/src/uts/common/inet/ipf/ip_nat.c
3643
nflags = nat->nat_flags;
usr/src/uts/common/inet/ipf/ip_nat.c
3647
if (nat_wildok(nat, (int)sport, (int)dport, nflags,
usr/src/uts/common/inet/ipf/ip_nat.c
3652
nat = fr_natclone(fin, nat);
usr/src/uts/common/inet/ipf/ip_nat.c
3653
if (nat == NULL)
usr/src/uts/common/inet/ipf/ip_nat.c
3660
nat->nat_inport = sport;
usr/src/uts/common/inet/ipf/ip_nat.c
3661
nat->nat_oport = dport;
usr/src/uts/common/inet/ipf/ip_nat.c
3662
if (nat->nat_outport == 0)
usr/src/uts/common/inet/ipf/ip_nat.c
3663
nat->nat_outport = sport;
usr/src/uts/common/inet/ipf/ip_nat.c
3664
nat->nat_flags &= ~(SI_W_DPORT|SI_W_SPORT);
usr/src/uts/common/inet/ipf/ip_nat.c
3665
nat_tabmove(nat, ifs);
usr/src/uts/common/inet/ipf/ip_nat.c
3672
return nat;
usr/src/uts/common/inet/ipf/ip_nat.c
3690
nat_t *nat;
usr/src/uts/common/inet/ipf/ip_nat.c
3714
if ((nat = nat_inlookup(&fi, np->nl_flags, fi.fin_p,
usr/src/uts/common/inet/ipf/ip_nat.c
3716
np->nl_inip = nat->nat_inip;
usr/src/uts/common/inet/ipf/ip_nat.c
3717
np->nl_inport = nat->nat_inport;
usr/src/uts/common/inet/ipf/ip_nat.c
3724
if ((nat = nat_outlookup(&fi, np->nl_flags, fi.fin_p,
usr/src/uts/common/inet/ipf/ip_nat.c
3730
fin.fin_p = nat->nat_p;
usr/src/uts/common/inet/ipf/ip_nat.c
3731
fin.fin_data[0] = ntohs(nat->nat_outport);
usr/src/uts/common/inet/ipf/ip_nat.c
3732
fin.fin_data[1] = ntohs(nat->nat_oport);
usr/src/uts/common/inet/ipf/ip_nat.c
3735
nat->nat_outip,
usr/src/uts/common/inet/ipf/ip_nat.c
3736
nat->nat_oip) != NULL) {
usr/src/uts/common/inet/ipf/ip_nat.c
3741
np->nl_realip = nat->nat_outip;
usr/src/uts/common/inet/ipf/ip_nat.c
3742
np->nl_realport = nat->nat_outport;
usr/src/uts/common/inet/ipf/ip_nat.c
3746
return nat;
usr/src/uts/common/inet/ipf/ip_nat.c
3814
void nat_update(fin, nat, np)
usr/src/uts/common/inet/ipf/ip_nat.c
3816
nat_t *nat;
usr/src/uts/common/inet/ipf/ip_nat.c
3823
tqe = &nat->nat_tqe;
usr/src/uts/common/inet/ipf/ip_nat.c
3836
if (nat->nat_p == IPPROTO_TCP && ifq2 == NULL) {
usr/src/uts/common/inet/ipf/ip_nat.c
3837
(void) fr_tcp_age(&nat->nat_tqe, fin, ifs->ifs_nat_tqb, 0);
usr/src/uts/common/inet/ipf/ip_nat.c
3840
if (nat->nat_p == IPPROTO_UDP)
usr/src/uts/common/inet/ipf/ip_nat.c
3842
else if (nat->nat_p == IPPROTO_ICMP)
usr/src/uts/common/inet/ipf/ip_nat.c
3881
nat_t *nat;
usr/src/uts/common/inet/ipf/ip_nat.c
3930
(nat = nat_icmperror(fin, &nflags, NAT_OUTBOUND)))
usr/src/uts/common/inet/ipf/ip_nat.c
3932
else if ((fin->fin_flx & FI_FRAG) && (nat = fr_nat_knownfrag(fin)))
usr/src/uts/common/inet/ipf/ip_nat.c
3934
else if ((nat = nat_outlookup(fin, nflags|NAT_SEARCH, (u_int)fin->fin_p,
usr/src/uts/common/inet/ipf/ip_nat.c
3936
nflags = nat->nat_flags;
usr/src/uts/common/inet/ipf/ip_nat.c
3986
nat = nat_new(fin, np, NULL, nflags, NAT_OUTBOUND);
usr/src/uts/common/inet/ipf/ip_nat.c
3987
if (nat != NULL) {
usr/src/uts/common/inet/ipf/ip_nat.c
4013
if (nat != NULL) {
usr/src/uts/common/inet/ipf/ip_nat.c
4014
rval = fr_natout(fin, nat, natadd, nflags);
usr/src/uts/common/inet/ipf/ip_nat.c
4016
MUTEX_ENTER(&nat->nat_lock);
usr/src/uts/common/inet/ipf/ip_nat.c
4017
nat_update(fin, nat, nat->nat_ptr);
usr/src/uts/common/inet/ipf/ip_nat.c
4018
nat->nat_bytes[1] += fin->fin_plen;
usr/src/uts/common/inet/ipf/ip_nat.c
4019
nat->nat_pkts[1]++;
usr/src/uts/common/inet/ipf/ip_nat.c
4020
fin->fin_pktnum = nat->nat_pkts[1];
usr/src/uts/common/inet/ipf/ip_nat.c
4021
MUTEX_EXIT(&nat->nat_lock);
usr/src/uts/common/inet/ipf/ip_nat.c
4047
int fr_natout(fin, nat, natadd, nflags)
usr/src/uts/common/inet/ipf/ip_nat.c
4049
nat_t *nat;
usr/src/uts/common/inet/ipf/ip_nat.c
4063
return fr_nat6out(fin, nat, natadd, nflags);
usr/src/uts/common/inet/ipf/ip_nat.c
4076
np = nat->nat_ptr;
usr/src/uts/common/inet/ipf/ip_nat.c
4079
(void) fr_nat_newfrag(fin, 0, nat);
usr/src/uts/common/inet/ipf/ip_nat.c
4095
s2 = LONG_SUM(ntohl(nat->nat_outip.s_addr));
usr/src/uts/common/inet/ipf/ip_nat.c
4109
if (nat->nat_dir == NAT_OUTBOUND)
usr/src/uts/common/inet/ipf/ip_nat.c
4111
nat->nat_ipsumd);
usr/src/uts/common/inet/ipf/ip_nat.c
4114
nat->nat_ipsumd);
usr/src/uts/common/inet/ipf/ip_nat.c
4120
if ((nat->nat_outport != 0) && (nflags & IPN_TCPUDP)) {
usr/src/uts/common/inet/ipf/ip_nat.c
4123
tcp->th_sport = nat->nat_outport;
usr/src/uts/common/inet/ipf/ip_nat.c
4124
fin->fin_data[0] = ntohs(nat->nat_outport);
usr/src/uts/common/inet/ipf/ip_nat.c
4127
if ((nat->nat_outport != 0) && (nflags & IPN_ICMPQUERY)) {
usr/src/uts/common/inet/ipf/ip_nat.c
4129
icmp->icmp_id = nat->nat_outport;
usr/src/uts/common/inet/ipf/ip_nat.c
4132
csump = nat_proto(fin, nat, nflags);
usr/src/uts/common/inet/ipf/ip_nat.c
4135
fin->fin_ip->ip_src = nat->nat_outip;
usr/src/uts/common/inet/ipf/ip_nat.c
4143
sumd = nat->nat_sumd[1];
usr/src/uts/common/inet/ipf/ip_nat.c
4145
sumd = nat->nat_sumd[0];
usr/src/uts/common/inet/ipf/ip_nat.c
4147
if (nat->nat_dir == NAT_OUTBOUND)
usr/src/uts/common/inet/ipf/ip_nat.c
4153
ipfsync_update(SMC_NAT, fin, nat->nat_sync);
usr/src/uts/common/inet/ipf/ip_nat.c
4166
i = appr_check(fin, nat);
usr/src/uts/common/inet/ipf/ip_nat.c
4204
nat_t *nat;
usr/src/uts/common/inet/ipf/ip_nat.c
4256
(nat = nat_icmperror(fin, &nflags, NAT_INBOUND)))
usr/src/uts/common/inet/ipf/ip_nat.c
4258
else if ((fin->fin_flx & FI_FRAG) && (nat = fr_nat_knownfrag(fin)))
usr/src/uts/common/inet/ipf/ip_nat.c
4260
else if ((nat = nat_inlookup(fin, nflags|NAT_SEARCH, (u_int)fin->fin_p,
usr/src/uts/common/inet/ipf/ip_nat.c
4262
nflags = nat->nat_flags;
usr/src/uts/common/inet/ipf/ip_nat.c
4312
nat = nat_new(fin, np, NULL, nflags, NAT_INBOUND);
usr/src/uts/common/inet/ipf/ip_nat.c
4313
if (nat != NULL) {
usr/src/uts/common/inet/ipf/ip_nat.c
4340
if (nat != NULL) {
usr/src/uts/common/inet/ipf/ip_nat.c
4341
rval = fr_natin(fin, nat, natadd, nflags);
usr/src/uts/common/inet/ipf/ip_nat.c
4343
MUTEX_ENTER(&nat->nat_lock);
usr/src/uts/common/inet/ipf/ip_nat.c
4344
nat_update(fin, nat, nat->nat_ptr);
usr/src/uts/common/inet/ipf/ip_nat.c
4345
nat->nat_bytes[0] += fin->fin_plen;
usr/src/uts/common/inet/ipf/ip_nat.c
4346
nat->nat_pkts[0]++;
usr/src/uts/common/inet/ipf/ip_nat.c
4347
fin->fin_pktnum = nat->nat_pkts[0];
usr/src/uts/common/inet/ipf/ip_nat.c
4348
MUTEX_EXIT(&nat->nat_lock);
usr/src/uts/common/inet/ipf/ip_nat.c
4375
int fr_natin(fin, nat, natadd, nflags)
usr/src/uts/common/inet/ipf/ip_nat.c
4377
nat_t *nat;
usr/src/uts/common/inet/ipf/ip_nat.c
4390
return fr_nat6in(fin, nat, natadd, nflags);
usr/src/uts/common/inet/ipf/ip_nat.c
4402
np = nat->nat_ptr;
usr/src/uts/common/inet/ipf/ip_nat.c
4403
fin->fin_fr = nat->nat_fr;
usr/src/uts/common/inet/ipf/ip_nat.c
4406
(void) fr_nat_newfrag(fin, 0, nat);
usr/src/uts/common/inet/ipf/ip_nat.c
4421
i = appr_check(fin, nat);
usr/src/uts/common/inet/ipf/ip_nat.c
4429
ipfsync_update(SMC_NAT, fin, nat->nat_sync);
usr/src/uts/common/inet/ipf/ip_nat.c
4432
fin->fin_ip->ip_dst = nat->nat_inip;
usr/src/uts/common/inet/ipf/ip_nat.c
4433
fin->fin_fi.fi_daddr = nat->nat_inip.s_addr;
usr/src/uts/common/inet/ipf/ip_nat.c
4449
if (nat->nat_dir == NAT_OUTBOUND)
usr/src/uts/common/inet/ipf/ip_nat.c
4450
fix_incksum(&fin->fin_ip->ip_sum, nat->nat_ipsumd);
usr/src/uts/common/inet/ipf/ip_nat.c
4452
fix_outcksum(&fin->fin_ip->ip_sum, nat->nat_ipsumd);
usr/src/uts/common/inet/ipf/ip_nat.c
4456
if ((nat->nat_inport != 0) && (nflags & IPN_TCPUDP)) {
usr/src/uts/common/inet/ipf/ip_nat.c
4457
tcp->th_dport = nat->nat_inport;
usr/src/uts/common/inet/ipf/ip_nat.c
4458
fin->fin_data[1] = ntohs(nat->nat_inport);
usr/src/uts/common/inet/ipf/ip_nat.c
4462
if ((nat->nat_inport != 0) && (nflags & IPN_ICMPQUERY)) {
usr/src/uts/common/inet/ipf/ip_nat.c
4465
icmp->icmp_id = nat->nat_inport;
usr/src/uts/common/inet/ipf/ip_nat.c
4468
csump = nat_proto(fin, nat, nflags);
usr/src/uts/common/inet/ipf/ip_nat.c
4476
if (nat->nat_dir == NAT_OUTBOUND)
usr/src/uts/common/inet/ipf/ip_nat.c
4477
fix_incksum(csump, nat->nat_sumd[0]);
usr/src/uts/common/inet/ipf/ip_nat.c
4479
fix_outcksum(csump, nat->nat_sumd[0]);
usr/src/uts/common/inet/ipf/ip_nat.c
4494
if (nat->nat_dir == NAT_OUTBOUND)
usr/src/uts/common/inet/ipf/ip_nat.c
4495
fix_outcksum(csump, nat->nat_sumd[1]);
usr/src/uts/common/inet/ipf/ip_nat.c
4497
fix_incksum(csump, nat->nat_sumd[1]);
usr/src/uts/common/inet/ipf/ip_nat.c
4523
u_short *nat_proto(fin, nat, nflags)
usr/src/uts/common/inet/ipf/ip_nat.c
4525
nat_t *nat;
usr/src/uts/common/inet/ipf/ip_nat.c
4536
fin->fin_rev = (nat->nat_dir == NAT_OUTBOUND);
usr/src/uts/common/inet/ipf/ip_nat.c
4538
fin->fin_rev = (nat->nat_dir == NAT_INBOUND);
usr/src/uts/common/inet/ipf/ip_nat.c
4552
if ((nat->nat_mssclamp != 0) && (tcp->th_flags & TH_SYN) != 0)
usr/src/uts/common/inet/ipf/ip_nat.c
4553
nat_mssclamp(tcp, nat->nat_mssclamp, csump);
usr/src/uts/common/inet/ipf/ip_nat.c
4746
nat_t *nat;
usr/src/uts/common/inet/ipf/ip_nat.c
4769
for (nat = ifs->ifs_nat_instances; nat; nat = nat->nat_next) {
usr/src/uts/common/inet/ipf/ip_nat.c
4771
if (((ifp != NULL) && ifp != (nat->nat_ifps[0])) ||
usr/src/uts/common/inet/ipf/ip_nat.c
4772
((nat->nat_flags & IPN_TCP) != 0))
usr/src/uts/common/inet/ipf/ip_nat.c
4774
if ((np = nat->nat_ptr) == NULL)
usr/src/uts/common/inet/ipf/ip_nat.c
4783
sum1 = nat->nat_outip.s_addr;
usr/src/uts/common/inet/ipf/ip_nat.c
4784
nat->nat_outip = *(struct in_addr *)addr;
usr/src/uts/common/inet/ipf/ip_nat.c
4785
sum2 = nat->nat_outip.s_addr;
usr/src/uts/common/inet/ipf/ip_nat.c
4794
nat->nat_outip6.in6 = *(struct in6_addr *)addr;
usr/src/uts/common/inet/ipf/ip_nat.c
4798
} else if (((ifp == NULL) || (ifp == nat->nat_ifps[0])) &&
usr/src/uts/common/inet/ipf/ip_nat.c
4799
!(nat->nat_flags & IPN_TCP) && (np = nat->nat_ptr)) {
usr/src/uts/common/inet/ipf/ip_nat.c
4808
sum1 = nat->nat_outip.s_addr;
usr/src/uts/common/inet/ipf/ip_nat.c
4809
if (fr_ifpaddr(4, FRI_NORMAL, nat->nat_ifps[0],
usr/src/uts/common/inet/ipf/ip_nat.c
4811
nat->nat_outip = in;
usr/src/uts/common/inet/ipf/ip_nat.c
4812
sum2 = nat->nat_outip.s_addr;
usr/src/uts/common/inet/ipf/ip_nat.c
4822
if (fr_ifpaddr(6, FRI_NORMAL, nat->nat_ifps[0],
usr/src/uts/common/inet/ipf/ip_nat.c
4824
nat->nat_outip6.in6 = in6;
usr/src/uts/common/inet/ipf/ip_nat.c
4841
sumd += nat->nat_sumd[0];
usr/src/uts/common/inet/ipf/ip_nat.c
4842
nat->nat_sumd[0] = (sumd & 0xffff) + (sumd >> 16);
usr/src/uts/common/inet/ipf/ip_nat.c
4843
nat->nat_sumd[1] = nat->nat_sumd[0];
usr/src/uts/common/inet/ipf/ip_nat.c
4874
nat_t *nat;
usr/src/uts/common/inet/ipf/ip_nat.c
4892
for (nat = ifs->ifs_nat_instances; nat; nat = nat->nat_next) {
usr/src/uts/common/inet/ipf/ip_nat.c
4893
nv = (v == 0) ? nat->nat_v : v;
usr/src/uts/common/inet/ipf/ip_nat.c
4894
if (nat->nat_v != nv)
usr/src/uts/common/inet/ipf/ip_nat.c
4896
if ((ifp == nat->nat_ifps[0]) ||
usr/src/uts/common/inet/ipf/ip_nat.c
4897
(nat->nat_ifps[0] == (void *)-1)) {
usr/src/uts/common/inet/ipf/ip_nat.c
4898
nat->nat_ifps[0] =
usr/src/uts/common/inet/ipf/ip_nat.c
4899
fr_resolvenic(nat->nat_ifnames[0], nv, ifs);
usr/src/uts/common/inet/ipf/ip_nat.c
4902
if ((ifp == nat->nat_ifps[1]) ||
usr/src/uts/common/inet/ipf/ip_nat.c
4903
(nat->nat_ifps[1] == (void *)-1)) {
usr/src/uts/common/inet/ipf/ip_nat.c
4904
nat->nat_ifps[1] =
usr/src/uts/common/inet/ipf/ip_nat.c
4905
fr_resolvenic(nat->nat_ifnames[1], nv, ifs);
usr/src/uts/common/inet/ipf/ip_nat.c
4926
for (nat = ifs->ifs_nat_instances; nat; nat = nat->nat_next) {
usr/src/uts/common/inet/ipf/ip_nat.c
4927
if (nat->nat_v != v)
usr/src/uts/common/inet/ipf/ip_nat.c
4929
if (!strncmp(name, nat->nat_ifnames[0],
usr/src/uts/common/inet/ipf/ip_nat.c
4930
sizeof(nat->nat_ifnames[0])))
usr/src/uts/common/inet/ipf/ip_nat.c
4931
nat->nat_ifps[0] = ifp;
usr/src/uts/common/inet/ipf/ip_nat.c
4932
if (!strncmp(name, nat->nat_ifnames[1],
usr/src/uts/common/inet/ipf/ip_nat.c
4933
sizeof(nat->nat_ifnames[1])))
usr/src/uts/common/inet/ipf/ip_nat.c
4934
nat->nat_ifps[1] = ifp;
usr/src/uts/common/inet/ipf/ip_nat.c
4948
for (nat = ifs->ifs_nat_instances; nat; nat = nat->nat_next) {
usr/src/uts/common/inet/ipf/ip_nat.c
4949
if (nat->nat_v != v)
usr/src/uts/common/inet/ipf/ip_nat.c
4951
if (ifp == nat->nat_ifps[0])
usr/src/uts/common/inet/ipf/ip_nat.c
4952
nat->nat_ifps[0] = (void *)-1;
usr/src/uts/common/inet/ipf/ip_nat.c
4953
if (ifp == nat->nat_ifps[1])
usr/src/uts/common/inet/ipf/ip_nat.c
4954
nat->nat_ifps[1] = (void *)-1;
usr/src/uts/common/inet/ipf/ip_nat.c
4988
nat_t *nat;
usr/src/uts/common/inet/ipf/ip_nat.c
4993
for (nat = ifs->ifs_nat_instances; nat != NULL; nat = nat->nat_next) {
usr/src/uts/common/inet/ipf/ip_nat.c
4994
if (ifp == nat->nat_ifps[0])
usr/src/uts/common/inet/ipf/ip_nat.c
4995
nat->nat_ifps[0] = newifp;
usr/src/uts/common/inet/ipf/ip_nat.c
4997
if (ifp == nat->nat_ifps[1])
usr/src/uts/common/inet/ipf/ip_nat.c
4998
nat->nat_ifps[1] = newifp;
usr/src/uts/common/inet/ipf/ip_nat.c
5063
void nat_log(nat, type, ifs)
usr/src/uts/common/inet/ipf/ip_nat.c
5064
struct nat *nat;
usr/src/uts/common/inet/ipf/ip_nat.c
5078
natl.nlg_inip = nat->nat_inip6;
usr/src/uts/common/inet/ipf/ip_nat.c
5079
natl.nlg_outip = nat->nat_outip6;
usr/src/uts/common/inet/ipf/ip_nat.c
5080
natl.nlg_origip = nat->nat_oip6;
usr/src/uts/common/inet/ipf/ip_nat.c
5081
natl.nlg_bytes[0] = nat->nat_bytes[0];
usr/src/uts/common/inet/ipf/ip_nat.c
5082
natl.nlg_bytes[1] = nat->nat_bytes[1];
usr/src/uts/common/inet/ipf/ip_nat.c
5083
natl.nlg_pkts[0] = nat->nat_pkts[0];
usr/src/uts/common/inet/ipf/ip_nat.c
5084
natl.nlg_pkts[1] = nat->nat_pkts[1];
usr/src/uts/common/inet/ipf/ip_nat.c
5085
natl.nlg_origport = nat->nat_oport;
usr/src/uts/common/inet/ipf/ip_nat.c
5086
natl.nlg_inport = nat->nat_inport;
usr/src/uts/common/inet/ipf/ip_nat.c
5087
natl.nlg_outport = nat->nat_outport;
usr/src/uts/common/inet/ipf/ip_nat.c
5088
natl.nlg_p = nat->nat_p;
usr/src/uts/common/inet/ipf/ip_nat.c
5091
natl.nlg_v = nat->nat_v;
usr/src/uts/common/inet/ipf/ip_nat.c
5093
if (nat->nat_ptr != NULL) {
usr/src/uts/common/inet/ipf/ip_nat.c
5096
if (np == nat->nat_ptr) {
usr/src/uts/common/inet/ipf/ip_nat.c
5182
nat_t *nat;
usr/src/uts/common/inet/ipf/ip_nat.c
5184
nat = *natp;
usr/src/uts/common/inet/ipf/ip_nat.c
5187
MUTEX_ENTER(&nat->nat_lock);
usr/src/uts/common/inet/ipf/ip_nat.c
5188
if (nat->nat_ref > 1) {
usr/src/uts/common/inet/ipf/ip_nat.c
5189
nat->nat_ref--;
usr/src/uts/common/inet/ipf/ip_nat.c
5190
MUTEX_EXIT(&nat->nat_lock);
usr/src/uts/common/inet/ipf/ip_nat.c
5193
MUTEX_EXIT(&nat->nat_lock);
usr/src/uts/common/inet/ipf/ip_nat.c
5196
(void) nat_delete(nat, NL_EXPIRE, ifs);
usr/src/uts/common/inet/ipf/ip_nat.c
5211
nat_t *fr_natclone(fin, nat)
usr/src/uts/common/inet/ipf/ip_nat.c
5213
nat_t *nat;
usr/src/uts/common/inet/ipf/ip_nat.c
5239
bcopy((char *)nat, (char *)clone, sizeof(*clone));
usr/src/uts/common/inet/ipf/ip_nat.c
5306
int nat_wildok(nat, sport, dport, flags, dir)
usr/src/uts/common/inet/ipf/ip_nat.c
5307
nat_t *nat;
usr/src/uts/common/inet/ipf/ip_nat.c
5323
switch ((dir << 1) | nat->nat_dir)
usr/src/uts/common/inet/ipf/ip_nat.c
5326
if (((nat->nat_inport == sport) ||
usr/src/uts/common/inet/ipf/ip_nat.c
5328
((nat->nat_oport == dport) ||
usr/src/uts/common/inet/ipf/ip_nat.c
5333
if (((nat->nat_outport == sport) ||
usr/src/uts/common/inet/ipf/ip_nat.c
5335
((nat->nat_oport == dport) ||
usr/src/uts/common/inet/ipf/ip_nat.c
5340
if (((nat->nat_oport == sport) ||
usr/src/uts/common/inet/ipf/ip_nat.c
5342
((nat->nat_outport == dport) ||
usr/src/uts/common/inet/ipf/ip_nat.c
5347
if (((nat->nat_oport == sport) ||
usr/src/uts/common/inet/ipf/ip_nat.c
5349
((nat->nat_outport == dport) ||
usr/src/uts/common/inet/ipf/ip_nat.c
5434
void fr_setnatqueue(nat, rev, ifs)
usr/src/uts/common/inet/ipf/ip_nat.c
5435
nat_t *nat;
usr/src/uts/common/inet/ipf/ip_nat.c
5441
if (nat->nat_ptr != NULL)
usr/src/uts/common/inet/ipf/ip_nat.c
5442
nifq = nat->nat_ptr->in_tqehead[rev];
usr/src/uts/common/inet/ipf/ip_nat.c
5447
switch (nat->nat_p)
usr/src/uts/common/inet/ipf/ip_nat.c
5456
nifq = ifs->ifs_nat_tqb + nat->nat_tqe.tqe_state[rev];
usr/src/uts/common/inet/ipf/ip_nat.c
5464
oifq = nat->nat_tqe.tqe_ifq;
usr/src/uts/common/inet/ipf/ip_nat.c
5470
fr_movequeue(&nat->nat_tqe, oifq, nifq, ifs);
usr/src/uts/common/inet/ipf/ip_nat.c
5472
fr_queueappend(&nat->nat_tqe, nifq, nat, ifs);
usr/src/uts/common/inet/ipf/ip_nat.c
5494
nat_t *nat, *nextnat = NULL, zeronat;
usr/src/uts/common/inet/ipf/ip_nat.c
5527
nat = t->ipt_data;
usr/src/uts/common/inet/ipf/ip_nat.c
5528
if (nat == NULL) {
usr/src/uts/common/inet/ipf/ip_nat.c
5531
nextnat = nat->nat_next;
usr/src/uts/common/inet/ipf/ip_nat.c
5661
if (nat != NULL)
usr/src/uts/common/inet/ipf/ip_nat.c
5662
fr_natderef(&nat, ifs);
usr/src/uts/common/inet/ipf/ip_nat.c
5669
nat = nextnat;
usr/src/uts/common/inet/ipf/ip_nat.c
5755
nat_t *nat, *natn;
usr/src/uts/common/inet/ipf/ip_nat.c
5766
while ((nat = natn) != NULL) {
usr/src/uts/common/inet/ipf/ip_nat.c
5767
natn = nat->nat_next;
usr/src/uts/common/inet/ipf/ip_nat.c
5768
if (nat_delete(nat, NL_FLUSH, ifs) == 0)
usr/src/uts/common/inet/ipf/ip_nat.c
5828
nat_t *nat;
usr/src/uts/common/inet/ipf/ip_nat.c
5846
nat = nat_outlookup(fin, nflags, (u_int)fin->fin_p,
usr/src/uts/common/inet/ipf/ip_nat.c
5849
nat = nat_inlookup(fin, nflags, (u_int)fin->fin_p,
usr/src/uts/common/inet/ipf/ip_nat.c
5853
if (nat != NULL) {
usr/src/uts/common/inet/ipf/ip_nat.c
5855
(void) nat_delete(nat, NL_DESTROY, ifs);
usr/src/uts/common/inet/ipf/ip_nat.c
607
ipnat_t *nat, *nt, *n = NULL, **np = NULL;
usr/src/uts/common/inet/ipf/ip_nat.c
622
nat = NULL; /* XXX gcc -Wuninitialized */
usr/src/uts/common/inet/ipf/ip_nat.c
646
nat = &natd;
usr/src/uts/common/inet/ipf/ip_nat.c
647
if (nat->in_v == 0) /* For backward compat. */
usr/src/uts/common/inet/ipf/ip_nat.c
648
nat->in_v = 4;
usr/src/uts/common/inet/ipf/ip_nat.c
649
nat->in_flags &= IPN_USERFLAGS;
usr/src/uts/common/inet/ipf/ip_nat.c
650
if ((nat->in_redir & NAT_MAPBLK) == 0) {
usr/src/uts/common/inet/ipf/ip_nat.c
651
if ((nat->in_flags & IPN_SPLIT) == 0)
usr/src/uts/common/inet/ipf/ip_nat.c
652
nat->in_inip &= nat->in_inmsk;
usr/src/uts/common/inet/ipf/ip_nat.c
653
if ((nat->in_flags & IPN_IPRANGE) == 0)
usr/src/uts/common/inet/ipf/ip_nat.c
654
nat->in_outip &= nat->in_outmsk;
usr/src/uts/common/inet/ipf/ip_nat.c
659
if (bcmp((char *)&nat->in_flags, (char *)&n->in_flags,
usr/src/uts/common/inet/ipf/ip_nat.c
661
if (nat->in_redir == NAT_REDIRECT &&
usr/src/uts/common/inet/ipf/ip_nat.c
662
nat->in_pnext != n->in_pnext)
usr/src/uts/common/inet/ipf/ip_nat.c
739
bcopy((char *)nat, (char *)nt, sizeof(*n));
usr/src/uts/common/inet/ipf/ip_nat6.c
1000
hv2 = NAT_HASH_FN6(&nat->nat_outip6, 0, 0xffffffff);
usr/src/uts/common/inet/ipf/ip_nat6.c
1001
hv2 = NAT_HASH_FN6(&nat->nat_oip6, hv2,
usr/src/uts/common/inet/ipf/ip_nat6.c
1012
nat->nat_hv[0] = hv1;
usr/src/uts/common/inet/ipf/ip_nat6.c
1013
nat->nat_hv[1] = hv2;
usr/src/uts/common/inet/ipf/ip_nat6.c
1015
MUTEX_INIT(&nat->nat_lock, "nat entry lock");
usr/src/uts/common/inet/ipf/ip_nat6.c
1017
nat->nat_rev = rev;
usr/src/uts/common/inet/ipf/ip_nat6.c
1018
nat->nat_ref = 1;
usr/src/uts/common/inet/ipf/ip_nat6.c
1019
nat->nat_bytes[0] = 0;
usr/src/uts/common/inet/ipf/ip_nat6.c
1020
nat->nat_pkts[0] = 0;
usr/src/uts/common/inet/ipf/ip_nat6.c
1021
nat->nat_bytes[1] = 0;
usr/src/uts/common/inet/ipf/ip_nat6.c
1022
nat->nat_pkts[1] = 0;
usr/src/uts/common/inet/ipf/ip_nat6.c
1024
nat->nat_ifnames[0][LIFNAMSIZ - 1] = '\0';
usr/src/uts/common/inet/ipf/ip_nat6.c
1025
nat->nat_ifps[0] = fr_resolvenic(nat->nat_ifnames[0], 6, ifs);
usr/src/uts/common/inet/ipf/ip_nat6.c
1027
if (nat->nat_ifnames[1][0] !='\0') {
usr/src/uts/common/inet/ipf/ip_nat6.c
1028
nat->nat_ifnames[1][LIFNAMSIZ - 1] = '\0';
usr/src/uts/common/inet/ipf/ip_nat6.c
1029
nat->nat_ifps[1] = fr_resolvenic(nat->nat_ifnames[1], 6, ifs);
usr/src/uts/common/inet/ipf/ip_nat6.c
1031
(void) strncpy(nat->nat_ifnames[1], nat->nat_ifnames[0],
usr/src/uts/common/inet/ipf/ip_nat6.c
1033
nat->nat_ifnames[1][LIFNAMSIZ - 1] = '\0';
usr/src/uts/common/inet/ipf/ip_nat6.c
1034
nat->nat_ifps[1] = nat->nat_ifps[0];
usr/src/uts/common/inet/ipf/ip_nat6.c
1037
nat->nat_next = ifs->ifs_nat_instances;
usr/src/uts/common/inet/ipf/ip_nat6.c
1038
nat->nat_pnext = &ifs->ifs_nat_instances;
usr/src/uts/common/inet/ipf/ip_nat6.c
1040
ifs->ifs_nat_instances->nat_pnext = &nat->nat_next;
usr/src/uts/common/inet/ipf/ip_nat6.c
1041
ifs->ifs_nat_instances = nat;
usr/src/uts/common/inet/ipf/ip_nat6.c
1045
(*natp)->nat_phnext[0] = &nat->nat_hnext[0];
usr/src/uts/common/inet/ipf/ip_nat6.c
1046
nat->nat_phnext[0] = natp;
usr/src/uts/common/inet/ipf/ip_nat6.c
1047
nat->nat_hnext[0] = *natp;
usr/src/uts/common/inet/ipf/ip_nat6.c
1048
*natp = nat;
usr/src/uts/common/inet/ipf/ip_nat6.c
1053
(*natp)->nat_phnext[1] = &nat->nat_hnext[1];
usr/src/uts/common/inet/ipf/ip_nat6.c
1054
nat->nat_phnext[1] = natp;
usr/src/uts/common/inet/ipf/ip_nat6.c
1055
nat->nat_hnext[1] = *natp;
usr/src/uts/common/inet/ipf/ip_nat6.c
1056
*natp = nat;
usr/src/uts/common/inet/ipf/ip_nat6.c
1059
fr_setnatqueue(nat, rev, ifs);
usr/src/uts/common/inet/ipf/ip_nat6.c
1085
nat_t *nat;
usr/src/uts/common/inet/ipf/ip_nat6.c
1155
nat = nat6_inlookup(fin, flags, p,
usr/src/uts/common/inet/ipf/ip_nat6.c
1158
nat = nat6_outlookup(fin, flags, p,
usr/src/uts/common/inet/ipf/ip_nat6.c
1162
return nat;
usr/src/uts/common/inet/ipf/ip_nat6.c
1178
nat = nat6_inlookup(fin, flags, p,
usr/src/uts/common/inet/ipf/ip_nat6.c
1181
nat = nat6_outlookup(fin, flags, p,
usr/src/uts/common/inet/ipf/ip_nat6.c
1186
return nat;
usr/src/uts/common/inet/ipf/ip_nat6.c
1220
nat_t *nat;
usr/src/uts/common/inet/ipf/ip_nat6.c
1231
if ((fin->fin_v != 6) || !(nat = nat6_icmperrorlookup(fin, dir)))
usr/src/uts/common/inet/ipf/ip_nat6.c
1253
if (IP6_EQ((i6addr_t *)&oip6->ip6_dst, &nat->nat_oip6)) {
usr/src/uts/common/inet/ipf/ip_nat6.c
1255
in = nat->nat_inip6;
usr/src/uts/common/inet/ipf/ip_nat6.c
1259
in = nat->nat_outip6;
usr/src/uts/common/inet/ipf/ip_nat6.c
1311
if ((tcp->th_dport == nat->nat_oport) &&
usr/src/uts/common/inet/ipf/ip_nat6.c
1312
(tcp->th_sport != nat->nat_inport)) {
usr/src/uts/common/inet/ipf/ip_nat6.c
1319
psum2 = ntohs(nat->nat_inport);
usr/src/uts/common/inet/ipf/ip_nat6.c
1320
tcp->th_sport = nat->nat_inport;
usr/src/uts/common/inet/ipf/ip_nat6.c
1322
} else if ((tcp->th_sport == nat->nat_oport) &&
usr/src/uts/common/inet/ipf/ip_nat6.c
1323
(tcp->th_dport != nat->nat_outport)) {
usr/src/uts/common/inet/ipf/ip_nat6.c
1330
psum2 = ntohs(nat->nat_outport);
usr/src/uts/common/inet/ipf/ip_nat6.c
1331
tcp->th_dport = nat->nat_outport;
usr/src/uts/common/inet/ipf/ip_nat6.c
1402
if ((nat->nat_dir == NAT_OUTBOUND) &&
usr/src/uts/common/inet/ipf/ip_nat6.c
1403
(orgicmp->icmp6_id != nat->nat_inport) &&
usr/src/uts/common/inet/ipf/ip_nat6.c
1420
sum2 = ntohs(nat->nat_inport);
usr/src/uts/common/inet/ipf/ip_nat6.c
1422
orgicmp->icmp6_id = nat->nat_inport;
usr/src/uts/common/inet/ipf/ip_nat6.c
1445
return nat;
usr/src/uts/common/inet/ipf/ip_nat6.c
1483
nat_t *nat;
usr/src/uts/common/inet/ipf/ip_nat6.c
1522
nat = ifs->ifs_nat_table[1][hv];
usr/src/uts/common/inet/ipf/ip_nat6.c
1523
for (; nat; nat = nat->nat_hnext[1]) {
usr/src/uts/common/inet/ipf/ip_nat6.c
1524
if (nat->nat_v != 6)
usr/src/uts/common/inet/ipf/ip_nat6.c
1527
if (nat->nat_ifps[0] != NULL) {
usr/src/uts/common/inet/ipf/ip_nat6.c
1528
if ((ifp != NULL) && (ifp != nat->nat_ifps[0]))
usr/src/uts/common/inet/ipf/ip_nat6.c
1531
nat->nat_ifps[0] = ifp;
usr/src/uts/common/inet/ipf/ip_nat6.c
1533
nflags = nat->nat_flags;
usr/src/uts/common/inet/ipf/ip_nat6.c
1535
if (IP6_EQ(&nat->nat_oip6, src) &&
usr/src/uts/common/inet/ipf/ip_nat6.c
1536
IP6_EQ(&nat->nat_outip6, &dst) &&
usr/src/uts/common/inet/ipf/ip_nat6.c
1538
(sflags == (nat->nat_flags & IPN_TCPUDPICMP))) ||
usr/src/uts/common/inet/ipf/ip_nat6.c
1539
(p == nat->nat_p))) {
usr/src/uts/common/inet/ipf/ip_nat6.c
1544
if (nat->nat_call[1] != fin->fin_data[0])
usr/src/uts/common/inet/ipf/ip_nat6.c
1550
if (nat->nat_outport != sport)
usr/src/uts/common/inet/ipf/ip_nat6.c
1553
if (nat->nat_outport != dport)
usr/src/uts/common/inet/ipf/ip_nat6.c
1559
if (nat->nat_oport != sport)
usr/src/uts/common/inet/ipf/ip_nat6.c
1561
if (nat->nat_outport != dport)
usr/src/uts/common/inet/ipf/ip_nat6.c
1569
ipn = nat->nat_ptr;
usr/src/uts/common/inet/ipf/ip_nat6.c
1570
if ((ipn != NULL) && (nat->nat_aps != NULL))
usr/src/uts/common/inet/ipf/ip_nat6.c
1571
if (appr_match(fin, nat) != 0)
usr/src/uts/common/inet/ipf/ip_nat6.c
1574
return nat;
usr/src/uts/common/inet/ipf/ip_nat6.c
1598
nat = ifs->ifs_nat_table[1][hv];
usr/src/uts/common/inet/ipf/ip_nat6.c
1599
for (; nat; nat = nat->nat_hnext[1]) {
usr/src/uts/common/inet/ipf/ip_nat6.c
1600
if (nat->nat_v != 6)
usr/src/uts/common/inet/ipf/ip_nat6.c
1603
if (nat->nat_ifps[0] != NULL) {
usr/src/uts/common/inet/ipf/ip_nat6.c
1604
if ((ifp != NULL) && (ifp != nat->nat_ifps[0]))
usr/src/uts/common/inet/ipf/ip_nat6.c
1607
nat->nat_ifps[0] = ifp;
usr/src/uts/common/inet/ipf/ip_nat6.c
1609
if (nat->nat_p != fin->fin_p)
usr/src/uts/common/inet/ipf/ip_nat6.c
1611
if (IP6_NEQ(&nat->nat_oip6, src) ||
usr/src/uts/common/inet/ipf/ip_nat6.c
1612
IP6_NEQ(&nat->nat_outip6, &dst))
usr/src/uts/common/inet/ipf/ip_nat6.c
1615
nflags = nat->nat_flags;
usr/src/uts/common/inet/ipf/ip_nat6.c
1619
if (nat_wildok(nat, (int)sport, (int)dport, nflags,
usr/src/uts/common/inet/ipf/ip_nat6.c
1624
nat = fr_natclone(fin, nat);
usr/src/uts/common/inet/ipf/ip_nat6.c
1625
if (nat == NULL)
usr/src/uts/common/inet/ipf/ip_nat6.c
1632
nat->nat_oport = sport;
usr/src/uts/common/inet/ipf/ip_nat6.c
1633
nat->nat_outport = dport;
usr/src/uts/common/inet/ipf/ip_nat6.c
1634
nat->nat_flags &= ~(SI_W_DPORT|SI_W_SPORT);
usr/src/uts/common/inet/ipf/ip_nat6.c
1635
nat6_tabmove(nat, ifs);
usr/src/uts/common/inet/ipf/ip_nat6.c
1642
return nat;
usr/src/uts/common/inet/ipf/ip_nat6.c
1656
static void nat6_tabmove(nat, ifs)
usr/src/uts/common/inet/ipf/ip_nat6.c
1657
nat_t *nat;
usr/src/uts/common/inet/ipf/ip_nat6.c
1663
if (nat->nat_flags & SI_CLONE)
usr/src/uts/common/inet/ipf/ip_nat6.c
1669
if (nat->nat_hnext[0])
usr/src/uts/common/inet/ipf/ip_nat6.c
1670
nat->nat_hnext[0]->nat_phnext[0] = nat->nat_phnext[0];
usr/src/uts/common/inet/ipf/ip_nat6.c
1671
*nat->nat_phnext[0] = nat->nat_hnext[0];
usr/src/uts/common/inet/ipf/ip_nat6.c
1672
ifs->ifs_nat_stats.ns_bucketlen[0][nat->nat_hv[0]]--;
usr/src/uts/common/inet/ipf/ip_nat6.c
1674
if (nat->nat_hnext[1])
usr/src/uts/common/inet/ipf/ip_nat6.c
1675
nat->nat_hnext[1]->nat_phnext[1] = nat->nat_phnext[1];
usr/src/uts/common/inet/ipf/ip_nat6.c
1676
*nat->nat_phnext[1] = nat->nat_hnext[1];
usr/src/uts/common/inet/ipf/ip_nat6.c
1677
ifs->ifs_nat_stats.ns_bucketlen[1][nat->nat_hv[1]]--;
usr/src/uts/common/inet/ipf/ip_nat6.c
1682
hv = NAT_HASH_FN6(&nat->nat_inip6, nat->nat_inport, 0xffffffff);
usr/src/uts/common/inet/ipf/ip_nat6.c
1683
hv = NAT_HASH_FN6(&nat->nat_oip6, hv + nat->nat_oport,
usr/src/uts/common/inet/ipf/ip_nat6.c
1685
nat->nat_hv[0] = hv;
usr/src/uts/common/inet/ipf/ip_nat6.c
1688
(*natp)->nat_phnext[0] = &nat->nat_hnext[0];
usr/src/uts/common/inet/ipf/ip_nat6.c
1689
nat->nat_phnext[0] = natp;
usr/src/uts/common/inet/ipf/ip_nat6.c
1690
nat->nat_hnext[0] = *natp;
usr/src/uts/common/inet/ipf/ip_nat6.c
1691
*natp = nat;
usr/src/uts/common/inet/ipf/ip_nat6.c
1694
hv = NAT_HASH_FN6(&nat->nat_outip6, nat->nat_outport, 0xffffffff);
usr/src/uts/common/inet/ipf/ip_nat6.c
1695
hv = NAT_HASH_FN6(&nat->nat_oip6, hv + nat->nat_oport,
usr/src/uts/common/inet/ipf/ip_nat6.c
1697
nat->nat_hv[1] = hv;
usr/src/uts/common/inet/ipf/ip_nat6.c
1700
(*natp)->nat_phnext[1] = &nat->nat_hnext[1];
usr/src/uts/common/inet/ipf/ip_nat6.c
1701
nat->nat_phnext[1] = natp;
usr/src/uts/common/inet/ipf/ip_nat6.c
1702
nat->nat_hnext[1] = *natp;
usr/src/uts/common/inet/ipf/ip_nat6.c
1703
*natp = nat;
usr/src/uts/common/inet/ipf/ip_nat6.c
1738
nat_t *nat;
usr/src/uts/common/inet/ipf/ip_nat6.c
1772
nat = ifs->ifs_nat_table[0][hv];
usr/src/uts/common/inet/ipf/ip_nat6.c
1773
for (; nat; nat = nat->nat_hnext[0]) {
usr/src/uts/common/inet/ipf/ip_nat6.c
1774
if (nat->nat_v != 6)
usr/src/uts/common/inet/ipf/ip_nat6.c
1777
if (nat->nat_ifps[1] != NULL) {
usr/src/uts/common/inet/ipf/ip_nat6.c
1778
if ((ifp != NULL) && (ifp != nat->nat_ifps[1]))
usr/src/uts/common/inet/ipf/ip_nat6.c
1781
nat->nat_ifps[1] = ifp;
usr/src/uts/common/inet/ipf/ip_nat6.c
1783
nflags = nat->nat_flags;
usr/src/uts/common/inet/ipf/ip_nat6.c
1785
if (IP6_EQ(&nat->nat_inip6, src) &&
usr/src/uts/common/inet/ipf/ip_nat6.c
1786
IP6_EQ(&nat->nat_oip6, dst) &&
usr/src/uts/common/inet/ipf/ip_nat6.c
1788
(p == nat->nat_p))) {
usr/src/uts/common/inet/ipf/ip_nat6.c
1793
if (nat->nat_call[1] != fin->fin_data[0])
usr/src/uts/common/inet/ipf/ip_nat6.c
1799
if (nat->nat_oport != dport)
usr/src/uts/common/inet/ipf/ip_nat6.c
1801
if (nat->nat_inport != sport)
usr/src/uts/common/inet/ipf/ip_nat6.c
1809
ipn = nat->nat_ptr;
usr/src/uts/common/inet/ipf/ip_nat6.c
1810
if ((ipn != NULL) && (nat->nat_aps != NULL))
usr/src/uts/common/inet/ipf/ip_nat6.c
1811
if (appr_match(fin, nat) != 0)
usr/src/uts/common/inet/ipf/ip_nat6.c
1814
return nat;
usr/src/uts/common/inet/ipf/ip_nat6.c
1838
nat = ifs->ifs_nat_table[0][hv];
usr/src/uts/common/inet/ipf/ip_nat6.c
1839
for (; nat; nat = nat->nat_hnext[0]) {
usr/src/uts/common/inet/ipf/ip_nat6.c
1840
if (nat->nat_v != 6)
usr/src/uts/common/inet/ipf/ip_nat6.c
1843
if (nat->nat_ifps[1] != NULL) {
usr/src/uts/common/inet/ipf/ip_nat6.c
1844
if ((ifp != NULL) && (ifp != nat->nat_ifps[1]))
usr/src/uts/common/inet/ipf/ip_nat6.c
1847
nat->nat_ifps[1] = ifp;
usr/src/uts/common/inet/ipf/ip_nat6.c
1849
if (nat->nat_p != fin->fin_p)
usr/src/uts/common/inet/ipf/ip_nat6.c
1851
if (IP6_NEQ(&nat->nat_inip6, src) ||
usr/src/uts/common/inet/ipf/ip_nat6.c
1852
IP6_NEQ(&nat->nat_oip6, dst))
usr/src/uts/common/inet/ipf/ip_nat6.c
1855
nflags = nat->nat_flags;
usr/src/uts/common/inet/ipf/ip_nat6.c
1859
if (nat_wildok(nat, (int)sport, (int)dport, nflags,
usr/src/uts/common/inet/ipf/ip_nat6.c
1864
nat = fr_natclone(fin, nat);
usr/src/uts/common/inet/ipf/ip_nat6.c
1865
if (nat == NULL)
usr/src/uts/common/inet/ipf/ip_nat6.c
1872
nat->nat_inport = sport;
usr/src/uts/common/inet/ipf/ip_nat6.c
1873
nat->nat_oport = dport;
usr/src/uts/common/inet/ipf/ip_nat6.c
1874
if (nat->nat_outport == 0)
usr/src/uts/common/inet/ipf/ip_nat6.c
1875
nat->nat_outport = sport;
usr/src/uts/common/inet/ipf/ip_nat6.c
1876
nat->nat_flags &= ~(SI_W_DPORT|SI_W_SPORT);
usr/src/uts/common/inet/ipf/ip_nat6.c
1877
nat6_tabmove(nat, ifs);
usr/src/uts/common/inet/ipf/ip_nat6.c
1884
return nat;
usr/src/uts/common/inet/ipf/ip_nat6.c
1902
nat_t *nat;
usr/src/uts/common/inet/ipf/ip_nat6.c
1926
if ((nat = nat6_inlookup(&fi, np->nl_flags, fi.fin_p,
usr/src/uts/common/inet/ipf/ip_nat6.c
1928
np->nl_inipaddr = nat->nat_inip6;
usr/src/uts/common/inet/ipf/ip_nat6.c
1929
np->nl_inport = nat->nat_inport;
usr/src/uts/common/inet/ipf/ip_nat6.c
1936
if ((nat = nat6_outlookup(&fi, np->nl_flags, fi.fin_p,
usr/src/uts/common/inet/ipf/ip_nat6.c
1941
fin.fin_p = nat->nat_p;
usr/src/uts/common/inet/ipf/ip_nat6.c
1942
fin.fin_data[0] = ntohs(nat->nat_outport);
usr/src/uts/common/inet/ipf/ip_nat6.c
1943
fin.fin_data[1] = ntohs(nat->nat_oport);
usr/src/uts/common/inet/ipf/ip_nat6.c
1946
&nat->nat_outip6.in6,
usr/src/uts/common/inet/ipf/ip_nat6.c
1947
&nat->nat_oip6.in6) != NULL) {
usr/src/uts/common/inet/ipf/ip_nat6.c
1952
np->nl_realip6 = nat->nat_outip6.in6;
usr/src/uts/common/inet/ipf/ip_nat6.c
1953
np->nl_realport = nat->nat_outport;
usr/src/uts/common/inet/ipf/ip_nat6.c
1957
return nat;
usr/src/uts/common/inet/ipf/ip_nat6.c
2040
nat_t *nat;
usr/src/uts/common/inet/ipf/ip_nat6.c
2087
(nat = nat6_icmperror(fin, &nflags, NAT_OUTBOUND)))
usr/src/uts/common/inet/ipf/ip_nat6.c
2089
else if ((fin->fin_flx & FI_FRAG) && (nat = fr_nat_knownfrag(fin)))
usr/src/uts/common/inet/ipf/ip_nat6.c
2091
else if ((nat = nat6_outlookup(fin, nflags|NAT_SEARCH,
usr/src/uts/common/inet/ipf/ip_nat6.c
2094
nflags = nat->nat_flags;
usr/src/uts/common/inet/ipf/ip_nat6.c
2146
if (nat = nat6_new(fin, np, NULL, nflags,
usr/src/uts/common/inet/ipf/ip_nat6.c
2174
if (nat != NULL) {
usr/src/uts/common/inet/ipf/ip_nat6.c
2175
rval = fr_nat6out(fin, nat, natadd, nflags);
usr/src/uts/common/inet/ipf/ip_nat6.c
2201
int fr_nat6out(fin, nat, natadd, nflags)
usr/src/uts/common/inet/ipf/ip_nat6.c
2203
nat_t *nat;
usr/src/uts/common/inet/ipf/ip_nat6.c
2221
np = nat->nat_ptr;
usr/src/uts/common/inet/ipf/ip_nat6.c
2224
(void) fr_nat_newfrag(fin, 0, nat);
usr/src/uts/common/inet/ipf/ip_nat6.c
2226
MUTEX_ENTER(&nat->nat_lock);
usr/src/uts/common/inet/ipf/ip_nat6.c
2227
nat->nat_bytes[1] += fin->fin_plen;
usr/src/uts/common/inet/ipf/ip_nat6.c
2228
nat->nat_pkts[1]++;
usr/src/uts/common/inet/ipf/ip_nat6.c
2229
MUTEX_EXIT(&nat->nat_lock);
usr/src/uts/common/inet/ipf/ip_nat6.c
2232
if ((nat->nat_outport != 0) && (nflags & IPN_TCPUDP)) {
usr/src/uts/common/inet/ipf/ip_nat6.c
2235
tcp->th_sport = nat->nat_outport;
usr/src/uts/common/inet/ipf/ip_nat6.c
2236
fin->fin_data[0] = ntohs(nat->nat_outport);
usr/src/uts/common/inet/ipf/ip_nat6.c
2239
if ((nat->nat_outport != 0) && (nflags & IPN_ICMPQUERY)) {
usr/src/uts/common/inet/ipf/ip_nat6.c
2241
icmp6->icmp6_id = nat->nat_outport;
usr/src/uts/common/inet/ipf/ip_nat6.c
2244
csump = nat_proto(fin, nat, nflags);
usr/src/uts/common/inet/ipf/ip_nat6.c
2247
fin->fin_ip6->ip6_src = nat->nat_outip6.in6;
usr/src/uts/common/inet/ipf/ip_nat6.c
2248
fin->fin_src6 = nat->nat_outip6;
usr/src/uts/common/inet/ipf/ip_nat6.c
2250
nat_update(fin, nat, np);
usr/src/uts/common/inet/ipf/ip_nat6.c
2259
if (nat->nat_dir == NAT_OUTBOUND)
usr/src/uts/common/inet/ipf/ip_nat6.c
2260
fix_outcksum(csump, nat->nat_sumd[1]);
usr/src/uts/common/inet/ipf/ip_nat6.c
2262
fix_incksum(csump, nat->nat_sumd[1]);
usr/src/uts/common/inet/ipf/ip_nat6.c
2264
if (nat->nat_dir == NAT_OUTBOUND)
usr/src/uts/common/inet/ipf/ip_nat6.c
2265
fix_outcksum(csump, nat->nat_sumd[0]);
usr/src/uts/common/inet/ipf/ip_nat6.c
2267
fix_incksum(csump, nat->nat_sumd[0]);
usr/src/uts/common/inet/ipf/ip_nat6.c
2271
ipfsync_update(SMC_NAT, fin, nat->nat_sync);
usr/src/uts/common/inet/ipf/ip_nat6.c
2284
i = appr_check(fin, nat);
usr/src/uts/common/inet/ipf/ip_nat6.c
2321
nat_t *nat;
usr/src/uts/common/inet/ipf/ip_nat6.c
2371
(nat = nat6_icmperror(fin, &nflags, NAT_INBOUND)))
usr/src/uts/common/inet/ipf/ip_nat6.c
2373
else if ((fin->fin_flx & FI_FRAG) && (nat = fr_nat_knownfrag(fin)))
usr/src/uts/common/inet/ipf/ip_nat6.c
2375
else if ((nat = nat6_inlookup(fin, nflags|NAT_SEARCH, (u_int)fin->fin_p,
usr/src/uts/common/inet/ipf/ip_nat6.c
2377
nflags = nat->nat_flags;
usr/src/uts/common/inet/ipf/ip_nat6.c
2428
nat = nat6_new(fin, np, NULL, nflags, NAT_INBOUND);
usr/src/uts/common/inet/ipf/ip_nat6.c
2429
if (nat != NULL) {
usr/src/uts/common/inet/ipf/ip_nat6.c
2456
if (nat != NULL) {
usr/src/uts/common/inet/ipf/ip_nat6.c
2457
rval = fr_nat6in(fin, nat, natadd, nflags);
usr/src/uts/common/inet/ipf/ip_nat6.c
2484
int fr_nat6in(fin, nat, natadd, nflags)
usr/src/uts/common/inet/ipf/ip_nat6.c
2486
nat_t *nat;
usr/src/uts/common/inet/ipf/ip_nat6.c
2502
np = nat->nat_ptr;
usr/src/uts/common/inet/ipf/ip_nat6.c
2503
fin->fin_fr = nat->nat_fr;
usr/src/uts/common/inet/ipf/ip_nat6.c
2506
(void) fr_nat_newfrag(fin, 0, nat);
usr/src/uts/common/inet/ipf/ip_nat6.c
2522
i = appr_check(fin, nat);
usr/src/uts/common/inet/ipf/ip_nat6.c
2531
ipfsync_update(SMC_NAT, fin, nat->nat_sync);
usr/src/uts/common/inet/ipf/ip_nat6.c
2534
MUTEX_ENTER(&nat->nat_lock);
usr/src/uts/common/inet/ipf/ip_nat6.c
2535
nat->nat_bytes[0] += fin->fin_plen;
usr/src/uts/common/inet/ipf/ip_nat6.c
2536
nat->nat_pkts[0]++;
usr/src/uts/common/inet/ipf/ip_nat6.c
2537
MUTEX_EXIT(&nat->nat_lock);
usr/src/uts/common/inet/ipf/ip_nat6.c
2539
fin->fin_ip6->ip6_dst = nat->nat_inip6.in6;
usr/src/uts/common/inet/ipf/ip_nat6.c
2540
fin->fin_dst6 = nat->nat_inip6;
usr/src/uts/common/inet/ipf/ip_nat6.c
2546
if ((nat->nat_inport != 0) && (nflags & IPN_TCPUDP)) {
usr/src/uts/common/inet/ipf/ip_nat6.c
2547
tcp->th_dport = nat->nat_inport;
usr/src/uts/common/inet/ipf/ip_nat6.c
2548
fin->fin_data[1] = ntohs(nat->nat_inport);
usr/src/uts/common/inet/ipf/ip_nat6.c
2552
if ((nat->nat_inport != 0) && (nflags & IPN_ICMPQUERY)) {
usr/src/uts/common/inet/ipf/ip_nat6.c
2555
icmp6->icmp6_id = nat->nat_inport;
usr/src/uts/common/inet/ipf/ip_nat6.c
2558
csump = nat_proto(fin, nat, nflags);
usr/src/uts/common/inet/ipf/ip_nat6.c
2561
nat_update(fin, nat, np);
usr/src/uts/common/inet/ipf/ip_nat6.c
2568
if (nat->nat_dir == NAT_OUTBOUND)
usr/src/uts/common/inet/ipf/ip_nat6.c
2569
fix_incksum(csump, nat->nat_sumd[0]);
usr/src/uts/common/inet/ipf/ip_nat6.c
2571
fix_outcksum(csump, nat->nat_sumd[0]);
usr/src/uts/common/inet/ipf/ip_nat6.c
2586
if (nat->nat_dir == NAT_OUTBOUND)
usr/src/uts/common/inet/ipf/ip_nat6.c
2587
fix_outcksum(csump, nat->nat_sumd[1]);
usr/src/uts/common/inet/ipf/ip_nat6.c
2589
fix_incksum(csump, nat->nat_sumd[1]);
usr/src/uts/common/inet/ipf/ip_nat6.c
280
static INLINE int nat6_newmap(fin, nat, ni)
usr/src/uts/common/inet/ipf/ip_nat6.c
282
nat_t *nat;
usr/src/uts/common/inet/ipf/ip_nat6.c
328
nat->nat_hm = hm;
usr/src/uts/common/inet/ipf/ip_nat6.c
510
nat->nat_inip6 = fin->fin_src6;
usr/src/uts/common/inet/ipf/ip_nat6.c
511
nat->nat_outip6 = in;
usr/src/uts/common/inet/ipf/ip_nat6.c
512
nat->nat_oip6 = fin->fin_dst6;
usr/src/uts/common/inet/ipf/ip_nat6.c
513
if (nat->nat_hm == NULL)
usr/src/uts/common/inet/ipf/ip_nat6.c
514
nat->nat_hm = nat6_hostmap(np, &fin->fin_src6, &fin->fin_dst6,
usr/src/uts/common/inet/ipf/ip_nat6.c
515
&nat->nat_outip6, 0, ifs);
usr/src/uts/common/inet/ipf/ip_nat6.c
518
nat->nat_inport = sport;
usr/src/uts/common/inet/ipf/ip_nat6.c
519
nat->nat_outport = port; /* sport */
usr/src/uts/common/inet/ipf/ip_nat6.c
520
nat->nat_oport = dport;
usr/src/uts/common/inet/ipf/ip_nat6.c
524
nat->nat_inport = port;
usr/src/uts/common/inet/ipf/ip_nat6.c
525
nat->nat_outport = port;
usr/src/uts/common/inet/ipf/ip_nat6.c
546
static INLINE int nat6_newrdr(fin, nat, ni)
usr/src/uts/common/inet/ipf/ip_nat6.c
548
nat_t *nat;
usr/src/uts/common/inet/ipf/ip_nat6.c
693
nat->nat_inip6 = in;
usr/src/uts/common/inet/ipf/ip_nat6.c
694
nat->nat_outip6 = fin->fin_dst6;
usr/src/uts/common/inet/ipf/ip_nat6.c
695
nat->nat_oip6 = fin->fin_src6;
usr/src/uts/common/inet/ipf/ip_nat6.c
696
if ((nat->nat_hm == NULL) && ((np->in_flags & IPN_STICKY) != 0))
usr/src/uts/common/inet/ipf/ip_nat6.c
697
nat->nat_hm = nat6_hostmap(np, &fin->fin_src6,
usr/src/uts/common/inet/ipf/ip_nat6.c
704
nat->nat_inport = nport;
usr/src/uts/common/inet/ipf/ip_nat6.c
705
nat->nat_outport = dport;
usr/src/uts/common/inet/ipf/ip_nat6.c
706
nat->nat_oport = sport;
usr/src/uts/common/inet/ipf/ip_nat6.c
710
nat->nat_inport = nport;
usr/src/uts/common/inet/ipf/ip_nat6.c
711
nat->nat_outport = nport;
usr/src/uts/common/inet/ipf/ip_nat6.c
745
nat_t *nat, *natl;
usr/src/uts/common/inet/ipf/ip_nat6.c
772
KMALLOC(nat, nat_t *);
usr/src/uts/common/inet/ipf/ip_nat6.c
773
if (nat == NULL) {
usr/src/uts/common/inet/ipf/ip_nat6.c
812
bzero((char *)nat, sizeof (*nat));
usr/src/uts/common/inet/ipf/ip_nat6.c
813
nat->nat_flags = flags;
usr/src/uts/common/inet/ipf/ip_nat6.c
814
nat->nat_redir = np->in_redir;
usr/src/uts/common/inet/ipf/ip_nat6.c
832
KFREE(nat);
usr/src/uts/common/inet/ipf/ip_nat6.c
833
nat = natl;
usr/src/uts/common/inet/ipf/ip_nat6.c
837
move = nat6_newmap(fin, nat, &ni);
usr/src/uts/common/inet/ipf/ip_nat6.c
849
KFREE(nat);
usr/src/uts/common/inet/ipf/ip_nat6.c
850
nat = natl;
usr/src/uts/common/inet/ipf/ip_nat6.c
854
move = nat6_newrdr(fin, nat, &ni);
usr/src/uts/common/inet/ipf/ip_nat6.c
871
if (nat6_finalise(fin, nat, &ni, tcp, natsave, direction) == -1) {
usr/src/uts/common/inet/ipf/ip_nat6.c
875
nat_calc_chksum_diffs(nat);
usr/src/uts/common/inet/ipf/ip_nat6.c
882
if ((hm = nat->nat_hm) != NULL)
usr/src/uts/common/inet/ipf/ip_nat6.c
884
KFREE(nat);
usr/src/uts/common/inet/ipf/ip_nat6.c
885
nat = NULL;
usr/src/uts/common/inet/ipf/ip_nat6.c
890
return nat;
usr/src/uts/common/inet/ipf/ip_nat6.c
907
static INLINE int nat6_finalise(fin, nat, ni, tcp, natsave, direction)
usr/src/uts/common/inet/ipf/ip_nat6.c
909
nat_t *nat;
usr/src/uts/common/inet/ipf/ip_nat6.c
921
COPYIFNAME(fin->fin_ifp, nat->nat_ifnames[0], fin->fin_v);
usr/src/uts/common/inet/ipf/ip_nat6.c
924
if ((nat->nat_flags & SI_CLONE) == 0)
usr/src/uts/common/inet/ipf/ip_nat6.c
925
nat->nat_sync = ipfsync_new(SMC_NAT, fin, nat);
usr/src/uts/common/inet/ipf/ip_nat6.c
928
nat->nat_me = natsave;
usr/src/uts/common/inet/ipf/ip_nat6.c
929
nat->nat_dir = direction;
usr/src/uts/common/inet/ipf/ip_nat6.c
930
nat->nat_ifps[0] = np->in_ifps[0];
usr/src/uts/common/inet/ipf/ip_nat6.c
931
nat->nat_ifps[1] = np->in_ifps[1];
usr/src/uts/common/inet/ipf/ip_nat6.c
932
nat->nat_ptr = np;
usr/src/uts/common/inet/ipf/ip_nat6.c
933
nat->nat_p = fin->fin_p;
usr/src/uts/common/inet/ipf/ip_nat6.c
934
nat->nat_v = fin->fin_v;
usr/src/uts/common/inet/ipf/ip_nat6.c
935
nat->nat_mssclamp = np->in_mssclamp;
usr/src/uts/common/inet/ipf/ip_nat6.c
937
nat->nat_fr = fr;
usr/src/uts/common/inet/ipf/ip_nat6.c
938
nat->nat_v = 6;
usr/src/uts/common/inet/ipf/ip_nat6.c
942
if (appr_new(fin, nat) == -1)
usr/src/uts/common/inet/ipf/ip_nat6.c
946
if (nat6_insert(nat, fin->fin_rev, ifs) == 0) {
usr/src/uts/common/inet/ipf/ip_nat6.c
948
nat_log(nat, (u_int)np->in_redir, ifs);
usr/src/uts/common/inet/ipf/ip_nat6.c
975
int nat6_insert(nat, rev, ifs)
usr/src/uts/common/inet/ipf/ip_nat6.c
976
nat_t *nat;
usr/src/uts/common/inet/ipf/ip_nat6.c
987
if ((nat->nat_flags & (SI_W_SPORT|SI_W_DPORT)) == 0) {
usr/src/uts/common/inet/ipf/ip_nat6.c
988
hv1 = NAT_HASH_FN6(&nat->nat_inip6, nat->nat_inport,
usr/src/uts/common/inet/ipf/ip_nat6.c
990
hv1 = NAT_HASH_FN6(&nat->nat_oip6, hv1 + nat->nat_oport,
usr/src/uts/common/inet/ipf/ip_nat6.c
992
hv2 = NAT_HASH_FN6(&nat->nat_outip6, nat->nat_outport,
usr/src/uts/common/inet/ipf/ip_nat6.c
994
hv2 = NAT_HASH_FN6(&nat->nat_oip6, hv2 + nat->nat_oport,
usr/src/uts/common/inet/ipf/ip_nat6.c
997
hv1 = NAT_HASH_FN6(&nat->nat_inip6, 0, 0xffffffff);
usr/src/uts/common/inet/ipf/ip_nat6.c
998
hv1 = NAT_HASH_FN6(&nat->nat_oip6, hv1,
usr/src/uts/common/inet/ipf/ip_proxy.c
284
int appr_ok(fin, tcp, nat)
usr/src/uts/common/inet/ipf/ip_proxy.c
287
ipnat_t *nat;
usr/src/uts/common/inet/ipf/ip_proxy.c
289
aproxy_t *apr = nat->in_apr;
usr/src/uts/common/inet/ipf/ip_proxy.c
290
u_short dport = nat->in_dport;
usr/src/uts/common/inet/ipf/ip_proxy.c
357
int appr_match(fin, nat)
usr/src/uts/common/inet/ipf/ip_proxy.c
359
nat_t *nat;
usr/src/uts/common/inet/ipf/ip_proxy.c
365
ipn = nat->nat_ptr;
usr/src/uts/common/inet/ipf/ip_proxy.c
368
(u_long)fin, (u_long)nat, (u_long)nat->nat_aps,
usr/src/uts/common/inet/ipf/ip_proxy.c
387
result = (*apr->apr_match)(fin, nat->nat_aps, nat, apr->apr_private);
usr/src/uts/common/inet/ipf/ip_proxy.c
403
int appr_new(fin, nat)
usr/src/uts/common/inet/ipf/ip_proxy.c
405
nat_t *nat;
usr/src/uts/common/inet/ipf/ip_proxy.c
412
printf("appr_new(%lx,%lx) \n", (u_long)fin, (u_long)nat);
usr/src/uts/common/inet/ipf/ip_proxy.c
414
if ((nat->nat_ptr == NULL) || (nat->nat_aps != NULL)) {
usr/src/uts/common/inet/ipf/ip_proxy.c
417
(u_long)nat->nat_ptr, (u_long)nat->nat_aps);
usr/src/uts/common/inet/ipf/ip_proxy.c
421
apr = nat->nat_ptr->in_apr;
usr/src/uts/common/inet/ipf/ip_proxy.c
445
if ((*apr->apr_new)(fin, aps, nat, apr->apr_private) == -1) {
usr/src/uts/common/inet/ipf/ip_proxy.c
455
aps->aps_nat = nat;
usr/src/uts/common/inet/ipf/ip_proxy.c
458
nat->nat_aps = aps;
usr/src/uts/common/inet/ipf/ip_proxy.c
470
int appr_check(fin, nat)
usr/src/uts/common/inet/ipf/ip_proxy.c
472
nat_t *nat;
usr/src/uts/common/inet/ipf/ip_proxy.c
518
aps = nat->nat_aps;
usr/src/uts/common/inet/ipf/ip_proxy.c
563
err = (*apr->apr_outpkt)(fin, aps, nat, apr->apr_private);
usr/src/uts/common/inet/ipf/ip_proxy.c
566
err = (*apr->apr_inpkt)(fin, aps, nat, apr->apr_private);
usr/src/uts/common/inet/ipf/ip_proxy.c
579
nat->nat_aps = NULL;
usr/src/uts/common/inet/ipf/ipf.h
211
extern char *getnattype __P((struct nat *, int));
usr/src/uts/common/inet/ipf/ipf.h
300
extern void printactivenat __P((struct nat *, int, int));
usr/src/uts/common/inet/ipf/netinet/ip_frag.h
62
extern int fr_nat_newfrag __P((fr_info_t *, u_32_t, struct nat *));
usr/src/uts/common/inet/ipf/netinet/ip_ftp_pxy.c
1032
int ippr_ftp_process(fin, nat, ftp, rv, ifsftp)
usr/src/uts/common/inet/ipf/netinet/ip_ftp_pxy.c
1034
nat_t *nat;
usr/src/uts/common/inet/ipf/netinet/ip_ftp_pxy.c
1073
aps = nat->nat_aps;
usr/src/uts/common/inet/ipf/netinet/ip_ftp_pxy.c
1281
inc += ippr_ftp_server(fin, ip, nat,
usr/src/uts/common/inet/ipf/netinet/ip_ftp_pxy.c
1284
inc += ippr_ftp_client(fin, ip, nat,
usr/src/uts/common/inet/ipf/netinet/ip_ftp_pxy.c
1354
int ippr_ftp_out(fin, aps, nat, private)
usr/src/uts/common/inet/ipf/netinet/ip_ftp_pxy.c
1357
nat_t *nat;
usr/src/uts/common/inet/ipf/netinet/ip_ftp_pxy.c
1367
rev = (nat->nat_dir == NAT_OUTBOUND) ? 0 : 1;
usr/src/uts/common/inet/ipf/netinet/ip_ftp_pxy.c
1371
return ippr_ftp_process(fin, nat, ftp, rev, (ifs_ftppxy_t *)private);
usr/src/uts/common/inet/ipf/netinet/ip_ftp_pxy.c
1375
int ippr_ftp_in(fin, aps, nat, private)
usr/src/uts/common/inet/ipf/netinet/ip_ftp_pxy.c
1378
nat_t *nat;
usr/src/uts/common/inet/ipf/netinet/ip_ftp_pxy.c
1388
rev = (nat->nat_dir == NAT_OUTBOUND) ? 0 : 1;
usr/src/uts/common/inet/ipf/netinet/ip_ftp_pxy.c
1392
return ippr_ftp_process(fin, nat, ftp, 1 - rev, (ifs_ftppxy_t *)private);
usr/src/uts/common/inet/ipf/netinet/ip_ftp_pxy.c
1427
int ippr_ftp_epsv(fin, ip, nat, f, dlen, ifsftp)
usr/src/uts/common/inet/ipf/netinet/ip_ftp_pxy.c
1430
nat_t *nat;
usr/src/uts/common/inet/ipf/netinet/ip_ftp_pxy.c
1490
return ippr_ftp_pasvreply(fin, ip, nat, f, (u_int)ap, newbuf, s,
usr/src/uts/common/inet/ipf/netinet/ip_ftp_pxy.c
153
int ippr_ftp_new(fin, aps, nat, private)
usr/src/uts/common/inet/ipf/netinet/ip_ftp_pxy.c
156
nat_t *nat;
usr/src/uts/common/inet/ipf/netinet/ip_ftp_pxy.c
167
nat = nat; /* LINT */
usr/src/uts/common/inet/ipf/netinet/ip_ftp_pxy.c
185
int ippr_ftp_port(fin, ip, nat, f, dlen, ifsftp)
usr/src/uts/common/inet/ipf/netinet/ip_ftp_pxy.c
188
nat_t *nat;
usr/src/uts/common/inet/ipf/netinet/ip_ftp_pxy.c
244
if (((nat->nat_dir == NAT_OUTBOUND) &&
usr/src/uts/common/inet/ipf/netinet/ip_ftp_pxy.c
245
(a1 != ntohl(nat->nat_inip.s_addr))) ||
usr/src/uts/common/inet/ipf/netinet/ip_ftp_pxy.c
246
((nat->nat_dir == NAT_INBOUND) &&
usr/src/uts/common/inet/ipf/netinet/ip_ftp_pxy.c
247
(a1 != ntohl(nat->nat_oip.s_addr)))) {
usr/src/uts/common/inet/ipf/netinet/ip_ftp_pxy.c
291
if (nat->nat_dir == NAT_INBOUND)
usr/src/uts/common/inet/ipf/netinet/ip_ftp_pxy.c
292
a1 = ntohl(nat->nat_oip.s_addr);
usr/src/uts/common/inet/ipf/netinet/ip_ftp_pxy.c
355
if (nat->nat_dir == NAT_OUTBOUND)
usr/src/uts/common/inet/ipf/netinet/ip_ftp_pxy.c
356
nat2 = nat_outlookup(&fi, NAT_SEARCH|IPN_TCP, nat->nat_p,
usr/src/uts/common/inet/ipf/netinet/ip_ftp_pxy.c
357
nat->nat_inip, nat->nat_oip);
usr/src/uts/common/inet/ipf/netinet/ip_ftp_pxy.c
359
nat2 = nat_inlookup(&fi, NAT_SEARCH|IPN_TCP, nat->nat_p,
usr/src/uts/common/inet/ipf/netinet/ip_ftp_pxy.c
360
nat->nat_inip, nat->nat_oip);
usr/src/uts/common/inet/ipf/netinet/ip_ftp_pxy.c
377
fi.fin_out = nat->nat_dir;
usr/src/uts/common/inet/ipf/netinet/ip_ftp_pxy.c
381
if (nat->nat_dir == NAT_OUTBOUND) {
usr/src/uts/common/inet/ipf/netinet/ip_ftp_pxy.c
382
fi.fin_fi.fi_saddr = nat->nat_inip.s_addr;
usr/src/uts/common/inet/ipf/netinet/ip_ftp_pxy.c
383
ip->ip_src = nat->nat_inip;
usr/src/uts/common/inet/ipf/netinet/ip_ftp_pxy.c
384
} else if (nat->nat_dir == NAT_INBOUND) {
usr/src/uts/common/inet/ipf/netinet/ip_ftp_pxy.c
385
fi.fin_fi.fi_saddr = nat->nat_oip.s_addr;
usr/src/uts/common/inet/ipf/netinet/ip_ftp_pxy.c
386
ip->ip_src = nat->nat_oip;
usr/src/uts/common/inet/ipf/netinet/ip_ftp_pxy.c
390
if (nat->nat_dir == NAT_INBOUND)
usr/src/uts/common/inet/ipf/netinet/ip_ftp_pxy.c
392
nat2 = nat_new(&fi, nat->nat_ptr, NULL, flags, nat->nat_dir);
usr/src/uts/common/inet/ipf/netinet/ip_ftp_pxy.c
396
nat_update(&fi, nat2, nat->nat_ptr);
usr/src/uts/common/inet/ipf/netinet/ip_ftp_pxy.c
398
if (nat->nat_dir == NAT_INBOUND) {
usr/src/uts/common/inet/ipf/netinet/ip_ftp_pxy.c
399
fi.fin_fi.fi_daddr = nat->nat_inip.s_addr;
usr/src/uts/common/inet/ipf/netinet/ip_ftp_pxy.c
400
ip->ip_dst = nat->nat_inip;
usr/src/uts/common/inet/ipf/netinet/ip_ftp_pxy.c
410
nat_update(&fi, nat2, nat->nat_ptr);
usr/src/uts/common/inet/ipf/netinet/ip_ftp_pxy.c
425
int ippr_ftp_client(fin, ip, nat, ftp, dlen, ifsftp)
usr/src/uts/common/inet/ipf/netinet/ip_ftp_pxy.c
427
nat_t *nat;
usr/src/uts/common/inet/ipf/netinet/ip_ftp_pxy.c
485
inc = ippr_ftp_port(fin, ip, nat, f, dlen, ifsftp);
usr/src/uts/common/inet/ipf/netinet/ip_ftp_pxy.c
488
inc = ippr_ftp_port(fin, ip, nat, f, dlen, ifsftp);
usr/src/uts/common/inet/ipf/netinet/ip_ftp_pxy.c
498
int ippr_ftp_pasv(fin, ip, nat, ftp, dlen, ifsftp)
usr/src/uts/common/inet/ipf/netinet/ip_ftp_pxy.c
501
nat_t *nat;
usr/src/uts/common/inet/ipf/netinet/ip_ftp_pxy.c
575
if (((nat->nat_dir == NAT_INBOUND) &&
usr/src/uts/common/inet/ipf/netinet/ip_ftp_pxy.c
576
(a1 != ntohl(nat->nat_inip.s_addr))) ||
usr/src/uts/common/inet/ipf/netinet/ip_ftp_pxy.c
577
((nat->nat_dir == NAT_OUTBOUND) &&
usr/src/uts/common/inet/ipf/netinet/ip_ftp_pxy.c
578
(a1 != ntohl(nat->nat_oip.s_addr)))) {
usr/src/uts/common/inet/ipf/netinet/ip_ftp_pxy.c
613
if (nat->nat_dir == NAT_INBOUND) {
usr/src/uts/common/inet/ipf/netinet/ip_ftp_pxy.c
614
data_ip = nat->nat_outip.s_addr;
usr/src/uts/common/inet/ipf/netinet/ip_ftp_pxy.c
633
return ippr_ftp_pasvreply(fin, ip, nat, f, (a5 << 8 | a6),
usr/src/uts/common/inet/ipf/netinet/ip_ftp_pxy.c
637
int ippr_ftp_pasvreply(fin, ip, nat, f, port, newmsg, s, data_ip, ifsftp)
usr/src/uts/common/inet/ipf/netinet/ip_ftp_pxy.c
640
nat_t *nat;
usr/src/uts/common/inet/ipf/netinet/ip_ftp_pxy.c
712
if (nat->nat_dir == NAT_OUTBOUND)
usr/src/uts/common/inet/ipf/netinet/ip_ftp_pxy.c
714
nat->nat_p, nat->nat_inip, nat->nat_oip);
usr/src/uts/common/inet/ipf/netinet/ip_ftp_pxy.c
717
nat->nat_p, nat->nat_inip, nat->nat_oip);
usr/src/uts/common/inet/ipf/netinet/ip_ftp_pxy.c
735
fi.fin_out = nat->nat_dir;
usr/src/uts/common/inet/ipf/netinet/ip_ftp_pxy.c
739
if (nat->nat_dir == NAT_OUTBOUND) {
usr/src/uts/common/inet/ipf/netinet/ip_ftp_pxy.c
741
fi.fin_fi.fi_saddr = nat->nat_inip.s_addr;
usr/src/uts/common/inet/ipf/netinet/ip_ftp_pxy.c
743
ip->ip_src = nat->nat_inip;
usr/src/uts/common/inet/ipf/netinet/ip_ftp_pxy.c
744
} else if (nat->nat_dir == NAT_INBOUND) {
usr/src/uts/common/inet/ipf/netinet/ip_ftp_pxy.c
745
fi.fin_fi.fi_saddr = nat->nat_oip.s_addr;
usr/src/uts/common/inet/ipf/netinet/ip_ftp_pxy.c
746
fi.fin_fi.fi_daddr = nat->nat_outip.s_addr;
usr/src/uts/common/inet/ipf/netinet/ip_ftp_pxy.c
747
ip->ip_src = nat->nat_oip;
usr/src/uts/common/inet/ipf/netinet/ip_ftp_pxy.c
748
ip->ip_dst = nat->nat_outip;
usr/src/uts/common/inet/ipf/netinet/ip_ftp_pxy.c
753
if (nat->nat_dir == NAT_INBOUND)
usr/src/uts/common/inet/ipf/netinet/ip_ftp_pxy.c
755
nat2 = nat_new(&fi, nat->nat_ptr, NULL, nflags, nat->nat_dir);
usr/src/uts/common/inet/ipf/netinet/ip_ftp_pxy.c
758
nat_update(&fi, nat2, nat->nat_ptr);
usr/src/uts/common/inet/ipf/netinet/ip_ftp_pxy.c
760
if (nat->nat_dir == NAT_INBOUND) {
usr/src/uts/common/inet/ipf/netinet/ip_ftp_pxy.c
761
fi.fin_fi.fi_daddr = nat->nat_inip.s_addr;
usr/src/uts/common/inet/ipf/netinet/ip_ftp_pxy.c
762
ip->ip_dst = nat->nat_inip;
usr/src/uts/common/inet/ipf/netinet/ip_ftp_pxy.c
773
nat_update(&fi, nat2, nat->nat_ptr);
usr/src/uts/common/inet/ipf/netinet/ip_ftp_pxy.c
788
int ippr_ftp_server(fin, ip, nat, ftp, dlen, ifsftp)
usr/src/uts/common/inet/ipf/netinet/ip_ftp_pxy.c
791
nat_t *nat;
usr/src/uts/common/inet/ipf/netinet/ip_ftp_pxy.c
811
inc = ippr_ftp_pasv(fin, ip, nat, ftp, dlen, ifsftp);
usr/src/uts/common/inet/ipf/netinet/ip_ftp_pxy.c
813
inc = ippr_ftp_epsv(fin, ip, nat, f, dlen, ifsftp);
usr/src/uts/common/inet/ipf/netinet/ip_ftp_pxy.c
815
inc = ippr_ftp_pasv(fin, ip, nat, ftp, dlen, ifsftp);
usr/src/uts/common/inet/ipf/netinet/ip_ftp_pxy.c
817
inc = ippr_ftp_epsv(fin, ip, nat, f, dlen, ifsftp);
usr/src/uts/common/inet/ipf/netinet/ip_h323_pxy.c
127
int ippr_h323_new(fin, aps, nat, private)
usr/src/uts/common/inet/ipf/netinet/ip_h323_pxy.c
130
nat_t *nat;
usr/src/uts/common/inet/ipf/netinet/ip_h323_pxy.c
134
nat = nat; /* LINT */
usr/src/uts/common/inet/ipf/netinet/ip_h323_pxy.c
178
int ippr_h323_in(fin, aps, nat, private)
usr/src/uts/common/inet/ipf/netinet/ip_h323_pxy.c
181
nat_t *nat;
usr/src/uts/common/inet/ipf/netinet/ip_h323_pxy.c
210
bcopy((caddr_t)nat->nat_ptr, (caddr_t)ipn, sizeof(ipnat_t));
usr/src/uts/common/inet/ipf/netinet/ip_h323_pxy.c
213
ipn->in_inip = nat->nat_inip.s_addr;
usr/src/uts/common/inet/ipf/netinet/ip_h323_pxy.c
247
int ippr_h245_new(fin, aps, nat, private)
usr/src/uts/common/inet/ipf/netinet/ip_h323_pxy.c
250
nat_t *nat;
usr/src/uts/common/inet/ipf/netinet/ip_h323_pxy.c
254
nat = nat; /* LINT */
usr/src/uts/common/inet/ipf/netinet/ip_h323_pxy.c
263
int ippr_h245_out(fin, aps, nat, private)
usr/src/uts/common/inet/ipf/netinet/ip_h323_pxy.c
266
nat_t *nat;
usr/src/uts/common/inet/ipf/netinet/ip_h323_pxy.c
280
ipaddr = nat->nat_inip.s_addr;
usr/src/uts/common/inet/ipf/netinet/ip_h323_pxy.c
297
newip.ip_src = nat->nat_inip;
usr/src/uts/common/inet/ipf/netinet/ip_h323_pxy.c
308
nat2 = nat_new(&fi, nat->nat_ptr, NULL,
usr/src/uts/common/inet/ipf/netinet/ip_h323_pxy.c
317
nat_log(nat2, (u_int)(nat->nat_ptr->in_redir),
usr/src/uts/common/inet/ipf/netinet/ip_ipsec_pxy.c
111
int ippr_ipsec_new(fin, aps, nat, private)
usr/src/uts/common/inet/ipf/netinet/ip_ipsec_pxy.c
114
nat_t *nat;
usr/src/uts/common/inet/ipf/netinet/ip_ipsec_pxy.c
138
if (nat_outlookup(fin, 0, IPPROTO_ESP, nat->nat_inip,
usr/src/uts/common/inet/ipf/netinet/ip_ipsec_pxy.c
163
ipn->in_nip = ntohl(nat->nat_outip.s_addr);
usr/src/uts/common/inet/ipf/netinet/ip_ipsec_pxy.c
165
ipn->in_inip = nat->nat_inip.s_addr;
usr/src/uts/common/inet/ipf/netinet/ip_ipsec_pxy.c
168
ipn->in_outmsk = nat->nat_outip.s_addr;
usr/src/uts/common/inet/ipf/netinet/ip_ipsec_pxy.c
172
bcopy(nat->nat_ptr->in_ifnames[0], ipn->in_ifnames[0],
usr/src/uts/common/inet/ipf/netinet/ip_ipsec_pxy.c
218
int ippr_ipsec_inout(fin, aps, nat, private)
usr/src/uts/common/inet/ipf/netinet/ip_ipsec_pxy.c
221
nat_t *nat;
usr/src/uts/common/inet/ipf/netinet/ip_ipsec_pxy.c
231
if ((fin->fin_out == 1) && (nat->nat_dir == NAT_INBOUND))
usr/src/uts/common/inet/ipf/netinet/ip_ipsec_pxy.c
234
if ((fin->fin_out == 0) && (nat->nat_dir == NAT_OUTBOUND))
usr/src/uts/common/inet/ipf/netinet/ip_ipsec_pxy.c
263
nat->nat_dir);
usr/src/uts/common/inet/ipf/netinet/ip_ipsec_pxy.c
277
ipsec->ipsc_state->is_die = nat->nat_age;
usr/src/uts/common/inet/ipf/netinet/ip_ipsec_pxy.c
300
int ippr_ipsec_match(fin, aps, nat, private)
usr/src/uts/common/inet/ipf/netinet/ip_ipsec_pxy.c
303
nat_t *nat;
usr/src/uts/common/inet/ipf/netinet/ip_ipsec_pxy.c
311
nat = nat; /* LINT */
usr/src/uts/common/inet/ipf/netinet/ip_irc_pxy.c
248
int ippr_irc_new(fin, aps, nat, private)
usr/src/uts/common/inet/ipf/netinet/ip_irc_pxy.c
251
nat_t *nat;
usr/src/uts/common/inet/ipf/netinet/ip_irc_pxy.c
261
nat = nat; /* LINT */
usr/src/uts/common/inet/ipf/netinet/ip_irc_pxy.c
271
int ippr_irc_send(fin, nat, ifsirc)
usr/src/uts/common/inet/ipf/netinet/ip_irc_pxy.c
273
nat_t *nat;
usr/src/uts/common/inet/ipf/netinet/ip_irc_pxy.c
312
irc = nat->nat_aps->aps_data;
usr/src/uts/common/inet/ipf/netinet/ip_irc_pxy.c
320
if (irc->irc_ipnum != ntohl(nat->nat_inip.s_addr))
usr/src/uts/common/inet/ipf/netinet/ip_irc_pxy.c
417
nat2 = nat_outlookup(fin, IPN_TCP, nat->nat_p, nat->nat_inip,
usr/src/uts/common/inet/ipf/netinet/ip_irc_pxy.c
432
ip->ip_src = nat->nat_inip;
usr/src/uts/common/inet/ipf/netinet/ip_irc_pxy.c
433
nat2 = nat_new(&fi, nat->nat_ptr, NULL,
usr/src/uts/common/inet/ipf/netinet/ip_irc_pxy.c
447
int ippr_irc_out(fin, aps, nat, private)
usr/src/uts/common/inet/ipf/netinet/ip_irc_pxy.c
450
nat_t *nat;
usr/src/uts/common/inet/ipf/netinet/ip_irc_pxy.c
454
return ippr_irc_send(fin, nat, (ifs_ircpxy_t *)private);
usr/src/uts/common/inet/ipf/netinet/ip_nat.h
100
struct nat **nat_me;
usr/src/uts/common/inet/ipf/netinet/ip_nat.h
300
struct nat ipn_nat;
usr/src/uts/common/inet/ipf/netinet/ip_nat.h
484
extern int nat_delete __P((struct nat *, int, ipf_stack_t *));
usr/src/uts/common/inet/ipf/netinet/ip_nat.h
494
extern void nat_log __P((struct nat *, u_int, ipf_stack_t *));
usr/src/uts/common/inet/ipf/netinet/ip_nat.h
94
struct nat *nat_next;
usr/src/uts/common/inet/ipf/netinet/ip_nat.h
95
struct nat **nat_pnext;
usr/src/uts/common/inet/ipf/netinet/ip_nat.h
96
struct nat *nat_hnext[2];
usr/src/uts/common/inet/ipf/netinet/ip_nat.h
97
struct nat **nat_phnext[2];
usr/src/uts/common/inet/ipf/netinet/ip_netbios_pxy.c
106
nat = nat; /* LINT */
usr/src/uts/common/inet/ipf/netinet/ip_netbios_pxy.c
93
int ippr_netbios_out(fin, aps, nat, private)
usr/src/uts/common/inet/ipf/netinet/ip_netbios_pxy.c
96
nat_t *nat;
usr/src/uts/common/inet/ipf/netinet/ip_pptp_pxy.c
106
int ippr_pptp_new(fin, aps, nat, private)
usr/src/uts/common/inet/ipf/netinet/ip_pptp_pxy.c
109
nat_t *nat;
usr/src/uts/common/inet/ipf/netinet/ip_pptp_pxy.c
118
if (nat_outlookup(fin, 0, IPPROTO_GRE, nat->nat_inip,
usr/src/uts/common/inet/ipf/netinet/ip_pptp_pxy.c
146
if (nat->nat_dir == NAT_OUTBOUND) {
usr/src/uts/common/inet/ipf/netinet/ip_pptp_pxy.c
147
ipn->in_nip = ntohl(nat->nat_outip.s_addr);
usr/src/uts/common/inet/ipf/netinet/ip_pptp_pxy.c
150
} else if (nat->nat_dir == NAT_INBOUND) {
usr/src/uts/common/inet/ipf/netinet/ip_pptp_pxy.c
152
ipn->in_outip = nat->nat_outip.s_addr;
usr/src/uts/common/inet/ipf/netinet/ip_pptp_pxy.c
155
ipn->in_inip = nat->nat_inip.s_addr;
usr/src/uts/common/inet/ipf/netinet/ip_pptp_pxy.c
160
bcopy(nat->nat_ptr->in_ifnames[0], ipn->in_ifnames[0],
usr/src/uts/common/inet/ipf/netinet/ip_pptp_pxy.c
170
void ippr_pptp_donatstate(fin, nat, pptp, ifspptp)
usr/src/uts/common/inet/ipf/netinet/ip_pptp_pxy.c
172
nat_t *nat;
usr/src/uts/common/inet/ipf/netinet/ip_pptp_pxy.c
192
if ((nat->nat_dir == NAT_OUTBOUND && fin->fin_out) ||
usr/src/uts/common/inet/ipf/netinet/ip_pptp_pxy.c
193
(nat->nat_dir == NAT_INBOUND && !fin->fin_out)) {
usr/src/uts/common/inet/ipf/netinet/ip_pptp_pxy.c
206
if (fin->fin_out && nat->nat_dir == NAT_INBOUND) {
usr/src/uts/common/inet/ipf/netinet/ip_pptp_pxy.c
208
fi.fin_fi.fi_daddr = nat->nat_outip.s_addr;
usr/src/uts/common/inet/ipf/netinet/ip_pptp_pxy.c
209
} else if (!fin->fin_out && nat->nat_dir == NAT_OUTBOUND) {
usr/src/uts/common/inet/ipf/netinet/ip_pptp_pxy.c
210
fi.fin_fi.fi_saddr = nat->nat_inip.s_addr;
usr/src/uts/common/inet/ipf/netinet/ip_pptp_pxy.c
222
NAT_SLAVE, nat->nat_dir);
usr/src/uts/common/inet/ipf/netinet/ip_pptp_pxy.c
236
if (nat->nat_dir == NAT_INBOUND)
usr/src/uts/common/inet/ipf/netinet/ip_pptp_pxy.c
254
int ippr_pptp_nextmessage(fin, nat, pptp, rev, ifspptp)
usr/src/uts/common/inet/ipf/netinet/ip_pptp_pxy.c
256
nat_t *nat;
usr/src/uts/common/inet/ipf/netinet/ip_pptp_pxy.c
361
(void) ippr_pptp_message(fin, nat, pptp, pptps, ifspptp);
usr/src/uts/common/inet/ipf/netinet/ip_pptp_pxy.c
379
int ippr_pptp_message(fin, nat, pptp, pptps, ifspptp)
usr/src/uts/common/inet/ipf/netinet/ip_pptp_pxy.c
381
nat_t *nat;
usr/src/uts/common/inet/ipf/netinet/ip_pptp_pxy.c
391
(void) ippr_pptp_mctl(fin, nat, pptp, pptps, ifspptp);
usr/src/uts/common/inet/ipf/netinet/ip_pptp_pxy.c
404
int ippr_pptp_mctl(fin, nat, pptp, pptps, ifspptp)
usr/src/uts/common/inet/ipf/netinet/ip_pptp_pxy.c
406
nat_t *nat;
usr/src/uts/common/inet/ipf/netinet/ip_pptp_pxy.c
454
ippr_pptp_donatstate(fin, nat, pptp, ifspptp);
usr/src/uts/common/inet/ipf/netinet/ip_pptp_pxy.c
465
ippr_pptp_donatstate(fin, nat, pptp, ifspptp);
usr/src/uts/common/inet/ipf/netinet/ip_pptp_pxy.c
493
int ippr_pptp_inout(fin, aps, nat, private)
usr/src/uts/common/inet/ipf/netinet/ip_pptp_pxy.c
496
nat_t *nat;
usr/src/uts/common/inet/ipf/netinet/ip_pptp_pxy.c
503
if ((fin->fin_out == 1) && (nat->nat_dir == NAT_INBOUND))
usr/src/uts/common/inet/ipf/netinet/ip_pptp_pxy.c
505
else if ((fin->fin_out == 0) && (nat->nat_dir == NAT_OUTBOUND))
usr/src/uts/common/inet/ipf/netinet/ip_pptp_pxy.c
518
return ippr_pptp_nextmessage(fin, nat, (pptp_pxy_t *)aps->aps_data,
usr/src/uts/common/inet/ipf/netinet/ip_proxy.h
111
int (* apr_new) __P((fr_info_t *, ap_session_t *, struct nat *, void *));
usr/src/uts/common/inet/ipf/netinet/ip_proxy.h
113
int (* apr_inpkt) __P((fr_info_t *, ap_session_t *, struct nat *, void *));
usr/src/uts/common/inet/ipf/netinet/ip_proxy.h
114
int (* apr_outpkt) __P((fr_info_t *, ap_session_t *, struct nat *, void *));
usr/src/uts/common/inet/ipf/netinet/ip_proxy.h
115
int (* apr_match) __P((fr_info_t *, ap_session_t *, struct nat *, void *));
usr/src/uts/common/inet/ipf/netinet/ip_proxy.h
35
struct nat;
usr/src/uts/common/inet/ipf/netinet/ip_proxy.h
454
extern int appr_match __P((fr_info_t *, struct nat *));
usr/src/uts/common/inet/ipf/netinet/ip_proxy.h
457
extern int appr_check __P((fr_info_t *, struct nat *));
usr/src/uts/common/inet/ipf/netinet/ip_proxy.h
459
extern int appr_new __P((fr_info_t *, struct nat *));
usr/src/uts/common/inet/ipf/netinet/ip_raudio_pxy.c
110
nat = nat; /* LINT */
usr/src/uts/common/inet/ipf/netinet/ip_raudio_pxy.c
203
int ippr_raudio_in(fin, aps, nat, private)
usr/src/uts/common/inet/ipf/netinet/ip_raudio_pxy.c
206
nat_t *nat;
usr/src/uts/common/inet/ipf/netinet/ip_raudio_pxy.c
298
ip->ip_src = nat->nat_inip;
usr/src/uts/common/inet/ipf/netinet/ip_raudio_pxy.c
299
ip->ip_dst = nat->nat_oip;
usr/src/uts/common/inet/ipf/netinet/ip_raudio_pxy.c
322
nat2 = nat_new(&fi, nat->nat_ptr, NULL,
usr/src/uts/common/inet/ipf/netinet/ip_raudio_pxy.c
340
nat2 = nat_new(&fi, nat->nat_ptr, NULL,
usr/src/uts/common/inet/ipf/netinet/ip_raudio_pxy.c
72
int ippr_raudio_new(fin, aps, nat, private)
usr/src/uts/common/inet/ipf/netinet/ip_raudio_pxy.c
75
nat_t *nat;
usr/src/uts/common/inet/ipf/netinet/ip_raudio_pxy.c
85
nat = nat; /* LINT */
usr/src/uts/common/inet/ipf/netinet/ip_raudio_pxy.c
96
int ippr_raudio_out(fin, aps, nat, private)
usr/src/uts/common/inet/ipf/netinet/ip_raudio_pxy.c
99
nat_t *nat;
usr/src/uts/common/inet/ipf/netinet/ip_rcmd_pxy.c
120
int ippr_rcmd_portmsg(fin, aps, nat, ifsrcmd)
usr/src/uts/common/inet/ipf/netinet/ip_rcmd_pxy.c
123
nat_t *nat;
usr/src/uts/common/inet/ipf/netinet/ip_rcmd_pxy.c
181
if (nat->nat_dir == NAT_OUTBOUND)
usr/src/uts/common/inet/ipf/netinet/ip_rcmd_pxy.c
182
nat2 = nat_outlookup(&fi, NAT_SEARCH|IPN_TCP, nat->nat_p,
usr/src/uts/common/inet/ipf/netinet/ip_rcmd_pxy.c
183
nat->nat_inip, nat->nat_oip);
usr/src/uts/common/inet/ipf/netinet/ip_rcmd_pxy.c
185
nat2 = nat_inlookup(&fi, NAT_SEARCH|IPN_TCP, nat->nat_p,
usr/src/uts/common/inet/ipf/netinet/ip_rcmd_pxy.c
186
nat->nat_inip, nat->nat_oip);
usr/src/uts/common/inet/ipf/netinet/ip_rcmd_pxy.c
208
if (nat->nat_dir == NAT_OUTBOUND) {
usr/src/uts/common/inet/ipf/netinet/ip_rcmd_pxy.c
209
fi.fin_fi.fi_saddr = nat->nat_inip.s_addr;
usr/src/uts/common/inet/ipf/netinet/ip_rcmd_pxy.c
210
ip->ip_src = nat->nat_inip;
usr/src/uts/common/inet/ipf/netinet/ip_rcmd_pxy.c
212
fi.fin_fi.fi_saddr = nat->nat_oip.s_addr;
usr/src/uts/common/inet/ipf/netinet/ip_rcmd_pxy.c
213
ip->ip_src = nat->nat_oip;
usr/src/uts/common/inet/ipf/netinet/ip_rcmd_pxy.c
217
nat2 = nat_new(&fi, nat->nat_ptr, NULL, nflags, nat->nat_dir);
usr/src/uts/common/inet/ipf/netinet/ip_rcmd_pxy.c
223
if (nat->nat_dir == NAT_INBOUND) {
usr/src/uts/common/inet/ipf/netinet/ip_rcmd_pxy.c
224
fi.fin_fi.fi_daddr = nat->nat_inip.s_addr;
usr/src/uts/common/inet/ipf/netinet/ip_rcmd_pxy.c
225
ip->ip_dst = nat->nat_inip;
usr/src/uts/common/inet/ipf/netinet/ip_rcmd_pxy.c
237
int ippr_rcmd_out(fin, aps, nat, private)
usr/src/uts/common/inet/ipf/netinet/ip_rcmd_pxy.c
240
nat_t *nat;
usr/src/uts/common/inet/ipf/netinet/ip_rcmd_pxy.c
243
if (nat->nat_dir == NAT_OUTBOUND)
usr/src/uts/common/inet/ipf/netinet/ip_rcmd_pxy.c
244
return ippr_rcmd_portmsg(fin, aps, nat, (ifs_rcmdpxy_t *)private);
usr/src/uts/common/inet/ipf/netinet/ip_rcmd_pxy.c
249
int ippr_rcmd_in(fin, aps, nat, private)
usr/src/uts/common/inet/ipf/netinet/ip_rcmd_pxy.c
252
nat_t *nat;
usr/src/uts/common/inet/ipf/netinet/ip_rcmd_pxy.c
255
if (nat->nat_dir == NAT_INBOUND)
usr/src/uts/common/inet/ipf/netinet/ip_rcmd_pxy.c
256
return ippr_rcmd_portmsg(fin, aps, nat, (ifs_rcmdpxy_t *)private);
usr/src/uts/common/inet/ipf/netinet/ip_rcmd_pxy.c
77
int ippr_rcmd_new(fin, aps, nat, private)
usr/src/uts/common/inet/ipf/netinet/ip_rcmd_pxy.c
80
nat_t *nat;
usr/src/uts/common/inet/ipf/netinet/ip_rcmd_pxy.c
86
nat = nat; /* LINT */
usr/src/uts/common/inet/ipf/netinet/ip_rpcb_pxy.c
1039
rv = ippr_rpcb_getnat(fin, nat,
usr/src/uts/common/inet/ipf/netinet/ip_rpcb_pxy.c
1172
ippr_rpcb_getnat(fin, nat, proto, port, ifsrpcb)
usr/src/uts/common/inet/ipf/netinet/ip_rpcb_pxy.c
1174
nat_t *nat;
usr/src/uts/common/inet/ipf/netinet/ip_rpcb_pxy.c
1187
ipn = nat->nat_ptr;
usr/src/uts/common/inet/ipf/netinet/ip_rpcb_pxy.c
1193
fi.fin_dst = nat->nat_outip;
usr/src/uts/common/inet/ipf/netinet/ip_rpcb_pxy.c
1288
fi.fin_dst = nat->nat_inip;
usr/src/uts/common/inet/ipf/netinet/ip_rpcb_pxy.c
1322
ippr_rpcb_modv3(fin, nat, rm, m, off)
usr/src/uts/common/inet/ipf/netinet/ip_rpcb_pxy.c
1324
nat_t *nat;
usr/src/uts/common/inet/ipf/netinet/ip_rpcb_pxy.c
1336
i = (char *)&nat->nat_outip.s_addr;
usr/src/uts/common/inet/ipf/netinet/ip_rpcb_pxy.c
1388
ippr_rpcb_modv4(fin, nat, rm, m, off)
usr/src/uts/common/inet/ipf/netinet/ip_rpcb_pxy.c
1390
nat_t *nat;
usr/src/uts/common/inet/ipf/netinet/ip_rpcb_pxy.c
1407
i = (char *)&nat->nat_outip.s_addr;
usr/src/uts/common/inet/ipf/netinet/ip_rpcb_pxy.c
170
ippr_rpcb_new(fin, aps, nat, private)
usr/src/uts/common/inet/ipf/netinet/ip_rpcb_pxy.c
173
nat_t *nat;
usr/src/uts/common/inet/ipf/netinet/ip_rpcb_pxy.c
179
nat = nat; /* LINT */
usr/src/uts/common/inet/ipf/netinet/ip_rpcb_pxy.c
232
ippr_rpcb_in(fin, aps, nat, private)
usr/src/uts/common/inet/ipf/netinet/ip_rpcb_pxy.c
235
nat_t *nat;
usr/src/uts/common/inet/ipf/netinet/ip_rpcb_pxy.c
267
rv = ippr_rpcb_decodereq(fin, nat, rs, rm, (ifs_rpcbpxy_t *)private);
usr/src/uts/common/inet/ipf/netinet/ip_rpcb_pxy.c
276
rv = ippr_rpcb_modreq(fin, nat, rm, m, off);
usr/src/uts/common/inet/ipf/netinet/ip_rpcb_pxy.c
302
ippr_rpcb_out(fin, aps, nat, private)
usr/src/uts/common/inet/ipf/netinet/ip_rpcb_pxy.c
305
nat_t *nat;
usr/src/uts/common/inet/ipf/netinet/ip_rpcb_pxy.c
340
rv = ippr_rpcb_decoderep(fin, nat, rs, rm, &rx, ifsrpcb);
usr/src/uts/common/inet/ipf/netinet/ip_rpcb_pxy.c
361
if (nat->nat_inip.s_addr != nat->nat_outip.s_addr) {
usr/src/uts/common/inet/ipf/netinet/ip_rpcb_pxy.c
363
diff = ippr_rpcb_modv3(fin, nat, rm, m, off);
usr/src/uts/common/inet/ipf/netinet/ip_rpcb_pxy.c
365
diff = ippr_rpcb_modv4(fin, nat, rm, m, off);
usr/src/uts/common/inet/ipf/netinet/ip_rpcb_pxy.c
435
ippr_rpcb_decodereq(fin, nat, rs, rm, ifsrpcb)
usr/src/uts/common/inet/ipf/netinet/ip_rpcb_pxy.c
437
nat_t *nat;
usr/src/uts/common/inet/ipf/netinet/ip_rpcb_pxy.c
520
if ((ra->ra_maddr.xu_ip != nat->nat_outip.s_addr) ||
usr/src/uts/common/inet/ipf/netinet/ip_rpcb_pxy.c
521
(ra->ra_maddr.xu_port != nat->nat_outport))
usr/src/uts/common/inet/ipf/netinet/ip_rpcb_pxy.c
525
if ((nat->nat_outip.s_addr != nat->nat_inip.s_addr) ||
usr/src/uts/common/inet/ipf/netinet/ip_rpcb_pxy.c
526
(nat->nat_outport != nat->nat_inport))
usr/src/uts/common/inet/ipf/netinet/ip_rpcb_pxy.c
793
ippr_rpcb_modreq(fin, nat, rm, m, off)
usr/src/uts/common/inet/ipf/netinet/ip_rpcb_pxy.c
795
nat_t *nat;
usr/src/uts/common/inet/ipf/netinet/ip_rpcb_pxy.c
808
i = (char *)&nat->nat_inip.s_addr;
usr/src/uts/common/inet/ipf/netinet/ip_rpcb_pxy.c
809
p = (char *)&nat->nat_inport;
usr/src/uts/common/inet/ipf/netinet/ip_rpcb_pxy.c
880
ippr_rpcb_decoderep(fin, nat, rs, rm, rxp, ifsrpcb)
usr/src/uts/common/inet/ipf/netinet/ip_rpcb_pxy.c
882
nat_t *nat;
usr/src/uts/common/inet/ipf/netinet/ip_rpcb_pxy.c
959
if (ippr_rpcb_getnat(fin, nat, rx->rx_proto, (u_int)xdr, ifsrpcb) != 0)
usr/src/uts/common/inet/ipf/netinet/ip_rpcb_pxy.c
981
if (nat->nat_inip.s_addr != rr->rr_v3.xu_ip)
usr/src/uts/common/inet/ipf/netinet/ip_rpcb_pxy.c
985
if (ippr_rpcb_getnat(fin, nat, rx->rx_proto,
usr/src/uts/common/inet/ipf/netinet/ip_state.h
46
struct nat *is_nat[2];