aboutsummaryrefslogtreecommitdiffstats
path: root/tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4udp-ip4base-iacl1sl-10kflows-ndrpdr.robot
diff options
context:
space:
mode:
authorViliam Luc <vluc@cisco.com>2021-10-28 15:05:53 +0200
committerTibor Frank <tifrank@cisco.com>2021-12-13 10:57:25 +0000
commite82ebbd96e2ba73276e2f1b6d7f9c2d8a9442c3f (patch)
tree8548662c60534211b7eb34f2f2881636ec3797b9 /tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4udp-ip4base-iacl1sl-10kflows-ndrpdr.robot
parentf87931f3c85fe71bb3124e787168abafc5874c54 (diff)
doc: fixing documentation structure
When building documentation using sphinx we see ~1200 similar warnings [0] [0] - https://s3-logs.fd.io/vex-yul-rot-jenkins-1/csit-verify-tox-master-ubuntu2004-x86_64/3289/doc_verify.log.gz These warning are harmless and can be fixed later Signed-off-by: Viliam Luc <vluc@cisco.com> Change-Id: I1ac1099d38935971d47491dde905715345d3935c
Diffstat (limited to 'tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4udp-ip4base-iacl1sl-10kflows-ndrpdr.robot')
-rw-r--r--tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4udp-ip4base-iacl1sl-10kflows-ndrpdr.robot45
1 files changed, 25 insertions, 20 deletions
diff --git a/tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4udp-ip4base-iacl1sl-10kflows-ndrpdr.robot b/tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4udp-ip4base-iacl1sl-10kflows-ndrpdr.robot
index 9f767f39a7..21681928ae 100644
--- a/tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4udp-ip4base-iacl1sl-10kflows-ndrpdr.robot
+++ b/tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4udp-ip4base-iacl1sl-10kflows-ndrpdr.robot
@@ -27,25 +27,30 @@
|
| Test Template | Local Template
|
-| Documentation | *RFC2544: Packet throughput IPv4 test cases with ACL*
-|
-| ... | *[Top] Network Topologies:* TG-DUT1-TG 2-node circular topology\
+| Documentation | **RFC2544: Packet throughput IPv4 test cases with ACL**
+| ... |
+| ... | - **[Top] Network Topologies:** TG-DUT1-TG 2-node circular topology \
| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4-UDP for IPv4 routing.
-| ... | *[Cfg] DUT configuration:* DUT1 is configured with IPv4 routing.\
-| ... | Required ACL rules are applied to input paths of both DUT1 intefaces.\
-| ... | DUT1 is tested with ${nic_name}.\
-| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
-| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
-| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
-| ... | of packets transmitted. NDR and PDR are discovered for different\
-| ... | Ethernet L2 frame sizes using MLRsearch library.\
-| ... | Test packets are generated by TG on links to DUT1. TG traffic profile\
-| ... | contains two L3 flow-groups (flow-group per direction, ${flows_per_dir}\
-| ... | 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.
+| ... |
+| ... | - **[Enc] Packet Encapsulations:** Eth-IPv4-UDP for IPv4 routing.
+| ... |
+| ... | - **[Cfg] DUT configuration:** DUT1 is configured with IPv4 routing. \
+| ... | Required ACL rules are applied to input paths of both DUT1 intefaces. \
+| ... | DUT1 is tested with ${nic_name}.
+| ... |
+| ... | - **[Ver] TG verification:** TG finds and reports throughput NDR (Non \
+| ... | Drop Rate) with zero packet loss tolerance and throughput PDR \
+| ... | (Partial Drop Rate) with non-zero packet loss tolerance (LT) \
+| ... | expressed in percentage of packets transmitted. NDR and PDR are \
+| ... | discovered for different Ethernet L2 frame sizes using MLRsearch \
+| ... | library.
+| ... | Test packets are generated by TG on links to DUT1. TG traffic profile \
+| ... | contains two L3 flow-groups (flow-group per direction, \
+| ... | ${flows_per_dir} 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 ***
| @{plugins_to_enable}= | dpdk_plugin.so | perfmon_plugin.so | acl_plugin.so
@@ -80,9 +85,9 @@
| Local Template
| |
| | [Documentation]
-| | ... | [Cfg] DUT runs IPv4 routing config.
+| | ... | - **[Cfg]** DUT runs IPv4 routing config. \
| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
-| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
+| | ... | - **[Ver]** Measure NDR and PDR values using MLRsearch algorithm.
| |
| | ... | *Arguments:*
| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
>(self, addr): self.addr = addr self.ip_addr = ip_address(text_type(self.addr)) def encode(self): if self.version == 6: return {'ip6': self.ip_addr.packed} else: return {'ip4': self.ip_addr.packed} @property def version(self): return self.ip_addr.version @property def address(self): return self.addr @property def length(self): return self.ip_addr.max_prefixlen @property def bytes(self): return self.ip_addr.packed def __eq__(self, other): if isinstance(other, self.__class__): return self.ip_addr == other.ip_addr elif hasattr(other, "ip4") and hasattr(other, "ip6"): # vl_api_address_union_t if 4 == self.version: return self.ip_addr.packed == other.ip4 else: return self.ip_addr.packed == other.ip6 else: _log.error("Comparing VppIpAddressUnions:%s" " with incomparable type: %s", self, other) return NotImplemented class VppIpAddress(): def __init__(self, addr): self.addr = VppIpAddressUnion(addr) def encode(self): if self.addr.version == 6: return { 'af': VppEnum.vl_api_address_family_t.ADDRESS_IP6, 'un': self.addr.encode() } else: return { 'af': VppEnum.vl_api_address_family_t.ADDRESS_IP4, 'un': self.addr.encode() } def __eq__(self, other): if isinstance(other, self.__class__): return self.addr == other.addr elif hasattr(other, "af") and hasattr(other, "un"): # a vp_api_address_t if 4 == self.version: return other.af == \ VppEnum.vl_api_address_family_t.ADDRESS_IP4 and \ other.un == self.addr else: return other.af == \ VppEnum.vl_api_address_family_t.ADDRESS_IP6 and \ other.un == self.addr else: _log.error( "Comparing VppIpAddress:<%s> %s with incomparable " "type: <%s> %s", self.__class__.__name__, self, other.__class__.__name__, other) return NotImplemented def __ne__(self, other): return not (self == other) def __str__(self): return self.address @property def bytes(self): return self.addr.bytes @property def address(self): return self.addr.address @property def length(self): return self.addr.length @property def version(self): return self.addr.version @property def is_ip6(self): return (self.version == 6) @property def af(self): if self.version == 6: return AF_INET6 else: return AF_INET @property def dpo_proto(self): if self.version == 6: return DpoProto.DPO_PROTO_IP6 else: return DpoProto.DPO_PROTO_IP4 class VppIpPrefix(): def __init__(self, addr, len): self.addr = VppIpAddress(addr) self.len = len def encode(self): return {'address': self.addr.encode(), 'address_length': self.len} @property def address(self): return self.addr.address @property def bytes(self): return self.addr.bytes @property def length(self): return self.len @property def is_ip6(self): return self.addr.is_ip6 def __str__(self): return "%s/%d" % (self.address, self.length) def __eq__(self, other): if isinstance(other, self.__class__): return (self.len == other.len and self.addr == other.addr) elif hasattr(other, "address") and hasattr(other, "address_length"): # vl_api_prefix_t return self.len == other.address_length and \ self.addr == other.address else: _log.error( "Comparing VppIpPrefix:%s with incomparable type: %s" % (self, other)) return NotImplemented class VppIpMPrefix(): def __init__(self, saddr, gaddr, len): self.saddr = saddr self.gaddr = gaddr self.len = len self.ip_saddr = ip_address(text_type(self.saddr)) self.ip_gaddr = ip_address(text_type(self.gaddr)) if self.ip_saddr.version != self.ip_gaddr.version: raise ValueError('Source and group addresses must be of the ' 'same address family.') def encode(self): if 6 == self.ip_saddr.version: prefix = { 'af': VppEnum.vl_api_address_family_t.ADDRESS_IP6, 'grp_address': {'ip6': self.ip_gaddr.packed}, 'src_address': {'ip6': self.ip_saddr.packed}, 'grp_address_length': self.len, } else: prefix = { 'af': VppEnum.vl_api_address_family_t.ADDRESS_IP4, 'grp_address': {'ip4': self.ip_gaddr.packed}, 'src_address': {'ip4': self.ip_saddr.packed}, 'grp_address_length': self.len, } return prefix