summaryrefslogtreecommitdiffstats
path: root/src/vnet/buffer.h
AgeCommit message (Expand)AuthorFilesLines
2020-01-15ip: align reass.save_rewrite_lengthv20.05-rc0Klement Sekera1-4/+13
2020-01-03nat: use SVRKlement Sekera1-19/+26
2019-11-26fib: reduce save_rewrite_length to u8Klement Sekera1-2/+12
2019-10-22ip: reassembly: avoid corruption in vnet bufferKlement Sekera1-17/+18
2019-10-09mpls: support fragmentation of mpls output packetRajesh Goel1-0/+4
2019-09-26ip: add shallow virtual reassembly functionalityKlement Sekera1-7/+32
2019-07-22gso: Fix the l3 packet gso segment sizeMohsin Kazmi1-1/+4
2019-07-05sctp: move to plugins, disabled by defaultFlorin Coras1-14/+0
2019-06-21tcp: add option to pass opaque to next nodeFlorin Coras1-1/+5
2019-06-18ipsec: ipsec-tun protectNeale Ranns1-0/+1
2019-06-18ip: reassembly-separate feature and custom codeKlement Sekera1-2/+2
2019-06-06DVR: Control the reinject as L2 or L3 based on the output interface typeNeale Ranns1-1/+1
2019-06-06reassembly: support more custom options for appsKlement Sekera1-0/+1
2019-03-29IPSEC-GRE: fixes and API update to common types.Neale Ranns1-1/+0
2019-03-06GBP: use sclass in the DP for policyNeale Ranns1-5/+1
2019-03-04Hash and handoff reassembly fragmentsVijayabhaskar Katamreddy1-0/+2
2019-02-19tap gso: experimental supportAndrew Yourtchenko1-9/+26
2019-01-22GBP: Sclass to src-epg conversionsNeale Ranns1-1/+5
2019-01-02Revert "add ipsecmb plugin"Florin Coras1-4/+0
2019-01-02add ipsecmb pluginKlement Sekera1-0/+4
2018-12-04Add VNET_BUFFER_F_AVAIL definitionsDave Barach1-1/+25
2018-11-30Metadata / opaque formatting belongs in vppDave Barach1-22/+22
2018-09-27IPIP and IPv6 fragmentationOle Troan1-1/+0
2018-09-24Trivial: Clean up some typos.Paul Vinciguerra1-4/+4
2018-09-10vxlan-gbp: Add support for vxlan gbpMohsin Kazmi1-1/+3
2018-08-03loop counter to prevent infiinte number of look ups per-packetNeale Ranns1-1/+3
2018-07-19Cleanup of handoff codeDamjan Marion1-15/+0
2018-07-02Fixing ip4-reassembly ip6-reassembly non feature node, next_node_index settingVijayabhaskar Katamreddy1-1/+0
2018-06-25MAP: Move MAP-E/T to a plugin.Ole Troan1-8/+0
2018-06-08Adding pad for reasm vnet_buffer reasm struct sothat adj_index is retainedVijayabhaskar Katamreddy1-0/+1
2018-06-04Remove unused GRE buffer meta-dataNeale Ranns1-6/+0
2018-05-17Packet generator: preserve pcap file timestampsDave Barach1-0/+5
2018-04-27A bit of buffer metadata reshuffling to accommodate flow_idDamjan Marion1-1/+2
2018-04-13GBP V2Neale Ranns1-1/+7
2018-03-21reassembly: feature/concurrencyKlement Sekera1-8/+17
2018-03-16QoS recording and markingNeale Ranns1-5/+21
2018-03-09MPLS Unifom modeNeale Ranns1-0/+2
2018-02-21SCTP: minor refactorMarco Varlese1-1/+1
2018-02-17SCTP: 'multi-home' supportMarco Varlese1-0/+1
2018-02-07Refactor vlib_buffer flagsDamjan Marion1-26/+7
2018-02-01IPv4/6 reassemblyKlement Sekera1-0/+12
2018-01-31Fix VNET_BUFFER_F_SPAN_CLONE flagDamjan Marion1-1/+1
2018-01-29DRAFT ip4/6_frag to support DPO Style based Next NodeVijayabhaskar Katamreddy1-0/+1
2018-01-24SCTP stack (RFC4960)Marco Varlese1-0/+13
2018-01-09DVR: run L3 output featuresNeale Ranns1-0/+24
2017-12-09BIER in non-MPLS netowrksNeale Ranns1-11/+9
2017-11-21dpdk: add l2_hdr_offset and l3_hdr_offset in vlib_buffer_tDamjan Marion1-15/+19
2017-11-09BIERNeale Ranns1-0/+12
2017-10-19VPP-1024: rewrite buffer trajectory tracerDave Barach1-0/+17
2017-10-10session: add support for application namespacingFlorin Coras1-2/+8
DR (Non Drop | ... | Rate) with zero packet loss tolerance or throughput PDR (Partial Drop | ... | Rate) with non-zero packet loss tolerance (LT) expressed in number | ... | of packets transmitted. NDR is discovered for different | ... | number of IPsec tunnels using binary search algorithms with configured | ... | starting rate and final step that determines throughput measurement | ... | resolution. Test packets are generated by TG on | ... | links to DUTs. TG traffic profile contains two L3 flow-groups | ... | (flow-group per direction, number of flows per flow-group equals to | ... | number of IPSec tunnels) with all packets | ... | containing Ethernet header, IPv4 header with IP protocol=61 and | ... | static payload. MAC addresses are matching MAC addresses of the TG | ... | node interfaces. Incrementing of IP.dst (IPv4 destination address) field | ... | is applied to both streams. | ... | *[Ref] Applicable standard specifications:* RFC4303 and RFC2544. *** Variables *** # XL710-DA2 bandwidth limit ~49Gbps/2=24.5Gbps | ${s_24.5G} | ${24500000000} # XL710-DA2 Mpps limit 37.5Mpps/2=18.75Mpps | ${s_18.75Mpps} | ${18750000} | ${tg_if1_ip4}= | 192.168.10.2 | ${dut1_if1_ip4}= | 192.168.10.1 | ${dut1_if2_ip4}= | 172.168.1.1 | ${dut2_if1_ip4}= | 172.168.1.2 | ${dut2_if2_ip4}= | 192.168.20.1 | ${tg_if2_ip4}= | 192.168.20.2 | ${raddr_ip4}= | 20.0.0.0 | ${laddr_ip4}= | 10.0.0.0 | ${addr_range}= | ${32} | ${ipsec_overhead_gcm}= | ${54} | ${n_tunnels}= | ${1} # Traffic profile: | ${traffic_profile} | trex-sl-3n-ethip4-ip4dst${n_tunnels} *** Test Cases *** | tc01-64B-1t1c-ethip4ipsecbasetnl-ip4base-int-aes-gcm-ndrdisc | | [Documentation] | | ... | [Cfg] DUTs run 1 IPsec tunnel AES GCM in each direction, configured\ | | ... | with 1 thread, 1 phy core, 1 receive queue per NIC port. | | ... | [Ver] Find NDR for 64 Byte frames\ | | ... | using binary search start at 40GE linerate, step 100kpps. | | ... | | [Tags] | 64B | 1T1C | STHREAD | NDRDISC | | ... | | ${framesize}= | Set Variable | ${64} | | ${min_rate}= | Set Variable | ${10000} | | ${max_rate}= | Set Variable | ${s_18.75Mpps} | | ${binary_min}= | Set Variable | ${min_rate} | | ${binary_max}= | Set Variable | ${max_rate} | | ${threshold}= | Set Variable | ${min_rate} | | ${encr_alg}= | Crypto Alg AES GCM 128 | | ${auth_alg}= | Integ Alg AES GCM 128 | | Given Add '1' worker threads and '1' rxqueues in 3-node single-link circular topology | | And Generate keys for IPSec | ${encr_alg} | ${auth_alg} | | And Add PCI devices to DUTs in 3-node single link topology | | And Add no multi seg to all DUTs | | And Add cryptodev to all DUTs | ${1} | | And Apply startup configuration on all VPP DUTs | | And Initialize IPSec in 3-node circular topology | | And VPP IPsec Create Tunnel Interfaces | | ... | ${dut1} | ${dut2} | ${dut1_if2_ip4} | ${dut2_if1_ip4} | ${n_tunnels} | | ... | ${encr_alg} | ${encr_key} | ${auth_alg} | ${auth_key} | ${laddr_ip4} | | ... | ${raddr_ip4} | ${addr_range} | | Then Find NDR using binary search and pps | ${framesize} | | ... | ${binary_min} | ${binary_max} | ${traffic_profile} | | ... | ${min_rate} | ${max_rate} | ${threshold} | tc02-64B-1t1c-ethip4ipsecbasetnl-ip4base-int-aes-gcm-pdrdisc | | [Documentation] | | ... | [Cfg] DUTs run 1 IPsec tunnel AES GCM in each direction, configured\ | | ... | with 1 thread, 1 phy core, 1 receive queue per NIC port. | | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 40GE\ | | ... | linerate, step 100kpps and loss tolerance of 0.5%. | | ... | | [Tags] | 64B | 1T1C | STHREAD | PDRDISC | SKIP_PATCH | | ... | | ${framesize}= | Set Variable | ${64} | | ${min_rate}= | Set Variable | ${10000} | | ${max_rate}= | Set Variable | ${s_18.75Mpps} | | ${binary_min}= | Set Variable | ${min_rate} | | ${binary_max}= | Set Variable | ${max_rate} | | ${threshold}= | Set Variable | ${min_rate} | | ${encr_alg}= | Crypto Alg AES GCM 128 | | ${auth_alg}= | Integ Alg AES GCM 128 | | Given Add '1' worker threads and '1' rxqueues in 3-node single-link circular topology | | And Generate keys for IPSec | ${encr_alg} | ${auth_alg} | | And Add PCI devices to DUTs in 3-node single link topology | | And Add no multi seg to all DUTs | | And Add cryptodev to all DUTs | ${1} | | And Apply startup configuration on all VPP DUTs | | And Initialize IPSec in 3-node circular topology | | And VPP IPsec Create Tunnel Interfaces | | ... | ${dut1} | ${dut2} | ${dut1_if2_ip4} | ${dut2_if1_ip4} | ${n_tunnels} | | ... | ${encr_alg} | ${encr_key} | ${auth_alg} | ${auth_key} | ${laddr_ip4} | | ... | ${raddr_ip4} | ${addr_range} | | Then Find PDR using binary search and pps | ${framesize} | | ... | ${binary_min} | ${binary_max} | ${traffic_profile} | | ... | ${min_rate} | ${max_rate} | ${threshold} | ${perf_pdr_loss_acceptance} | | ... | ${perf_pdr_loss_acceptance_type} | tc03-1518B-1t1c-ethip4ipsecbasetnl-ip4base-int-aes-gcm-ndrdisc | | [Documentation] | | ... | [Cfg] DUTs run 1 IPsec tunnel AES GCM in each direction, configured\ | | ... | with 1 thread, 1 phy core, 1 receive queue per NIC port. | | ... | [Ver] Find NDR for 1518 Byte frames\ | | ... | using binary search start at 40GE linerate, step 100kpps. | | ... | | [Tags] | 1518B | 1T1C | STHREAD | NDRDISC | | ... | | ${framesize}= | Set Variable | ${1518} | | ${min_rate}= | Set Variable | ${10000} | | ${max_rate}= | Calculate pps | ${s_24.5G} | | ... | ${framesize + ${ipsec_overhead_gcm}} | | ${binary_min}= | Set Variable | ${min_rate} | | ${binary_max}= | Set Variable | ${max_rate} | | ${threshold}= | Set Variable | ${min_rate} | | ${encr_alg}= | Crypto Alg AES GCM 128 | | ${auth_alg}= | Integ Alg AES GCM 128 | | Given Add '1' worker threads and '1' rxqueues in 3-node single-link circular topology | | And Generate keys for IPSec | ${encr_alg} | ${auth_alg} | | And Add PCI devices to DUTs in 3-node single link topology | | And Add cryptodev to all DUTs | ${1} | | And Apply startup configuration on all VPP DUTs | | And Initialize IPSec in 3-node circular topology | | And VPP IPsec Create Tunnel Interfaces | | ... | ${dut1} | ${dut2} | ${dut1_if2_ip4} | ${dut2_if1_ip4} | ${n_tunnels} | | ... | ${encr_alg} | ${encr_key} | ${auth_alg} | ${auth_key} | ${laddr_ip4} | | ... | ${raddr_ip4} | ${addr_range} | | Then Find NDR using binary search and pps | ${framesize} | | ... | ${binary_min} | ${binary_max} | ${traffic_profile} | | ... | ${min_rate} | ${max_rate} | ${threshold} | tc04-1518B-1t1c-ethip4ipsecbasetnl-ip4base-int-aes-gcm-pdrdisc | | [Documentation] | | ... | [Cfg] DUTs run 1 IPsec tunnel AES GCM in each direction, configured\ | | ... | with 1 thread, 1 phy core, 1 receive queue per NIC port. | | ... | [Ver] Find PDR for 1518 Byte frames using binary search start at 40GE\ | | ... | linerate, step 100kpps and loss tolerance of 0.5%. | | ... | | [Tags] | 1518B | 1T1C | STHREAD | PDRDISC | SKIP_PATCH | | ... | | ${framesize}= | Set Variable | ${1518} | | ${min_rate}= | Set Variable | ${10000} | | ${max_rate}= | Calculate pps | ${s_24.5G} | | ... | ${framesize + ${ipsec_overhead_gcm}} | | ${binary_min}= | Set Variable | ${min_rate} | | ${binary_max}= | Set Variable | ${max_rate} | | ${threshold}= | Set Variable | ${min_rate} | | ${encr_alg}= | Crypto Alg AES GCM 128 | | ${auth_alg}= | Integ Alg AES GCM 128 | | Given Add '1' worker threads and '1' rxqueues in 3-node single-link circular topology | | And Generate keys for IPSec | ${encr_alg} | ${auth_alg} | | And Add PCI devices to DUTs in 3-node single link topology | | And Add cryptodev to all DUTs | ${1} | | And Apply startup configuration on all VPP DUTs | | And Initialize IPSec in 3-node circular topology | | And VPP IPsec Create Tunnel Interfaces | | ... | ${dut1} | ${dut2} | ${dut1_if2_ip4} | ${dut2_if1_ip4} | ${n_tunnels} | | ... | ${encr_alg} | ${encr_key} | ${auth_alg} | ${auth_key} | ${laddr_ip4} | | ... | ${raddr_ip4} | ${addr_range} | | Then Find PDR using binary search and pps | ${framesize} | | ... | ${binary_min} | ${binary_max} | ${traffic_profile} | | ... | ${min_rate} | ${max_rate} | ${threshold} | ${perf_pdr_loss_acceptance} | | ... | ${perf_pdr_loss_acceptance_type} | tc05-IMIX-1t1c-ethip4ipsecbasetnl-ip4base-int-aes-gcm-ndrdisc | | [Documentation] | | ... | [Cfg] DUTs run 1 IPsec tunnel AES GCM in each direction, configured\ | | ... | with 1 thread, 1 phy core, 1 receive queue per NIC port. | | ... | [Ver] Find NDR for IMIX_v4_1 frames\ | | ... | using binary search start at 40GE linerate, step 100kpps. | | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B) | | ... | | [Tags] | IMIX | 1T1C | STHREAD | NDRDISC | | ... | | ${framesize}= | Set Variable | IMIX_v4_1 | | ${imix_size}= | Get Frame Size | ${framesize} | | ${min_rate}= | Set Variable | ${10000} | | ${max_rate}= | Calculate pps | ${s_24.5G} | | ... | ${imix_size} + ${ipsec_overhead_gcm} | | ${binary_min}= | Set Variable | ${min_rate} | | ${binary_max}= | Set Variable | ${max_rate} | | ${threshold}= | Set Variable | ${min_rate} | | ${encr_alg}= | Crypto Alg AES GCM 128 | | ${auth_alg}= | Integ Alg AES GCM 128 | | Given Add '1' worker threads and '1' rxqueues in 3-node single-link circular topology | | And Generate keys for IPSec | ${encr_alg} | ${auth_alg} | | And Add PCI devices to DUTs in 3-node single link topology | | And Add cryptodev to all DUTs | ${1} | | And Apply startup configuration on all VPP DUTs | | And Initialize IPSec in 3-node circular topology | | And VPP IPsec Create Tunnel Interfaces | | ... | ${dut1} | ${dut2} | ${dut1_if2_ip4} | ${dut2_if1_ip4} | ${n_tunnels} | | ... | ${encr_alg} | ${encr_key} | ${auth_alg} | ${auth_key} | ${laddr_ip4} | | ... | ${raddr_ip4} | ${addr_range} | | Then Find NDR using binary search and pps | ${framesize} | | ... | ${binary_min} | ${binary_max} | ${traffic_profile} | | ... | ${min_rate} | ${max_rate} | ${threshold} | tc06-IMIX-1t1c-ethip4ipsecbasetnl-ip4base-int-aes-gcm-pdrdisc | | [Documentation] | | ... | [Cfg] DUTs run 1 IPsec tunnel AES GCM in each direction, configured\ | | ... | with 1 thread, 1 phy core, 1 receive queue per NIC port. | | ... | [Ver] Find PDR for IMIX_v4_1 frames using binary search start at 40GE\ | | ... | linerate, step 100kpps and loss tolerance of 0.5%. | | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B) | | ... | | [Tags] | IMIX | 1T1C | STHREAD | PDRDISC | SKIP_PATCH | | ... | | ${framesize}= | Set Variable | IMIX_v4_1 | | ${imix_size}= | Get Frame Size | ${framesize} | | ${min_rate}= | Set Variable | ${10000} | | ${max_rate}= | Calculate pps | ${s_24.5G} | | ... | ${imix_size} + ${ipsec_overhead_gcm} | | ${binary_min}= | Set Variable | ${min_rate} | | ${binary_max}= | Set Variable | ${max_rate} | | ${threshold}= | Set Variable | ${min_rate} | | ${encr_alg}= | Crypto Alg AES GCM 128 | | ${auth_alg}= | Integ Alg AES GCM 128 | | Given Add '1' worker threads and '1' rxqueues in 3-node single-link circular topology | | And Generate keys for IPSec | ${encr_alg} | ${auth_alg} | | And Add PCI devices to DUTs in 3-node single link topology | | And Add cryptodev to all DUTs | ${1} | | And Apply startup configuration on all VPP DUTs | | And Initialize IPSec in 3-node circular topology | | And VPP IPsec Create Tunnel Interfaces | | ... | ${dut1} | ${dut2} | ${dut1_if2_ip4} | ${dut2_if1_ip4} | ${n_tunnels} | | ... | ${encr_alg} | ${encr_key} | ${auth_alg} | ${auth_key} | ${laddr_ip4} | | ... | ${raddr_ip4} | ${addr_range} | | Then Find PDR using binary search and pps | ${framesize} | | ... | ${binary_min} | ${binary_max} | ${traffic_profile} | | ... | ${min_rate} | ${max_rate} | ${threshold} | ${perf_pdr_loss_acceptance} | | ... | ${perf_pdr_loss_acceptance_type} | tc07-64B-2t2c-ethip4ipsecbasetnl-ip4base-int-aes-gcm-ndrdisc | | [Documentation] | | ... | [Cfg] DUTs run 1 IPsec tunnel AES GCM in each direction, configured\ | | ... | with 2 thread, 2 phy core, 1 receive queue per NIC port. | | ... | [Ver] Find NDR for 64 Byte frames\ | | ... | using binary search start at 40GE linerate, step 100kpps. | | ... | | [Tags] | 64B | 2T2C | MTHREAD | NDRDISC | | ... | | ${framesize}= | Set Variable | ${64} | | ${min_rate}= | Set Variable | ${10000} | | ${max_rate}= | Set Variable | ${s_18.75Mpps} | | ${binary_min}= | Set Variable | ${min_rate} | | ${binary_max}= | Set Variable | ${max_rate} | | ${threshold}= | Set Variable | ${min_rate} | | ${encr_alg}= | Crypto Alg AES GCM 128 | | ${auth_alg}= | Integ Alg AES GCM 128 | | Given Add '2' worker threads and '1' rxqueues in 3-node single-link circular topology | | And Generate keys for IPSec | ${encr_alg} | ${auth_alg} | | And Add PCI devices to DUTs in 3-node single link topology | | And Add no multi seg to all DUTs | | And Add cryptodev to all DUTs | ${2} | | And Apply startup configuration on all VPP DUTs | | And Initialize IPSec in 3-node circular topology | | And VPP IPsec Create Tunnel Interfaces | | ... | ${dut1} | ${dut2} | ${dut1_if2_ip4} | ${dut2_if1_ip4} | ${n_tunnels} | | ... | ${encr_alg} | ${encr_key} | ${auth_alg} | ${auth_key} | ${laddr_ip4} | | ... | ${raddr_ip4} | ${addr_range} | | Then Find NDR using binary search and pps | ${framesize} | | ... | ${binary_min} | ${binary_max} | ${traffic_profile} | | ... | ${min_rate} | ${max_rate} | ${threshold} | tc08-64B-2t2c-ethip4ipsecbasetnl-ip4base-int-aes-gcm-pdrdisc | | [Documentation] | | ... | [Cfg] DUTs run 1 IPsec tunnel AES GCM in each direction, configured\ | | ... | with 2 thread, 2 phy core, 1 receive queue per NIC port. | | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 40GE\ | | ... | linerate, step 100kpps and loss tolerance of 0.5%. | | ... | | [Tags] | 64B | 2T2C | MTHREAD | PDRDISC | SKIP_PATCH | | ... | | ${framesize}= | Set Variable | ${64} | | ${min_rate}= | Set Variable | ${10000} | | ${max_rate}= | Set Variable | ${s_18.75Mpps} | | ${binary_min}= | Set Variable | ${min_rate} | | ${binary_max}= | Set Variable | ${max_rate} | | ${threshold}= | Set Variable | ${min_rate} | | ${encr_alg}= | Crypto Alg AES GCM 128 | | ${auth_alg}= | Integ Alg AES GCM 128 | | Given Add '2' worker threads and '1' rxqueues in 3-node single-link circular topology | | And Generate keys for IPSec | ${encr_alg} | ${auth_alg} | | And Add PCI devices to DUTs in 3-node single link topology | | And Add no multi seg to all DUTs | | And Add cryptodev to all DUTs | ${2} | | And Apply startup configuration on all VPP DUTs | | And Initialize IPSec in 3-node circular topology | | And VPP IPsec Create Tunnel Interfaces | | ... | ${dut1} | ${dut2} | ${dut1_if2_ip4} | ${dut2_if1_ip4} | ${n_tunnels} | | ... | ${encr_alg} | ${encr_key} | ${auth_alg} | ${auth_key} | ${laddr_ip4} | | ... | ${raddr_ip4} | ${addr_range} | | Then Find PDR using binary search and pps | ${framesize} | | ... | ${binary_min} | ${binary_max} | ${traffic_profile} | | ... | ${min_rate} | ${max_rate} | ${threshold} | ${perf_pdr_loss_acceptance} | | ... | ${perf_pdr_loss_acceptance_type}