summaryrefslogtreecommitdiffstats
path: root/usr.bin/diff/diffdir.c
diff options
context:
space:
mode:
authordlg <dlg@openbsd.org>2019-01-23 23:08:38 +0000
committerdlg <dlg@openbsd.org>2019-01-23 23:08:38 +0000
commite04630cfa7ec0820d5c3458d06b8678440008732 (patch)
tree0bc69de682c810a07bb7ca4c316cef75d12357f0 /usr.bin/diff/diffdir.c
parentrework grep_open to be more careful about directories. (diff)
downloadwireguard-openbsd-e04630cfa7ec0820d5c3458d06b8678440008732.tar.xz
wireguard-openbsd-e04630cfa7ec0820d5c3458d06b8678440008732.zip
rework mpw to be an actual ethernet interface.
this will allow for a lot of special casing in places like vlan and bridge to go away since mpw will do all the same things as any other ethernet tunnel. another benefit is you can run stuff directly on the mpw interface to interact with the pseudowire, rather than requiring a bridge and vether interface. this is like what juniper calls Pseudowire Service Interfaces. the caveat is that the implicit vlan or svlan tagging that mpw did in ethernet-tagged mode now has to be done by hand. however, there is some indication that different vendors pick different types of tags, ie, one uses vlan tags and another uses svlan, so being able to configure the right one has value. it is also possible you would want to bridge the entire tag stack to another site, so being able to bridge mpw without it playing with the tags can be useful. because the if_type on mpw changes from IFT_MPLSTUNNEL to IFT_ETHER, the semantic used to handle incoming packets in mpls_input is changed. instead of mpls_input pushing the packets into mpw based on the if_type being IFT_MPLSTUNNEL, mpw now adds an RTF_LOCAL route to the mpls table. mpls_input falls through to "outputting" the packet to mpw_output, which then uses the RTF_LOCAL flag to decide to input to mpw_input and then ether_input. this semantic will be applied to mpe soon, which removes all the interface special casing in mpls_input. the if_type change also means mpw implements the SIOCGPWE3 ioctl so ldpd can still figure out that the interface is a pseudowire. ok claudio@
Diffstat (limited to 'usr.bin/diff/diffdir.c')
0 files changed, 0 insertions, 0 deletions