|
Lines 1361-1370
Link Here
|
| 1361 |
* args->eh (in) Mac header if present, or NULL for layer3 packet. |
1361 |
* args->eh (in) Mac header if present, or NULL for layer3 packet. |
| 1362 |
* args->oif Outgoing interface, or NULL if packet is incoming. |
1362 |
* args->oif Outgoing interface, or NULL if packet is incoming. |
| 1363 |
* The incoming interface is in the mbuf. (in) |
1363 |
* The incoming interface is in the mbuf. (in) |
| 1364 |
* args->divert_rule (in/out) |
|
|
| 1365 |
* Skip up to the first rule past this rule number; |
| 1366 |
* upon return, non-zero port number for divert or tee. |
| 1367 |
* |
| 1368 |
* args->rule Pointer to the last matching rule (in/out) |
1364 |
* args->rule Pointer to the last matching rule (in/out) |
| 1369 |
* args->next_hop Socket we are forwarding to (out). |
1365 |
* args->next_hop Socket we are forwarding to (out). |
| 1370 |
* args->f_id Addresses grabbed from the packet (out) |
1366 |
* args->f_id Addresses grabbed from the packet (out) |
|
Lines 1554-1566
Link Here
|
| 1554 |
* to restart processing. |
1550 |
* to restart processing. |
| 1555 |
* |
1551 |
* |
| 1556 |
* If fw_one_pass != 0 then just accept it. |
1552 |
* If fw_one_pass != 0 then just accept it. |
| 1557 |
* XXX should not happen here, but optimized out in |
1553 |
* XXX should not happen here unless the packet was tee'd, |
| 1558 |
* the caller. |
1554 |
* but optimized out in the caller. |
| 1559 |
*/ |
1555 |
*/ |
| 1560 |
if (fw_one_pass) { |
1556 |
if (fw_one_pass && !args->tee_continue) { |
| 1561 |
IPFW_UNLOCK(chain); /* XXX optimize */ |
1557 |
IPFW_UNLOCK(chain); /* XXX optimize */ |
| 1562 |
return 0; |
1558 |
return 0; |
| 1563 |
} |
1559 |
} |
|
|
1560 |
/* |
| 1561 |
* Reset this so that fw_one_pass is obeyed if we |
| 1562 |
* land up here again for reasons other than tee_continue |
| 1563 |
*/ |
| 1564 |
args->tee_continue = 0; |
| 1564 |
|
1565 |
|
| 1565 |
f = args->rule->next_rule; |
1566 |
f = args->rule->next_rule; |
| 1566 |
if (f == NULL) |
1567 |
if (f == NULL) |
|
Lines 2044-2049
Link Here
|
| 2044 |
cmd->arg1 | IP_FW_PORT_TEE_FLAG; |
2045 |
cmd->arg1 | IP_FW_PORT_TEE_FLAG; |
| 2045 |
m_tag_prepend(m, mtag); |
2046 |
m_tag_prepend(m, mtag); |
| 2046 |
retval = dt->info; |
2047 |
retval = dt->info; |
|
|
2048 |
args->rule = f; /* report matching rule */ |
| 2047 |
goto done; |
2049 |
goto done; |
| 2048 |
} |
2050 |
} |
| 2049 |
|
2051 |
|