Messages in this thread |  | | From | Bart De Schuymer <> | Subject | Re: bridge-netfilter patch | Date | Mon, 16 Sep 2002 23:41:17 +0200 |
| |
> This is for purely bridged packets. > > Why is it being added, therefore, to ip_queue_xmit() which is only > ever invoked by TCP output processing? > > If the patch adds the call somewhere else, please correct me, but > I specifically remember it being added to ip_queue_xmit() which is > why I barfed when seeing it :-)
I've never seen this in the patch. It sure isn't in it now.
To be more precise: net/ipv4/netfilter/ip_conntrack_standalone.c:ip_refrag() is (or can be) attached to the NF_IP_POST_ROUTING hook. This function calls: net/ipv4/ip_output.c:ip_fragment() In this function the copy of the Ethernet frame is added for each fragment (by the br-nf patch). The bridge-netfilter patch lets IP packets/frames passing the NF_BR_POST_ROUTING hook go through the NF_IP_POST_ROUTING hook, so the ip_fragment() code is executed while the IP packet/frame is really in the bridge code. After this, the fragments get queued: net/bridge/br_forward.c:br_dev_queue_push_xmit() calls dev_queue_xmit()
Lennert's previous mail says in which cases and why this header copy has to be explicitly done.
The following document might be useful to know what we are doing: http://users.pandora.be/bart.de.schuymer/ebtables/br_fw_ia/br_fw_ia.html
-- cheers, Bart
- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
|  |