aboutsummaryrefslogtreecommitdiffstats
path: root/src/vpp-api/python
AgeCommit message (Expand)AuthorFilesLines
2019-09-10papi: let async calls return contextVratko Polak1-1/+6
2019-09-04api: memclnt api use string type.Ole Troan3-6/+6
2019-09-03api: enforce vla is last and fixed string typeOle Troan2-16/+70
2019-08-09stats: create /run/vpp before stat socket bind()YohanPipereau1-1/+1
2019-08-08api: vppapitrace JSON/API trace converterOle Troan2-141/+153
2019-08-08api: api socket respect unix runtime directoryOle Troan1-1/+1
2019-07-31api papi: add alias for timestamp(datetime)/timedeltaPaul Vinciguerra1-1/+8
2019-07-24papi: add additional types to vpp_serializerPaul Vinciguerra1-0/+3
2019-07-16papi: use the injected logger wherever possibleVratko Polak1-18/+6
2019-07-12papi: fix vpp_format from change in vl_api_prefix_tPaul Vinciguerra2-12/+10
2019-07-09papi: update VPPEnumType for python3Paul Vinciguerra1-1/+4
2019-07-08map gbp papi: match endianess of f64Paul Vinciguerra1-1/+1
2019-07-01papi: refactor set_errors_strPaul Vinciguerra1-3/+3
2019-06-26papi: prevent message_table inconsistenciesVratko Polak1-0/+2
2019-06-26api: refactor format_vl_api_prefix_t return keysPaul Vinciguerra2-13/+13
2019-06-25api: fix vac_read return codesPaul Vinciguerra1-2/+9
2019-06-20misc: papi - add __repr__ to FuncWrapperPaul Vinciguerra1-0/+3
2019-06-18misc: vpp_papi- add tests, clean up pep8Paul Vinciguerra7-18/+202
2019-06-17misc: vpp-api - add __repr__ to VPPApiClient.Paul Vinciguerra1-0/+13
2019-06-14stats: add version field to stat segment base headerOle Troan1-0/+3
2019-06-12papi: make socket disconnect more robustVratko Polak1-1/+1
2019-06-07API: Add support for "defaults"Ole Troan4-28/+82
2019-06-07vpp_papi: Context_id allocator for running forked.Paul Vinciguerra2-5/+60
2019-06-07vpp_papi: Fix missing dependency.Paul Vinciguerra1-2/+8
2019-06-07vpp_papi: Fix format_vl_api_address_t under python3.Paul Vinciguerra1-1/+3
2019-06-07vpp_papi: Accept ipaddress.Network objects on prefix_t methods.Paul Vinciguerra1-1/+16
2019-06-07vpp_papi: Fix vapi.disconnect exception.Paul Vinciguerra1-0/+1
2019-06-04stats: removing empty object in stats vectorOle Troan1-1/+3
2019-05-28papi: avoid IOError on disconnectVratko Polak2-6/+18
2019-05-23vpp_papi: Do not raise before find_api_dir()Vratko Polak1-4/+1
2019-05-22stats: support multiple works for error countersOle Troan1-4/+15
2019-05-15vpp_papi: remove dependency on environment var. VPP_API_DIR.Paul Vinciguerra1-6/+9
2019-05-10vpp_transport_socket: make connect more resilientVratko Polak1-11/+32
2019-05-09Improve exceptions in vpp_transport_socket.pyVratko Polak1-2/+4
2019-05-09Fix copypaste in vpp_papi/vpp_transport_socket.pyVratko Polak1-3/+2
2019-05-08Fix Exception typo in vpp_papi/vpp_transport_socket.py.Paul Vinciguerra1-1/+1
2019-05-07Allow repeated connects on PAPI socket transportVratko Polak1-1/+10
2019-04-29API: Add support for limits to language.Ole Troan2-7/+40
2019-04-23API: Python and Unix domain socket improvementOle Troan1-27/+19
2019-04-16stats: Add name vectors to Python clientOle Troan1-3/+21
2019-03-22vppapigen: allow for enum size other than u32Andrew Yourtchenko1-3/+5
2019-03-20vpp_papi: Expose the list of field attributes to the client.Paul Vinciguerra1-0/+1
2019-03-19vpp_papi: specify encoding for .encode()/.decode()Paul Vinciguerra3-9/+10
2019-03-07vpp_papi: Adjust aenum import for python3.Paul Vinciguerra2-4/+11
2019-03-07API: Add python2.7 support for enum flags via aenumOle Troan2-4/+8
2019-03-04test framework: add factory function and default parametersOle Troan1-0/+2
2019-02-28vpp_papi.py: Change VppEnum from explicit metaclass to metaclass wrapper/deco...Paul Vinciguerra1-4/+11
2019-02-26vpp-papi: Only install enum34 for python<=3.4.Paul Vinciguerra1-14/+17
2019-01-17cmake: initial cross-compilation supportDamjan Marion1-1/+0
2019-01-06vpp-api: Add context to VPPStatsIOError.Paul Vinciguerra1-3/+25
s">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, 253 flows per flow-group) 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. | ... | *[Ref] Applicable standard specifications:* RFC2544. *** Variables *** | ${avg_imix_framesize}= | ${357.833} # X520-DA2 bandwidth limit | ${s_limit} | ${10000000000} # SFC profile | ${sfc_profile} | configmaps/eth-1drcl2xcbase-eth-8memif-4drcl2xc-1chain # Traffic profile: | ${traffic_profile} | trex-sl-3n-ethip4-ip4src254 # CPU settings | ${system_cpus}= | ${1} | ${vswitch_cpus}= | ${5} | ${vnf_cpus}= | ${2} *** Keywords *** | Create Kubernetes VSWITCH startup config on all DUTs | | [Documentation] | Create base startup configuration of VSWITCH in Kubernetes | | ... | deploy to all DUTs. | | ... | | ... | *Arguments:* | | ... | - ${framesize} - L2 framesize. Type: integer | | ... | - ${wt} - Worker threads. Type: integer | | ... | - ${rxq} - RX queues. Type: integer | | ... | | ... | *Example:* | | ... | | ... | \| Create Kubernetes VSWITCH startup config on all DUTs \| ${64} \ | | ... | \| ${1} \| ${1} | | ... | | [Arguments] | ${framesize} | ${wt} | ${rxq} | | ${dut1_numa}= | Get interfaces numa node | ${dut1} | | ... | ${dut1_if1} | ${dut1_if2} | | ${dut2_numa}= | Get interfaces numa node | ${dut2} | | ... | ${dut2_if1} | ${dut2_if2} | | ${dut1_if1_pci}= | Get Interface PCI Addr | ${dut1} | ${dut1_if1} | | ${dut1_if2_pci}= | Get Interface PCI Addr | ${dut1} | ${dut1_if2} | | ${dut2_if1_pci}= | Get Interface PCI Addr | ${dut2} | ${dut2_if1} | | ${dut2_if2_pci}= | Get Interface PCI Addr | ${dut2} | ${dut2_if2} | | ${cpu_cnt}= | Evaluate | ${wt}+1 | | ${config}= | Run keyword | Create Kubernetes VSWITCH startup config | | ... | node=${dut1} | cpu_cnt=${cpu_cnt} | cpu_node=${dut1_numa} | | ... | cpu_skip=${system_cpus} | smt_used=${False} | | ... | filename=/tmp/vswitch.conf | framesize=${framesize} | rxq=${rxq} | | ... | if1=${dut1_if1_pci} | if2=${dut1_if2_pci} | | ${config}= | Run keyword | Create Kubernetes VSWITCH startup config | | ... | node=${dut2} | cpu_cnt=${cpu_cnt} | cpu_node=${dut2_numa} | | ... | cpu_skip=${system_cpus} | smt_used=${False} | | ... | filename=/tmp/vswitch.conf | framesize=${framesize} | rxq=${rxq} | | ... | if1=${dut2_if1_pci} | if2=${dut2_if2_pci} | Create Kubernetes VNF'${i}' startup config on all DUTs | | [Documentation] | Create base startup configuration of VNF in Kubernetes | | ... | deploy to all DUTs. | | ... | | ${i_int}= | Convert To Integer | ${i} | | ${cpu_skip}= | Evaluate | ${vswitch_cpus}+${system_cpus} | | ${dut1_numa}= | Get interfaces numa node | ${dut1} | | ... | ${dut1_if1} | ${dut1_if2} | | ${dut2_numa}= | Get interfaces numa node | ${dut2} | | ... | ${dut2_if1} | ${dut2_if2} | | ${config}= | Run keyword | Create Kubernetes VNF startup config | | ... | node=${dut1} | cpu_cnt=${vnf_cpus} | cpu_node=${dut1_numa} | | ... | cpu_skip=${cpu_skip} | smt_used=${False} | filename=/tmp/vnf${i}.conf | | ... | i=${i_int} | | ${config}= | Run keyword | Create Kubernetes VNF startup config | | ... | node=${dut2} | cpu_cnt=${vnf_cpus} | cpu_node=${dut2_numa} | | ... | cpu_skip=${cpu_skip} | smt_used=${False} | filename=/tmp/vnf${i}.conf | | ... | i=${i_int} | L2 Cross Connect Binary Search | | [Arguments] | ${framesize} | ${min_rate} | ${wt} | ${rxq} | ${search_type} | | Set Test Variable | ${framesize} | | Set Test Variable | ${min_rate} | | ${get_framesize}= | Set Variable If | | ... | "${framesize}" == "IMIX_v4_1" | ${avg_imix_framesize} | ${framesize} | | ${max_rate}= | Calculate pps | ${s_limit} | ${get_framesize} | | ${binary_min}= | Set Variable | ${min_rate} | | ${binary_max}= | Set Variable | ${max_rate} | | ${threshold}= | Set Variable | ${min_rate} | | ${dut1_if1_name}= | Get interface name | ${dut1} | ${dut1_if1} | | ${dut1_if2_name}= | Get interface name | ${dut1} | ${dut1_if2} | | ${dut2_if1_name}= | Get interface name | ${dut2} | ${dut2_if1} | | ${dut2_if2_name}= | Get interface name | ${dut2} | ${dut2_if2} | | Create Kubernetes VSWITCH startup config on all DUTs | ${get_framesize} | | ... | ${wt} | ${rxq} | | Create Kubernetes VNF'1' startup config on all DUTs | | Create Kubernetes VNF'2' startup config on all DUTs | | Create Kubernetes VNF'3' startup config on all DUTs | | Create Kubernetes VNF'4' startup config on all DUTs | | Create Kubernetes CM from file on all DUTs | ${nodes} | csit | | ... | name=vswitch-vpp-cfg | vpp.conf=/tmp/vswitch.conf | | Create Kubernetes CM from file on all DUTs | ${nodes} | csit | | ... | name=vnf1-vpp-cfg | vpp.conf=/tmp/vnf1.conf | | Create Kubernetes CM from file on all DUTs | ${nodes} | csit | | ... | name=vnf2-vpp-cfg | vpp.conf=/tmp/vnf2.conf | | Create Kubernetes CM from file on all DUTs | ${nodes} | csit | | ... | name=vnf3-vpp-cfg | vpp.conf=/tmp/vnf3.conf | | Create Kubernetes CM from file on all DUTs | ${nodes} | csit | | ... | name=vnf4-vpp-cfg | vpp.conf=/tmp/vnf4.conf | | Apply Kubernetes resource on node | ${dut1} | | ... | pods/contiv-vnf.yaml | $$VNF$$=vnf1 | | Apply Kubernetes resource on node | ${dut2} | | ... | pods/contiv-vnf.yaml | $$VNF$$=vnf1 | | Apply Kubernetes resource on node | ${dut1} | | ... | pods/contiv-vnf.yaml | $$VNF$$=vnf2 | | Apply Kubernetes resource on node | ${dut2} | | ... | pods/contiv-vnf.yaml | $$VNF$$=vnf2 | | Apply Kubernetes resource on node | ${dut1} | | ... | pods/contiv-vnf.yaml | $$VNF$$=vnf3 | | Apply Kubernetes resource on node | ${dut2} | | ... | pods/contiv-vnf.yaml | $$VNF$$=vnf3 | | Apply Kubernetes resource on node | ${dut1} | | ... | pods/contiv-vnf.yaml | $$VNF$$=vnf4 | | Apply Kubernetes resource on node | ${dut2} | | ... | pods/contiv-vnf.yaml | $$VNF$$=vnf4 | | Apply Kubernetes resource on node | ${dut1} | | ... | ${sfc_profile}.yaml | $$TEST_NAME$$=${TEST NAME} | | ... | $$VSWITCH_IF1$$=${dut1_if1_name} | | ... | $$VSWITCH_IF2$$=${dut1_if2_name} | | Apply Kubernetes resource on node | ${dut2} | | ... | ${sfc_profile}.yaml | $$TEST_NAME$$=${TEST NAME} | | ... | $$VSWITCH_IF1$$=${dut2_if1_name} | | ... | $$VSWITCH_IF2$$=${dut2_if2_name} | | Wait for Kubernetes PODs on all DUTs | ${nodes} | csit | | Set Kubernetes PODs affinity on all DUTs | ${nodes} | | Run Keyword If | '${search_type}' == 'NDR' | | ... | Find NDR using binary search and pps | | ... | ${framesize} | ${binary_min} | ${binary_max} | ${traffic_profile} | | ... | ${min_rate} | ${max_rate} | ${threshold} | | ... | ELSE IF | '${search_type}' == 'PDR' | | ... | 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} *** Test Cases *** | tc01-64B-1t1c-eth-1drcl2xcbase-eth-8memif-4drcl2xc-1chain-k8s-ndrdisc | | [Documentation] | | ... | [Cfg] DUT runs L2XC switching config with 1 phy core,\ | | ... | 1 receive queue per NIC port. | | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\ | | ... | linerate, step 50kpps. | | ... | | [Tags] | 64B | 1C | NDRDISC | | [Template] | L2 Cross Connect Binary Search | | framesize=${64} | min_rate=${50000} | wt=1 | rxq=1 | search_type=NDR | tc02-64B-1t1c-eth-1drcl2xcbase-eth-8memif-4drcl2xc-1chain-k8s-pdrdisc | | [Documentation] | | ... | [Cfg] DUT runs L2XC switching config with 1 phy core,\ | | ... | 1 receive queue per NIC port. | | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\ | | ... | linerate, step 50kpps, LT=0.5%. | | ... | | [Tags] | 64B | 1C | PDRDISC | SKIP_PATCH | | [Template] | L2 Cross Connect Binary Search | | framesize=${64} | min_rate=${50000} | wt=1 | rxq=1 | search_type=PDR | tc03-IMIX-1t1c-eth-1drcl2xcbase-eth-8memif-4drcl2xc-1chain-k8s-ndrdisc | | [Documentation] | | ... | [Cfg] DUT runs L2XC switching config with 1 phy core,\ | | ... | 1 receive queue per NIC port. | | ... | [Ver] Find NDR for IMIX_v4_1 frames using binary search start at 10GE\ | | ... | linerate, step 50kpps. | | ... | IMIX_v4_1 = (28x64B;16x570B;4x1518B) | | ... | | [Tags] | IMIX | 1C | NDRDISC | | [Template] | L2 Cross Connect Binary Search | | framesize=IMIX_v4_1 | min_rate=${50000} | wt=1 | rxq=1 | search_type=NDR | tc04-IMIX-1t1c-eth-1drcl2xcbase-eth-8memif-4drcl2xc-1chain-k8s-pdrdisc | | [Documentation] | | ... | [Cfg] DUT runs L2XC switching config with 1 phy core,\ | | ... | 1 receive queue per NIC port. | | ... | [Ver] Find PDR for IMIX_v4_1 frames using binary search start at 10GE\ | | ... | linerate, step 50kpps, LT=0.5%. | | ... | IMIX_v4_1 = (28x64B;16x570B;4x1518B) | | ... | | [Tags] | IMIX | 1C | PDRDISC | SKIP_PATCH | | [Template] | L2 Cross Connect Binary Search | | framesize=IMIX_v4_1 | min_rate=${50000} | wt=1 | rxq=1 | search_type=PDR | tc05-1518B-1t1c-eth-1drcl2xcbase-eth-8memif-4drcl2xc-1chain-k8s-ndrdisc | | [Documentation] | | ... | [Cfg] DUT runs L2XC switching config with 1 phy core,\ | | ... | 1 receive queue per NIC port. | | ... | [Ver] Find NDR for 1518 Byte frames using binary search start at 10GE\ | | ... | linerate, step 50kpps. | | ... | | [Tags] | 1518B | 1C | NDRDISC | | [Template] | L2 Cross Connect Binary Search | | framesize=${1518} | min_rate=${50000} | wt=1 | rxq=1 | search_type=NDR | tc06-1518B-1t1c-eth-1drcl2xcbase-eth-8memif-4drcl2xc-1chain-k8s-pdrdisc | | [Documentation] | | ... | [Cfg] DUT runs L2XC switching config with 1 phy core,\ | | ... | 1 receive queue per NIC port. | | ... | [Ver] Find PDR for 1518 Byte frames using binary search start at 10GE\ | | ... | linerate, step 50kpps, LT=0.5%. | | ... | | [Tags] | 1518B | 1C | PDRDISC | SKIP_PATCH | | [Template] | L2 Cross Connect Binary Search | | framesize=${1518} | min_rate=${50000} | wt=1 | rxq=1 | search_type=PDR | tc07-64B-2t2c-eth-1drcl2xcbase-eth-8memif-4drcl2xc-1chain-k8s-ndrdisc | | [Documentation] | | ... | [Cfg] DUT runs L2XC switching config with 2 phy core,\ | | ... | 1 receive queue per NIC port. | | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\ | | ... | linerate, step 50kpps. | | ... | | [Tags] | 64B | 2C | NDRDISC | | [Template] | L2 Cross Connect Binary Search | | framesize=${64} | min_rate=${50000} | wt=2 | rxq=1 | search_type=NDR | tc08-64B-2t2c-eth-1drcl2xcbase-eth-8memif-4drcl2xc-1chain-k8s-pdrdisc | | [Documentation] | | ... | [Cfg] DUT runs L2XC switching config with 2 phy core,\ | | ... | 1 receive queue per NIC port. | | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\ | | ... | linerate, step 50kpps, LT=0.5%. | | ... | | [Tags] | 64B | 2C | PDRDISC | SKIP_PATCH | | [Template] | L2 Cross Connect Binary Search | | framesize=${64} | min_rate=${50000} | wt=2 | rxq=1 | search_type=PDR | tc09-IMIX-2t2c-eth-1drcl2xcbase-eth-8memif-4drcl2xc-1chain-k8s-ndrdisc | | [Documentation] | | ... | [Cfg] DUT runs L2XC switching config with 2 phy core,\ | | ... | 1 receive queue per NIC port. | | ... | [Ver] Find NDR for IMIX_v4_1 frames using binary search start at 10GE\ | | ... | linerate, step 50kpps. | | ... | IMIX_v4_1 = (28x64B;16x570B;4x1518B) | | ... | | [Tags] | IMIX | 2C | NDRDISC | SKIP_PATCH | | [Template] | L2 Cross Connect Binary Search | | framesize=IMIX_v4_1 | min_rate=${50000} | wt=2 | rxq=1 | search_type=NDR | tc10-IMIX-2t2c-eth-1drcl2xcbase-eth-8memif-4drcl2xc-1chain-k8s-pdrdisc | | [Documentation] | | ... | [Cfg] DUT runs L2XC switching config with 1 phy core,\ | | ... | 1 receive queue per NIC port. | | ... | [Ver] Find PDR for IMIX_v4_1 frames using binary search start at 10GE\ | | ... | linerate, step 50kpps, LT=0.5%. | | ... | IMIX_v4_1 = (28x64B;16x570B;4x1518B) | | ... | | [Tags] | IMIX | 2C | PDRDISC | SKIP_PATCH | | [Template] | L2 Cross Connect Binary Search | | framesize=IMIX_v4_1 | min_rate=${50000} | wt=2 | rxq=1 | search_type=PDR | tc11-1518B-2t2c-eth-1drcl2xcbase-eth-8memif-4drcl2xc-1chain-k8s-ndrdisc | | [Documentation] | | ... | [Cfg] DUT runs L2XC switching config with 1 phy core,\ | | ... | 1 receive queue per NIC port. | | ... | [Ver] Find NDR for 1518 Byte frames using binary search start at 10GE\ | | ... | linerate, step 50kpps. | | ... | | [Tags] | 1518B | 2C | NDRDISC | SKIP_PATCH | | [Template] | L2 Cross Connect Binary Search | | framesize=${1518} | min_rate=${50000} | wt=2 | rxq=1 | search_type=NDR | tc12-1518B-2t2c-eth-1drcl2xcbase-eth-8memif-4drcl2xc-1chain-k8s-pdrdisc | | [Documentation] | | ... | [Cfg] DUT runs L2XC switching config with 1 phy core,\ | | ... | 1 receive queue per NIC port. | | ... | [Ver] Find PDR for 1518 Byte frames using binary search start at 10GE\ | | ... | linerate, step 50kpps, LT=0.5%. | | ... | | [Tags] | 1518B | 2C | PDRDISC | SKIP_PATCH | | [Template] | L2 Cross Connect Binary Search | | framesize=${1518} | min_rate=${50000} | wt=2 | rxq=1 | search_type=PDR