from remote_test import RemoteClass, RemoteVppTestCase
from vpp_memif import MEMIF_MODE, MEMIF_ROLE, remove_all_memif_vpp_config, \
VppSocketFilename, VppMemif
+from vpp_ip_route import VppIpRoute, VppRoutePath
class TestMemif(VppTestCase):
return False
def test_memif_socket_filename_add_del(self):
- """ Memif socket filenale add/del """
+ """ Memif socket filename add/del """
# dump default socket filename
dump = self.vapi.memif_socket_filename_dump()
pkts = []
for i in range(num):
pkt = (Ether(dst=pg.local_mac, src=pg.remote_mac) /
- IP(src=pg.remote_ip4, dst=memif.ip_prefix.address) /
+ IP(src=pg.remote_ip4, dst=memif.ip4_addr) /
ICMP(id=memif.if_id, type='echo-request', seq=i))
pkts.append(pkt)
return pkts
def _verify_icmp(self, pg, memif, rx, seq):
ip = rx[IP]
- self.assertEqual(ip.src, memif.ip_prefix.address)
+ self.assertEqual(ip.src, memif.ip4_addr)
self.assertEqual(ip.dst, pg.remote_ip4)
self.assertEqual(ip.proto, 1)
icmp = rx[ICMP]
def test_memif_ping(self):
""" Memif ping """
+
memif = VppMemif(self, MEMIF_ROLE.SLAVE, MEMIF_MODE.ETHERNET)
remote_socket = VppSocketFilename(self.remote_test, 1,
self.assertTrue(remote_memif.wait_for_link_up(5))
# add routing to remote vpp
- dst_addr = socket.inet_pton(socket.AF_INET, self.pg0._local_ip4_subnet)
- dst_addr_len = 24
- next_hop_addr = socket.inet_pton(socket.AF_INET,
- memif.ip_prefix.address)
- self.remote_test.vapi.ip_add_del_route(
- dst_address=dst_addr, dst_address_length=dst_addr_len,
- next_hop_address=next_hop_addr)
+ route = VppIpRoute(self.remote_test, self.pg0._local_ip4_subnet, 24,
+ [VppRoutePath(memif.ip4_addr, 0xffffffff)],
+ register=False)
+
+ route.add_vpp_config()
# create ICMP echo-request from local pg to remote memif
packet_num = 10
self._verify_icmp(self.pg0, remote_memif, c, seq)
seq += 1
+ route.remove_vpp_config()
+
if __name__ == '__main__':
unittest.main(testRunner=VppTestRunner)