twx-linux/include/uapi/linux
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
..
android
byteorder
caif
can can: dev: add CAN interface API for fixed bitrates 2017-01-24 13:52:00 +01:00
cifs
dvb [media] fix broken references on dvb/video*rst 2016-09-09 09:53:35 -03:00
genwqe
hdlc
hsi HSI: hsi_char.h: use __u32 from linux/types.h 2016-08-22 22:43:35 +02:00
iio iio: Implement counter channel type and info constants 2016-10-01 17:06:02 +01:00
isdn
mmc mmc: block: Change MMC_IOC_MAX_BYTES 2016-11-29 09:00:30 +01:00
netfilter Merge git://git.kernel.org/pub/scm/linux/kernel/git/pablo/nf-next 2017-02-03 16:58:20 -05:00
netfilter_arp
netfilter_bridge
netfilter_ipv4
netfilter_ipv6
nfsd
raid md/failfast: add failfast flag for md to be used by some personalities. 2016-11-22 08:58:17 -08:00
spi
sunrpc
tc_act net/act_pedit: Support using offset relative to the conventional network headers 2017-02-10 13:18:33 -05:00
tc_ematch
usb usb: gadget: f_fs: Document eventfd effect on descriptor format. 2017-01-02 10:55:28 +02:00
wimax
a.out.h
acct.h
adb.h
adfs_fs.h
affs_hardblocks.h
agpgart.h
aio_abi.h
am437x-vpfe.h
apm_bios.h
arcfb.h
atalk.h
atm_eni.h
atm_he.h
atm_idt77105.h
atm_nicstar.h
atm_tcp.h
atm_zatm.h Revert "include/uapi/linux/atm_zatm.h: include linux/time.h" 2016-11-13 12:35:13 -05:00
atm.h
atmapi.h
atmarp.h
atmbr2684.h
atmclip.h
atmdev.h
atmioc.h
atmlec.h
atmmpc.h
atmppp.h
atmsap.h
atmsvc.h
audit.h Merge branch 'stable-4.10' of git://git.infradead.org/users/pcmoore/audit 2016-12-14 14:06:40 -08:00
auto_dev-ioctl.h autofs4: move linux/auto_dev-ioctl.h to uapi/linux 2016-10-11 15:06:31 -07:00
auto_fs4.h
auto_fs.h autofs: move inclusion of linux/limits.h to uapi 2016-10-11 15:06:31 -07:00
auxvec.h
ax25.h
b1lli.h
batman_adv.h batman-adv: update copyright years for 2017 2017-01-26 08:34:19 +01:00
baycom.h
bcache.h
bcm933xx_hcs.h
bfs_fs.h
binfmts.h
blkpg.h
blktrace_api.h
blkzoned.h blk-zoned: implement ioctls 2016-10-18 10:05:42 -06:00
bpf_common.h
bpf_perf_event.h bpf: introduce BPF_PROG_TYPE_PERF_EVENT program type 2016-09-02 10:46:44 -07:00
bpf.h bpf: allow option for setting bpf_l4_csum_replace from scratch 2017-01-24 14:46:06 -05:00
bpqether.h net: bpqether.h: remove if_ether.h guard 2016-11-13 00:57:53 -05:00
bsg.h
bt-bmc.h ipmi: add an Aspeed BT IPMI BMC driver 2016-09-29 19:05:06 -05:00
btrfs_tree.h
btrfs.h Btrfs: catch invalid free space trees 2016-10-03 18:52:14 +02:00
can.h can: raw: raw_setsockopt: limit number of can_filter that can be set 2016-12-07 10:45:57 +01:00
capability.h uapi: move forward declarations of internal structures 2016-08-02 17:31:41 -04:00
capi.h
cciss_defs.h
cciss_ioctl.h
cdrom.h
cec-funcs.h [media] cec: fix report_current_latency 2016-12-21 06:59:13 -02:00
cec.h [media] cec.h/cec-funcs.h: don't use bool in public headers 2016-11-16 15:43:10 -02:00
cgroupstats.h
chio.h
cm4000_cs.h
cn_proc.h
coda_psdev.h
coda.h
coff.h
connector.h
const.h
coresight-stm.h
cramfs_fs.h
cryptouser.h crypto: acomp - add asynchronous compression api 2016-10-25 11:08:30 +08:00
cuda.h
cyclades.h
cycx_cfm.h
dcbnl.h
dccp.h
devlink.h devlink: Add E-Switch inline mode control 2016-11-24 16:01:14 -05:00
dlm_device.h
dlm_netlink.h
dlm_plock.h
dlm.h
dlmconstants.h
dm-ioctl.h dm: add infrastructure for DAX support 2016-07-20 23:49:49 -04:00
dm-log-userspace.h uapi dm-log-userspace.h: use __u32, __s32, __u64 and __s64 from linux/types.h 2016-11-21 09:52:02 -05:00
dma-buf.h
dn.h
dqblk_xfs.h
edd.h
efs_fs_sb.h
elf-em.h bpf, elf: add official ELF machine define for eBPF 2016-07-20 12:37:39 -07:00
elf-fdpic.h
elf.h powerpc updates for 4.8 #2 2016-08-05 09:00:54 -04:00
elfcore.h
errno.h
errqueue.h
ethtool.h net: ethtool: add support for 2500BaseT and 5000BaseT link modes 2017-01-30 10:14:28 -05:00
eventpoll.h
fadvise.h
falloc.h vfs: add a FALLOC_FL_UNSHARE mode to fallocate to unshare a range of blocks 2016-10-03 09:11:14 -07:00
fanotify.h
fb.h
fcntl.h
fd.h
fdreg.h
fib_rules.h net: core: add UID to flows, rules, and routes 2016-11-04 14:45:23 -04:00
fiemap.h
filter.h
firewire-cdev.h
firewire-constants.h
flat.h
fou.h
fs.h This merge request includes the dax-4.0-iomap-pmd branch which is 2016-12-14 09:17:42 -08:00
fsl_hypervisor.h
fuse.h fuse: Add posix ACL support 2016-10-01 07:32:32 +02:00
futex.h
gameport.h
gen_stats.h
genetlink.h genetlink: use idr to track families 2016-10-27 16:16:09 -04:00
gfs2_ondisk.h
gigaset_dev.h
gpio.h gpio: userspace ABI for reading GPIO line events 2016-06-15 09:29:17 +02:00
gsmmux.h
gtp.h gtp: #define _UAPI_LINUX_GTP_H_ and not _UAPI_LINUX_GTP_H__ 2016-06-07 16:25:49 -07:00
hash_info.h
hdlc.h
hdlcdrv.h
hdreg.h
hid.h
hiddev.h
hidraw.h
hpet.h
hsr_netlink.h
hw_breakpoint.h hw_breakpoint: Allow watchpoint of length 3,5,6 and 7 2016-11-18 17:23:17 +00:00
hyperv.h
hysdn_if.h
i2c-dev.h
i2c.h i2c: smbus: add SMBus Host Notify support 2016-06-17 13:24:05 +02:00
i2o-dev.h
i8k.h
icmp.h ipv6: RFC 4884 partial support for SIT/GRE tunnels 2016-06-18 22:11:39 -07:00
icmpv6.h
if_addr.h
if_addrlabel.h
if_alg.h
if_arcnet.h
if_arp.h
if_bonding.h
if_bridge.h bridge: uapi: add per vlan tunnel info 2017-02-03 15:21:21 -05:00
if_cablemodem.h
if_eql.h
if_ether.h ethernet: use net core MTU range checking in more drivers 2016-10-20 14:51:08 -04:00
if_fc.h
if_fddi.h
if_frad.h
if_hippi.h
if_infiniband.h
if_link.h bridge: uapi: add per vlan tunnel info 2017-02-03 15:21:21 -05:00
if_ltalk.h
if_macsec.h macsec: limit ICV length to 16 octets 2016-07-25 10:55:39 -07:00
if_packet.h
if_phonet.h
if_plip.h
if_ppp.h
if_pppol2tp.h net: l2tp: deprecate PPPOL2TP_MSG_* in favour of L2TP_MSG_* 2016-12-10 23:29:11 -05:00
if_pppox.h include/uapi/linux/if_pppox.h: include linux/in.h and linux/in6.h 2016-08-22 16:25:15 -07:00
if_slip.h
if_team.h
if_tun.h
if_tunnel.h Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next 2016-09-25 23:34:19 +02:00
if_vlan.h
if_x25.h
if.h uapi glibc compat: fix outer guard of net device flags enum 2016-12-06 10:43:32 -05:00
ife.h net: Introduce ife encapsulation module 2017-02-03 15:16:45 -05:00
igmp.h bridge: sparse fixes in br_ip6_multicast_alloc_query() 2017-01-17 15:22:05 -05:00
ila.h
in6.h ipv6: add IPV6_RECVFRAGSIZE cmsg 2016-11-03 15:41:11 -04:00
in_route.h
in.h ipv4: add IP_RECVFRAGSIZE cmsg 2016-11-03 15:41:11 -04:00
inet_diag.h net: ip, diag -- Add diag interface for raw sockets 2016-10-23 19:35:24 -04:00
inotify.h
input-event-codes.h Input: change KEY_DATA from 0x275 to 0x277 2016-11-30 08:59:26 -08:00
input.h HID: intel-ish-hid: ISH HID client driver 2016-08-17 11:13:08 +02:00
ioctl.h
ip6_tunnel.h
ip_vs.h
ip.h
ipc.h
ipmi_msgdefs.h
ipmi.h
ipsec.h
ipv6_route.h
ipv6.h net/ipv6: allow sysctl to change link-local address generation mode 2017-01-27 10:25:34 -05:00
ipx.h include/uapi/linux/ipx.h: fix conflicting defitions with glibc netipx/ipx.h 2016-08-22 16:25:15 -07:00
irda.h
irqnr.h
isdn_divertif.h
isdn_ppp.h
isdn.h
isdnif.h
iso_fs.h
ivtv.h
ivtvfb.h
ixjuser.h
jffs2.h
joystick.h
Kbuild net: Introduce ife encapsulation module 2017-02-03 15:16:45 -05:00
kcm.h
kcmp.h
kcov.h
kd.h
kdev_t.h
kernel-page-flags.h
kernel.h
kernelcapi.h
kexec.h arm64/kexec: Add core kexec support 2016-06-27 16:31:25 +01:00
keyboard.h
keyctl.h
kfd_ioctl.h
kvm_para.h
kvm.h Small release, the most interesting stuff is x86 nested virt improvements. 2016-12-13 15:47:02 -08:00
l2tp.h net: l2tp: export debug flags to UAPI 2016-12-10 23:29:11 -05:00
libc-compat.h include/uapi/linux/ipx.h: fix conflicting defitions with glibc netipx/ipx.h 2016-08-22 16:25:15 -07:00
lightnvm.h
limits.h
lirc.h [media] lirc.h: remove several unused ioctls 2016-07-11 10:49:52 -03:00
llc.h
loop.h
lp.h
lwtunnel.h bpf: BPF for lightweight tunnel infrastructure 2016-12-02 10:51:49 -05:00
magic.h x86/intel_rdt: Add basic resctrl filesystem support 2016-10-30 19:10:14 -06:00
major.h docs: fix locations of several documents that got moved 2016-10-24 08:12:35 -02:00
map_to_7segment.h
matroxfb.h
mdio.h
media-bus-format.h [media] media: Add 1X16 16-bit raw bayer media bus code definitions 2016-09-09 11:16:36 -03:00
media.h [media] v4l2-core: Add support for touch devices 2016-08-23 16:28:04 -03:00
mei.h
membarrier.h
memfd.h
mempolicy.h
meye.h
mic_common.h
mic_ioctl.h
mii.h net: Add mask for Control register 10Mbps speed 2016-08-12 16:57:20 -07:00
minix_fs.h
mman.h
mmtimer.h
module.h
mpls_iptunnel.h
mpls.h mpls: Packet stats 2017-01-17 14:38:43 -05:00
mqueue.h
mroute6.h
mroute.h
msdos_fs.h
msg.h
mtio.h
n_r3964.h
nbd.h nbd: move multi-connection bit to unused value 2016-11-22 13:11:55 -07:00
ncp_fs.h
ncp_mount.h
ncp_no.h
ncp.h
ndctl.h libnvdimm: fix SMART Health DSM payload definition 2016-08-15 11:07:21 -07:00
neighbour.h vxlan: support fdb and learning in COLLECT_METADATA mode 2017-02-03 15:21:21 -05:00
net_dropmon.h
net_namespace.h
net_tstamp.h tcp: SOF_TIMESTAMPING_OPT_STATS option for SO_TIMESTAMPING 2016-11-30 10:04:25 -05:00
net.h
netconf.h
netdevice.h
netfilter_arp.h
netfilter_bridge.h
netfilter_decnet.h
netfilter_ipv4.h
netfilter_ipv6.h
netfilter.h netfilter: deprecate NF_STOP 2016-11-03 10:56:17 +01:00
netlink_diag.h netlink: Add comment to warn about deprecated netlink rings attribute request 2016-06-16 14:00:50 -07:00
netlink.h smc: netlink interface for SMC sockets 2017-01-09 16:07:41 -05:00
netrom.h
nfc.h
nfs2.h
nfs3.h
nfs4_mount.h
nfs4.h nfs: add a new NFS4_OPEN_RESULT_MAY_NOTIFY_LOCK constant 2016-09-26 15:20:37 -04:00
nfs_fs.h
nfs_idmap.h
nfs_mount.h
nfs.h
nfsacl.h
nilfs2_api.h nilfs2: move ioctl interface and disk layout to uapi separately 2016-08-02 19:35:21 -04:00
nilfs2_ondisk.h nilfs2: move ioctl interface and disk layout to uapi separately 2016-08-02 19:35:21 -04:00
nl80211.h Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2017-01-17 15:19:37 -05:00
nsfs.h nsfs: add ioctl to get a parent namespace 2016-09-22 19:59:41 -05:00
nubus.h
nvme_ioctl.h
nvram.h
omap3isp.h
omapfb.h
oom.h
openvswitch.h openvswitch: Add force commit. 2017-02-09 22:59:34 -05:00
packet_diag.h
param.h
parport.h
patchkey.h
pci_regs.h PCI: Move config space size macros to pci_regs.h 2016-12-12 10:05:22 -06:00
pci.h
perf_event.h perf core: Per event callchain limit 2016-05-30 12:41:44 -03:00
personality.h
pfkeyv2.h
pg.h
phantom.h
phonet.h
pkt_cls.h net sched actions: Add support for user cookies 2017-01-25 12:37:04 -05:00
pkt_sched.h net_sched: sch_fq: account for schedule/timers drifts 2016-09-23 07:19:06 -04:00
pktcdvd.h
pmu.h
poll.h
posix_acl_xattr.h posix_acl: uapi header split 2016-09-27 21:52:00 -04:00
posix_acl.h posix_acl: uapi header split 2016-09-27 21:52:00 -04:00
posix_types.h
ppdev.h
ppp_defs.h
ppp-comp.h
ppp-ioctl.h
pps.h
pr.h
prctl.h
psample.h net: Introduce psample, a new genetlink channel for packet sampling 2017-01-24 13:44:28 -05:00
psci.h
ptp_clock.h
ptrace.h
qnx4_fs.h
qnxtypes.h
qrtr.h
quota.h
radeonfb.h
random.h
raw.h
rds.h RDS: add receive message trace used by application 2017-01-02 14:02:59 -08:00
reboot.h
reiserfs_fs.h
reiserfs_xattr.h
resource.h
rfkill.h
rio_cm_cdev.h rapidio: add RapidIO channelized messaging driver 2016-08-02 19:35:31 -04:00
rio_mport_cdev.h
romfs_fs.h
rose.h
route.h
rtc.h
rtnetlink.h ipmr, ip6mr: add RTNH_F_UNRESOLVED flag to unresolved cache entries 2017-01-03 10:04:31 -05:00
scc.h
sched.h
scif_ioctl.h
screen_info.h
sctp.h sctp: implement sender-side procedures for Add Incoming/Outgoing Streams Request Parameter 2017-02-09 16:57:38 -05:00
sdla.h
seccomp.h
securebits.h
seg6_genl.h ipv6: sr: add code base for control plane support of SR-IPv6 2016-11-09 20:40:06 -05:00
seg6_hmac.h ipv6: sr: add missing Kbuild export for header files 2017-01-16 14:47:21 -05:00
seg6_iptunnel.h ipv6: sr: add missing Kbuild export for header files 2017-01-16 14:47:21 -05:00
seg6.h Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2017-02-07 16:29:30 -05:00
selinux_netlink.h
sem.h
serial_core.h
serial_reg.h serial: 8250: Set Altera 16550 TX FIFO Threshold 2016-09-27 12:55:50 +02:00
serial.h
serio.h [media] input: serio - add new protocol for the Pulse-Eight USB-CEC Adapter 2016-07-12 13:42:10 -03:00
shm.h
signal.h
signalfd.h
smc_diag.h smc: netlink interface for SMC sockets 2017-01-09 16:07:41 -05:00
smc.h smc: establish pnet table management 2017-01-09 16:07:38 -05:00
smiapp.h
snmp.h net: add LINUX_MIB_PFMEMALLOCDROP counter 2017-02-02 23:34:19 -05:00
sock_diag.h
socket.h
sockios.h driver: tun: Use new macro SOCK_IOC_TYPE instead of literal number 0x89 2016-10-31 10:56:47 -04:00
sonet.h
sonypi.h
sound.h
soundcard.h
stat.h
stddef.h
stm.h
string.h
suspend_ioctls.h
swab.h
sync_file.h dma-buf/sync_file: fix documentation error 2016-09-20 18:12:38 +05:30
synclink.h
sysctl.h uapi: move forward declarations of internal structures 2016-08-02 17:31:41 -04:00
sysinfo.h
target_core_user.h
taskstats.h
tcp_metrics.h
tcp.h tcp: record pkts sent and retransmistted 2017-01-29 19:17:23 -05:00
telephony.h
termios.h
thermal.h
time.h
timerfd.h timerfd: export defines to userspace 2017-01-10 18:31:55 -08:00
times.h
timex.h
tiocl.h
tipc_config.h
tipc_netlink.h tipc: add the ability to get UDP options via netlink 2016-08-26 21:38:41 -07:00
tipc.h tipc: make replicast a user selectable option 2017-01-20 12:10:17 -05:00
toshiba.h
tty_flags.h
tty.h
types.h linux/types.h: enable endian checks for all sparse builds 2016-12-16 00:13:39 +02:00
udf_fs_i.h
udp.h
uhid.h
uinput.h
uio.h
uleds.h leds: Introduce userspace LED class driver 2016-11-22 12:07:02 +01:00
ultrasound.h
un.h unix: add ioctl to open a unix socket file with O_PATH 2017-02-02 21:58:02 -05:00
unistd.h
unix_diag.h
usbdevice_fs.h
usbip.h
userfaultfd.h
userio.h
utime.h
utsname.h
uuid.h
uvcvideo.h
v4l2-common.h
v4l2-controls.h [media] v4l: ctrls: Add deinterlacing mode control 2016-11-16 16:16:08 -02:00
v4l2-dv-timings.h [media] v4l2-dv-timings: add VICs and picture aspect ratio 2016-11-16 15:13:18 -02:00
v4l2-mediabus.h
v4l2-subdev.h
veth.h
vfio.h vfio: Define device_api strings 2016-11-17 08:33:20 -07:00
vhost.h vhost: remove unused feature bit 2016-12-16 00:13:38 +02:00
videodev2.h [media] v4l: Add 16-bit raw bayer pixel formats 2016-11-23 20:04:22 -02:00
virtio_9p.h
virtio_balloon.h
virtio_blk.h
virtio_config.h virtio: new feature to detect IOMMU device quirk 2016-08-01 21:44:52 +03:00
virtio_console.h
virtio_crypto.h crypto: add virtio-crypto driver 2016-12-16 00:13:32 +02:00
virtio_gpu.h
virtio_ids.h crypto: add virtio-crypto driver 2016-12-16 00:13:32 +02:00
virtio_input.h
virtio_net.h virtio_net: add _UAPI prefix to virtio_net header guards 2016-06-10 23:03:55 -07:00
virtio_pci.h
virtio_ring.h
virtio_rng.h
virtio_scsi.h
virtio_types.h linux: drop __bitwise__ everywhere 2016-12-16 00:13:41 +02:00
virtio_vsock.h virtio-vsock: fix include guard typo 2016-08-09 13:42:38 +03:00
vm_sockets.h
vt.h
vtpm_proxy.h tpm, tpm_vtpm_proxy: add kdoc comments for VTPM_PROXY_IOC_NEW_DEV 2016-11-28 01:31:31 +02:00
wait.h
wanrouter.h
watchdog.h
wil6210_uapi.h
wimax.h
wireless.h wext: reformat struct/union declarations 2016-06-09 10:14:39 +02:00
x25.h
xattr.h
xfrm.h xfrm: fix header file comment reference to struct xfrm_replay_state_esn 2016-09-09 09:10:07 +02:00
xilinx-v4l2-controls.h
zorro_ids.h
zorro.h