aboutsummaryrefslogtreecommitdiffstats
path: root/src/vnet/qos
AgeCommit message (Expand)AuthorFilesLines
2020-11-27ip: Sub Address Family types. Feature enable for each SAFINeale Ranns1-16/+12
2020-01-10docs: Edit FEATURE.yaml files so they can be publishedJohn DeNisco1-1/+1
2020-01-07qos: Add FEATURE.yamlNeale Ranns1-0/+12
2020-01-03qos: api clenupJakub Grajciar1-7/+8
2019-12-10api: multiple connections per processDave Barach1-1/+1
2019-08-01qos: Uninitialised variable (coverity)Neale Ranns1-0/+3
2019-07-31qos: Store functionNeale Ranns5-6/+661
2019-07-24qos: QoS dump APIsNeale Ranns8-119/+597
2019-03-05qos: migrate old MULTIARCH macros to VLIB_NODE_FNFilip Tehlar4-703/+728
2018-11-15QoS: fix always recoding as IPNeale Ranns1-15/+25
2018-10-23c11 safe string handling supportDave Barach1-1/+1
2018-09-24Trivial: Clean up some typos.Paul Vinciguerra5-8/+8
2018-09-08L2 BVI/FIB: Update L2 FIB table when BVI's MAC changesNeale Ranns1-0/+2
2018-09-06Enum type on the API for QoS sourcesNeale Ranns2-14/+49
2018-07-20QOS: mark/record fix feature ordering c-n-p errorNeale Ranns1-5/+5
2018-07-20QoS: marking and recording for MPLS and VLANNeale Ranns2-18/+259
2018-07-19Remove unused argument to vlib_feature_nextDamjan Marion2-4/+3
2018-07-19qos record:fix disable on interface deleteEyal Bari1-1/+1
2018-07-18qos mark/record: fix disable-sw_if_index range checkEyal Bari2-2/+2
2018-05-04Harmonize vec/pool_get_aligned object sizes and alignment requestsDave Barach1-4/+9
2018-04-24Support QOS_SOURCE_IP recording from L2 input node.Igor Mikhailov (imichail)1-5/+76
2018-03-19QoS code coverity found errorsNeale Ranns1-2/+2
2018-03-16QoS recording and markingNeale Ranns10-0/+1586
b">super(TestPing, self).tearDown() def show_commands_at_teardown(self): self.logger.info(self.vapi.cli("show hardware")) def verify_ping_request(self, p, src, dst, seq): ip = p[IP] self.assertEqual(ip.version, 4) self.assertEqual(ip.flags, 0) self.assertEqual(ip.src, src) self.assertEqual(ip.dst, dst) self.assertEqual(ip.proto, 1) self.assertEqual(len(ip.options), 0) self.assertGreaterEqual(ip.ttl, 254) icmp = p[ICMP] self.assertEqual(icmp.type, 8) self.assertEqual(icmp.code, 0) self.assertEqual(icmp.seq, seq) return icmp def test_ping_basic(self): """ basic ping test """ try: self.pg_enable_capture(self.pg_interfaces) self.pg_start() self.logger.info(self.vapi.cli("show ip4 neighbors")) self.logger.info(self.vapi.cli("show ip6 neighbors")) remote_ip4 = self.pg1.remote_ip4 ping_cmd = "ping " + remote_ip4 + " interval 0.01 repeat 10" ret = self.vapi.cli(ping_cmd) self.logger.info(ret) out = self.pg1.get_capture(10) icmp_id = None icmp_seq = 1 for p in out: icmp = self.verify_ping_request(p, self.pg1.local_ip4, self.pg1.remote_ip4, icmp_seq) icmp_seq = icmp_seq + 1 if icmp_id is None: icmp_id = icmp.id else: self.assertEqual(icmp.id, icmp_id) finally: self.vapi.cli("show error") def test_ping_burst(self): """ burst ping test """ try: self.pg_enable_capture(self.pg_interfaces) self.pg_start() self.logger.info(self.vapi.cli("show ip neighbors")) remote_ip4 = self.pg1.remote_ip4 ping_cmd = "ping " + remote_ip4 + " interval 0.01 burst 3" ret = self.vapi.cli(ping_cmd) self.logger.info(ret) out = self.pg1.get_capture(3*5) icmp_id = None icmp_seq = 1 count = 0 for p in out: icmp = self.verify_ping_request(p, self.pg1.local_ip4, self.pg1.remote_ip4, icmp_seq) count = count + 1 if count >= 3: icmp_seq = icmp_seq + 1 count = 0 if icmp_id is None: icmp_id = icmp.id else: self.assertEqual(icmp.id, icmp_id) finally: self.vapi.cli("show error") def test_ping_src(self): """ ping with source address set """ self.pg_enable_capture(self.pg_interfaces) self.pg_start() self.logger.info(self.vapi.cli("show ip4 neighbors")) self.logger.info(self.vapi.cli("show ip6 neighbors")) nbr_addr = "10.0.0.2" VppIpInterfaceAddress(self, self.pg1, "10.0.0.1", 24).add_vpp_config() VppNeighbor(self, self.pg1.sw_if_index, "00:11:22:33:44:55", nbr_addr).add_vpp_config() ping_cmd = "ping %s interval 0.01 repeat 3" % self.pg1.remote_ip4 ret = self.vapi.cli(ping_cmd) out = self.pg1.get_capture(3) icmp_seq = 1 for p in out: icmp = self.verify_ping_request(p, self.pg1.local_ip4, self.pg1.remote_ip4, icmp_seq) icmp_seq = icmp_seq + 1 self.pg_enable_capture(self.pg_interfaces) self.pg_start() ping_cmd = "ping %s interval 0.01 repeat 3" % nbr_addr ret = self.vapi.cli(ping_cmd) out = self.pg1.get_capture(3) icmp_seq = 1 for p in out: icmp = self.verify_ping_request(p, "10.0.0.1", nbr_addr, icmp_seq) icmp_seq = icmp_seq + 1 def test_ping_fib_routed_dst(self): """ ping destination routed according to FIB table """ try: self.pg1.generate_remote_hosts(1) self.pg_enable_capture(self.pg_interfaces) self.pg_start() routed_dst = "10.0.2.0" self.logger.info(self.vapi.cli("show ip4 neighbors")) VppIpRoute(self, routed_dst, 24, [VppRoutePath(self.pg1.remote_hosts[0].ip4, self.pg1.sw_if_index)]).add_vpp_config() ping_cmd = "ping %s interval 0.01 repeat 3" % routed_dst ret = self.vapi.cli(ping_cmd) self.logger.info(ret) out = self.pg1.get_capture(3) icmp_seq = 1 for p in out: self.verify_ping_request(p, self.pg1.local_ip4, routed_dst, icmp_seq) icmp_seq = icmp_seq + 1 finally: self.vapi.cli("show error")