numam-dpdk/examples
Cristian Dumitrescu 783768136f pipeline: auto-detect endianness of action arguments
Each table entry is made up of match fields and action data, with the
latter made up of the action ID and the action arguments. The approach
of having the user specify explicitly the endianness of the action
arguments is difficult to be picked up by P4 compilers, as the P4
compiler is generally unaware about this aspect.

This commit introduces the auto-detection of the endianness of the
action arguments by examining the endianness of the their destination:
network byte order (NBO) when they get copied to headers and host byte
order (HBO) when they get copied to packet meta-data or mailboxes.

The endianness specification of each action argument as part of the
rule specification, e.g. H(...) and N(...) is removed from the rule
file and auto-detected based on their destination. The DMA instruction
scope is made internal, so mov instructions need to be used. The
pattern of transferring complete headers from table entry action args
to headers is detected, and the associated set of mov instructions
plus header validate is internally detected and replaced with the
internal-only DMA instruction to preserve performance.

Signed-off-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
2021-04-20 21:55:43 +02:00
..
bbdev_app examples/bbdev: fix header include for musl 2021-03-23 08:41:05 +01:00
bond examples: warn about broken pkg-config 2021-01-30 01:27:28 +01:00
bpf examples: remove old build system references 2020-09-07 23:51:57 +02:00
cmdline net: provide IP-related API on any OS 2021-04-15 01:56:43 +02:00
distributor examples: warn about broken pkg-config 2021-01-30 01:27:28 +01:00
ethtool examples: warn about broken pkg-config 2021-01-30 01:27:28 +01:00
eventdev_pipeline examples: warn about broken pkg-config 2021-01-30 01:27:28 +01:00
fips_validation examples/fips_validation: enhance getopt_long usage 2021-03-23 12:48:11 +01:00
flow_classify examples: warn about broken pkg-config 2021-01-30 01:27:28 +01:00
flow_filtering net: provide IP-related API on any OS 2021-04-15 01:56:43 +02:00
helloworld examples: warn about broken pkg-config 2021-01-30 01:27:28 +01:00
ioat examples: warn about broken pkg-config 2021-01-30 01:27:28 +01:00
ip_fragmentation examples: warn about broken pkg-config 2021-01-30 01:27:28 +01:00
ip_pipeline examples: warn about broken pkg-config 2021-01-30 01:27:28 +01:00
ip_reassembly examples: warn about broken pkg-config 2021-01-30 01:27:28 +01:00
ipsec-secgw examples/ipsec-secgw: support UDP encapsulation 2021-04-16 12:43:33 +02:00
ipv4_multicast examples: warn about broken pkg-config 2021-01-30 01:27:28 +01:00
kni examples: warn about broken pkg-config 2021-01-30 01:27:28 +01:00
l2fwd net: provide IP-related API on any OS 2021-04-15 01:56:43 +02:00
l2fwd-cat examples: warn about broken pkg-config 2021-01-30 01:27:28 +01:00
l2fwd-crypto examples/l2fwd-crypto: remove key size validation 2021-04-16 12:43:33 +02:00
l2fwd-event examples: warn about broken pkg-config 2021-01-30 01:27:28 +01:00
l2fwd-jobstats examples: warn about broken pkg-config 2021-01-30 01:27:28 +01:00
l2fwd-keepalive examples: warn about broken pkg-config 2021-01-30 01:27:28 +01:00
l3fwd examples/l3fwd: implement FIB lookup method 2021-04-20 20:18:29 +02:00
l3fwd-acl examples/l3fwd-acl: enhance getopt_long usage 2021-03-23 13:00:16 +01:00
l3fwd-graph examples: warn about broken pkg-config 2021-01-30 01:27:28 +01:00
l3fwd-power examples: warn about broken pkg-config 2021-01-30 01:27:28 +01:00
link_status_interrupt net: provide IP-related API on any OS 2021-04-15 01:56:43 +02:00
multi_process devargs: unify scratch buffer storage 2021-04-14 22:25:08 +02:00
ntb examples: warn about broken pkg-config 2021-01-30 01:27:28 +01:00
packet_ordering examples/packet_ordering: fix port configuration 2021-03-24 11:16:37 +01:00
performance-thread examples/performance-thread: enhance getopt_long usage 2021-03-23 13:00:29 +01:00
pipeline pipeline: auto-detect endianness of action arguments 2021-04-20 21:55:43 +02:00
ptpclient examples/ptpclient: remove wrong comment 2021-04-20 03:03:42 +02:00
qos_meter examples: warn about broken pkg-config 2021-01-30 01:27:28 +01:00
qos_sched examples/qos_sched: enhance getopt_long usage 2021-03-23 13:00:29 +01:00
rxtx_callbacks examples: warn about broken pkg-config 2021-01-30 01:27:28 +01:00
server_node_efd examples: warn about broken pkg-config 2021-01-30 01:27:28 +01:00
service_cores net: provide IP-related API on any OS 2021-04-15 01:56:43 +02:00
skeleton examples: warn about broken pkg-config 2021-01-30 01:27:28 +01:00
timer examples: warn about broken pkg-config 2021-01-30 01:27:28 +01:00
vdpa examples: warn about broken pkg-config 2021-01-30 01:27:28 +01:00
vhost examples/vhost: check memory table query 2021-03-31 08:46:32 +02:00
vhost_blk examples/vhost_blk: check features before inflight API 2021-03-31 08:20:59 +02:00
vhost_crypto examples/vhost_crypto: remove unused short option 2021-03-31 10:02:18 +02:00
vm_power_manager examples: warn about broken pkg-config 2021-01-30 01:27:28 +01:00
vmdq examples: warn about broken pkg-config 2021-01-30 01:27:28 +01:00
vmdq_dcb examples: warn about broken pkg-config 2021-01-30 01:27:28 +01:00
meson.build build: detect execinfo library on Linux 2021-03-23 08:41:05 +01:00