linux-pinenote/include
Amir Vadai 71d0ed7079 net/act_pedit: Support using offset relative to the conventional network headers
Extend pedit to enable the user setting offset relative to network
headers. This change would enable to work with more complex header
schemes (vs the simple IPv4 case) where setting a fixed offset relative
to the network header is not enough.

After this patch, the action has information about the exact header type
and field inside this header. This information could be used later on
for hardware offloading of pedit.

Backward compatibility was being kept:
1. Old kernel <-> new userspace
2. New kernel <-> old userspace
3. add rule using new userspace <-> dump using old userspace
4. add rule using old userspace <-> dump using new userspace

When using the extended api, new netlink attributes are being used. This
way, operation will fail in (1) and (3) - and no malformed rule be added
or dumped. Of course, new user space that doesn't need the new
functionality can use the old netlink attributes and operation will
succeed.
Since action can support both api's, (2) should work, and it is easy to
write the new user space to have (4) work.

The action is having a strict check that only header types and commands
it can handle are accepted. This way future additions will be much
easier.

Usage example:
$ tc filter add dev enp0s9 protocol ip parent ffff: \
  flower \
    ip_proto tcp \
    dst_port 80 \
  action pedit munge tcp dport set 8080 pipe \
  action mirred egress redirect dev veth0

Will forward tcp port whose original dest port is 80, while modifying
the destination port to 8080.

Signed-off-by: Amir Vadai <amir@vadai.me>
Reviewed-by: Or Gerlitz <ogerlitz@mellanox.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2017-02-10 13:18:33 -05:00
..
acpi More ACPI updates for v4.10-rc1 2016-12-22 10:19:32 -08:00
asm-generic modversions: treat symbol CRCs as 32 bit quantities 2017-02-03 08:28:25 -08:00
clocksource
crypto This pull contains one set of changes: a conversion of the crypto DocBook 2016-12-17 16:00:34 -08:00
drm drm: Don't race connector registration 2017-01-30 10:17:32 +01:00
dt-bindings net: phy: Add LED mode driver for Microsemi PHYs. 2017-02-08 13:29:04 -05:00
keys
kvm KVM: arm64: Access CNTHCTL_EL2 bit fields correctly on VHE systems 2017-01-13 11:19:25 +00:00
linux net/skbuff: Introduce skb_mac_offset() 2017-02-10 13:18:33 -05:00
math-emu
media
memory
misc
net net/act_pedit: Support using offset relative to the conventional network headers 2017-02-10 13:18:33 -05:00
pcmcia
ras
rdma net-next: treewide use is_vlan_dev() helper function. 2017-02-06 16:33:29 -05:00
rxrpc
scsi Merge remote-tracking branch 'mkp-scsi/fixes' into fixes 2017-01-17 17:32:54 -05:00
soc ARCv2: MCIP: update the BCR per current changes 2017-01-24 11:05:59 -08:00
sound Merge remote-tracking branches 'asoc/fix/arizona', 'asoc/fix/dpcm', 'asoc/fix/dwc', 'asoc/fix/fsl-ssi' and 'asoc/fix/hdmi-codec' into asoc-linus 2017-01-10 10:47:50 +00:00
target target: add XCOPY target/segment desc sense codes 2017-01-10 08:40:32 -08:00
trace trace: rename trace_print_hex_seq arg and add kdoc 2017-02-03 15:50:18 -05:00
uapi net/act_pedit: Support using offset relative to the conventional network headers 2017-02-10 13:18:33 -05:00
video
xen
Kbuild