diff options
Diffstat (limited to 'test/test_ietf_interfaces.py')
-rw-r--r-- | test/test_ietf_interfaces.py | 134 |
1 files changed, 86 insertions, 48 deletions
diff --git a/test/test_ietf_interfaces.py b/test/test_ietf_interfaces.py index 2b421d3..3b08859 100644 --- a/test/test_ietf_interfaces.py +++ b/test/test_ietf_interfaces.py @@ -1,11 +1,12 @@ # # Copyright (c) 2019 PANTHEON.tech. +# Copyright (c) 2019 Cisco and/or its affiliates. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at: # -# http://www.apache.org/licenses/LICENSE-2.0 +# http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, @@ -18,6 +19,11 @@ import unittest import util from framework import SweetcombTestCase +from ydk.models.ietf import ietf_interfaces +from ydk.models.ietf import iana_if_type +from ydk.services import CRUDService +from ydk.errors import YError + class TestIetfInterfaces(SweetcombTestCase): @@ -31,50 +37,82 @@ class TestIetfInterfaces(SweetcombTestCase): self.topology.close_topology() - def test_interface_up(self): - - self.vpp.show_interface() - - self.netopeer_cli.get("/ietf-interfaces:*") - ts = '''<interfaces xmlns=\"urn:ietf:params:xml:ns:yang:ietf-interfaces\"> - <interface> - <name>local0</name> - <enabled>true</enabled> - </interface> - <interface> - <name>host-vpp1</name> - <enabled>true</enabled> - </interface> -</interfaces>''' - - self.netopeer_cli.edit_config(ts) - self.netopeer_cli.get("/ietf-interfaces:*") - - self.vpp.show_interface() - - def test_ip_addr(self): - self.vpp.show_address() - self.netopeer_cli.get("/ietf-interfaces:*") - - util.ping('192.168.0.1') - - ts = '''<interfaces xmlns=\"urn:ietf:params:xml:ns:yang:ietf-interfaces\" xmlns:ip=\"urn:ietf:params:xml:ns:yang:ietf-ip\"> - <interface> - <name>host-vpp1</name> - <enabled>true</enabled> - <ip:ipv4> - <ip:enabled>true</ip:enabled> - <ip:address> - <ip:ip>192.168.0.1</ip:ip> - <ip:prefix-length>24</ip:prefix-length> - </ip:address> - </ip:ipv4> - </interface> -</interfaces>''' - - self.netopeer_cli.edit_config(ts) - self.netopeer_cli.get("/ietf-interfaces:*") - - self.vpp.show_address() - - util.ping('192.168.0.1') + def test_interface(self): + name = "host-vpp1" + crud_service = CRUDService() + + interface = ietf_interfaces.Interfaces.Interface() + interface.name = name + interface.type = iana_if_type.EthernetCsmacd() + interface.enabled = True + interface.ipv4 = interface.Ipv4() + interface.ipv4.mtu = 1500 + + try: + crud_service.create(self.netopeer_cli, interface) + except YError as err: + print("Error create services: {}".format(err)) + assert() + + p = self.vppctl.show_interface(name) + self.assertIsNotNone(p) + + self.assertEquals(interface.enabled, p.State) + #FIXME: MTU assert + #self.assertEquals(interface.ipv4.mtu, p.MTU) + + interface.enabled = False + + try: + crud_service.create(self.netopeer_cli, interface) + except YError as err: + print("Error create services: {}".format(err)) + assert() + + p = self.vppctl.show_interface(name) + self.assertIsNotNone(p) + self.assertEquals(interface.enabled, p.State) + + def test_ipv4(self): + name = "host-vpp1" + crud_service = CRUDService() + + interface = ietf_interfaces.Interfaces.Interface() + interface.name = name + interface.type = iana_if_type.EthernetCsmacd() + interface.ipv4 = interface.Ipv4() + addr = interface.Ipv4().Address() + addr.ip = "192.168.0.1" + addr.prefix_length = 24 + interface.ipv4.address.append(addr) + addr1 = interface.Ipv4().Address() + addr1.ip = "142.168.0.1" + addr1.prefix_length = 14 + interface.ipv4.address.append(addr1) + + try: + crud_service.create(self.netopeer_cli, interface) + except YError as err: + print("Error create services: {}".format(err)) + assert() + + a = self.vppctl.show_address(name) + self.assertIsNotNone(a) + + prefix = interface.ipv4.address[0].ip + "/" + \ + str(interface.ipv4.address[0].prefix_length) + self.assertIn(prefix, a.addr) + + prefix = interface.ipv4.address[1].ip + "/" + \ + str(interface.ipv4.address[1].prefix_length) + self.assertIn(prefix, a.addr) + + try: + crud_service.delete(self.netopeer_cli, interface) + except YError as err: + print("Error create services: {}".format(err)) + assert() + + a = self.vppctl.show_address(name) + + self.assertIsNone(a) |