diff options
author | 2014-04-22 11:43:07 +0000 | |
---|---|---|
committer | 2014-04-22 11:43:07 +0000 | |
commit | b6164cab1eb5c5dff5b240e99729c422b456f7c5 (patch) | |
tree | 9524b72640ef17f9687e37c24d29b31d8158ab00 /lib/libc | |
parent | sync (diff) | |
download | wireguard-openbsd-b6164cab1eb5c5dff5b240e99729c422b456f7c5.tar.xz wireguard-openbsd-b6164cab1eb5c5dff5b240e99729c422b456f7c5.zip |
we used to handle the vlan tag etc insertion very very very late,
on al already ass embed ethernet frame, which meant:
-copy (most of) the existing ethernet header into a ether_vlan_header
on the stack
-fill the extra fields in ether_vlan_header
-set the ether type
-m_adj() to make room for the extra space ether_vlan_header needs
-m_copyback the ether_vlan_header into the mbuf
that involves moving data around, which isn't all that cheap.
cleaner & easier to have ether_output prepend the ether_vlan_header instead
of the regular ethernet header, which makes the vlan tagging essentially
free in most cases.
help & ok reyk, naddy; waste of time bikeshedding tech@
Diffstat (limited to 'lib/libc')
0 files changed, 0 insertions, 0 deletions