summaryrefslogtreecommitdiffstats
path: root/test/test_mpls.py
AgeCommit message (Expand)AuthorFilesLines
2018-12-20FIB: encode the label stack in the FIB path during table dumpNeale Ranns1-1/+7
2018-09-27IPIP and IPv6 fragmentationOle Troan1-1/+1
2018-09-26MPLS tunnel dump: use sw_if_index not tunnel_indexNeale Ranns1-0/+13
2018-09-20Route counters in the stats segmentNeale Ranns1-0/+21
2018-09-11GBP Endpoint UpdatesNeale Ranns1-1/+2
2018-03-09MPLS Unifom modeNeale Ranns1-368/+473
2018-01-09test: consolidate the multiple versions of send_and_*Neale Ranns1-16/+7
2017-11-11MPLS disposition actions at the tail of unicast LSPsNeale Ranns1-2/+112
2017-10-31Refactor IP input checks for re-use at MPLS dispositionNeale Ranns1-2/+21
2017-09-11FIB table add/delete APINeale Ranns1-6/+42
2017-08-08L2 over MPLSNeale Ranns1-56/+262
2017-05-26MPLS lookup DPO does not pop the label (nor does it handle replicate)Neale Ranns1-0/+20
2017-05-24Missing VLIB node for IPv6 disposition from mcast MPLS LSPNeale Ranns1-4/+73
2017-05-23Labelled attached paths via an MPLS tunnelNeale Ranns1-2/+25
2017-04-24Improve Load-Balance MAPsNeale Ranns1-0/+359
2017-04-07MPLS McastNeale Ranns1-22/+255
2017-03-17Fix IP feature ordering.Neale Ranns1-0/+83
2017-03-03Changing the IP table for an interface is an error if the interface already h...Neale Ranns1-4/+5
2017-02-20Python test IP and MPLS objects conform to infra.Neale Ranns1-75/+66
2016-12-23make test: improve handling of packet capturesKlement Sekera1-17/+24
2016-12-16make test: improve robustness and performanceKlement Sekera1-23/+6
2016-12-14Ping response in a VRF context uses correct FIB for responseNeale Ranns1-10/+73
2016-12-13make test: Use VXLAN built in scapy 2.3.3Matej Klotton1-28/+33
2016-12-06add missing import to mpls testGabriel Ganne1-0/+1
2016-12-05make test: fix missing log/packet messagesKlement Sekera1-6/+6
2016-12-02MPLS infrastructure improvmentsNeale Ranns1-20/+502
2016-11-01MPLS Exp-null TestsNeale Ranns1-0/+209
span>): self.test.vapi.delete_subif(self._sw_if_index) class VppDot1QSubint(VppSubInterface): @property def vlan(self): """VLAN tag""" return self._vlan def __init__(self, test, parent, sub_id, vlan=None): if vlan is None: vlan = sub_id self._vlan = vlan r = test.vapi.create_vlan_subif(parent.sw_if_index, vlan) self._sw_if_index = r.sw_if_index super(VppDot1QSubint, self).__init__(test, parent, sub_id) def create_arp_req(self): packet = VppPGInterface.create_arp_req(self) return self.add_dot1_layer(packet) def create_ndp_req(self): packet = VppPGInterface.create_ndp_req(self) return self.add_dot1_layer(packet) def add_dot1_layer(self, packet): payload = packet.payload packet.remove_payload() packet.add_payload(Dot1Q(vlan=self.sub_id) / payload) return packet def remove_dot1_layer(self, packet): payload = packet.payload self.test.instance().assertEqual(type(payload), Dot1Q) self.test.instance().assertEqual(payload.vlan, self.vlan) payload = payload.payload packet.remove_payload() packet.add_payload(payload) return packet class VppDot1ADSubint(VppSubInterface): @property def outer_vlan(self): """Outer VLAN tag""" return self._outer_vlan @property def inner_vlan(self): """Inner VLAN tag""" return self._inner_vlan def __init__(self, test, parent, sub_id, outer_vlan, inner_vlan): r = test.vapi.create_subif(parent.sw_if_index, sub_id, outer_vlan, inner_vlan, dot1ad=1, two_tags=1, exact_match=1) self._sw_if_index = r.sw_if_index super(VppDot1ADSubint, self).__init__(test, parent, sub_id) self.DOT1AD_TYPE = 0x88A8 self.DOT1Q_TYPE = 0x8100 self._outer_vlan = outer_vlan self._inner_vlan = inner_vlan def create_arp_req(self): packet = VppPGInterface.create_arp_req(self) return self.add_dot1_layer(packet) def create_ndp_req(self): packet = VppPGInterface.create_ndp_req(self) return self.add_dot1_layer(packet) def add_dot1_layer(self, packet): payload = packet.payload packet.remove_payload() packet.add_payload(Dot1Q(vlan=self.outer_vlan) / Dot1Q(vlan=self.inner_vlan) / payload) packet.type = self.DOT1AD_TYPE return packet def remove_dot1_layer(self, packet): self.test.instance().assertEqual(type(packet), Ether) self.test.instance().assertEqual(packet.type, self.DOT1AD_TYPE) packet.type = self.DOT1Q_TYPE packet = Ether(str(packet)) payload = packet.payload self.test.instance().assertEqual(type(payload), Dot1Q) self.test.instance().assertEqual(payload.vlan, self.outer_vlan) payload = payload.payload self.test.instance().assertEqual(type(payload), Dot1Q) self.test.instance().assertEqual(payload.vlan, self.inner_vlan) payload = payload.payload packet.remove_payload() packet.add_payload(payload) return packet