Commit 9370a067 authored by Mohamad Rahhal's avatar Mohamad Rahhal
Browse files

Device component - gNMI Nokia SR Linux Driver:

- Added tests
parent 21fd9d65
Loading
Loading
Loading
Loading
+212 −8
Original line number Diff line number Diff line
@@ -11,17 +11,138 @@
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

#
import logging, os, time
os.environ['DEVICE_EMULATED_ONLY'] = 'YES'

 #pylint: disable=wrong-import-position
from device.service.drivers.gnmi_nokia_srlinux.GnmiNokiaSrLinuxDriver import GnmiNokiaSrLinuxDriver
from device.service.driver_api._Driver import RESOURCE_INTERFACES , RESOURCE_NETWORK_INSTANCES,RESOURCE_TUNNEL_INTERFACE,RESOURCE_ROUTING_POLICY,RESOURCE_ENDPOINTS
#from test_gnmi_nokia_srlinux import interface,routing_policy,network_instance_default,vlan_interface,network_instance_vrf,tunnel_interface

logging.basicConfig(level=logging.DEBUG)
LOGGER = logging.getLogger(__name__)
LOGGER.setLevel(logging.DEBUG)
#
#def test_gnmi_nokia_srlinux():
#    driver_settings_leaf1 = {
#        'protocol': 'gnmi',
#        'username': 'admin',
#        'password': 'NokiaSrl1!',
#        'use_tls': True,
#    }
#    dev1_driver = GnmiNokiaSrLinuxDriver('172.20.20.102', 57400, **driver_settings_leaf1)
#    dev1_driver.Connect()
#    resources_to_get_leaf1 = [RESOURCE_INTERFACES,RESOURCE_NETWORK_INSTANCES,RESOURCE_TUNNEL_INTERFACE,RESOURCE_ROUTING_POLICY]
#    #resources_to_get_leaf1 = [RESOURCE_NETWORK_INSTANCES]
#    LOGGER.info('resources_to_get = {:s}'.format(str(resources_to_get_leaf1)))
#    results_getconfig_leaf1 = dev1_driver.GetConfig(resources_to_get_leaf1)
#    LOGGER.info('results_getconfig = {:s}'.format(str(results_getconfig_leaf1)))
#    time.sleep(1)
#    dev1_driver.Disconnect()

#time computing:
import logging
import time

# Assuming GnmiNokiaSrLinuxDriver and other required functions are imported correctly
# Replace LOGGER with logging to maintain consistency
#
#logging.basicConfig(level=logging.INFO, format='%(asctime)s - %(levelname)s - %(message)s')
#
#def test_gnmi_nokia_srlinux():
#    driver_settings_leaf1 = {
#        'protocol': 'gnmi',
#        'username': 'admin',
#        'password': 'NokiaSrl1!',
#        'use_tls': True,
#    }
#    driver_settings_leaf2 = {
#        'protocol': 'gnmi',
#        'username': 'admin',
#        'password': 'NokiaSrl1!',
#        'use_tls': True,
#    }
#    driver_settings_spine = {
#        'protocol': 'gnmi',
#        'username': 'admin',
#        'password': 'NokiaSrl1!',
#        'use_tls': True,
#    }
#
#    dev1_driver = GnmiNokiaSrLinuxDriver('172.20.20.102', 57400, **driver_settings_leaf1)
#    dev2_driver = GnmiNokiaSrLinuxDriver('172.20.20.103', 57400, **driver_settings_leaf2)
#    spine_driver = GnmiNokiaSrLinuxDriver('172.20.20.101', 57400, **driver_settings_spine)
#
#    dev1_driver.Connect()
#    dev2_driver.Connect()
#    spine_driver.Connect()
#
#    # Resources to get for all devices
#    resources_to_get = [RESOURCE_INTERFACES, RESOURCE_NETWORK_INSTANCES, RESOURCE_TUNNEL_INTERFACE, RESOURCE_ROUTING_POLICY]
#
#    # Initialize lists to store elapsed times for each device
#    elapsed_times_leaf1 = []
#    elapsed_times_leaf2 = []
#    elapsed_times_spine = []
#
#    for i in range(10):  # Run the test 10 times
#        t0_iteration = time.time()
#
#        # Measure time for GetConfig on Leaf 1
#        t0_leaf1 = time.time()
#        results_getconfig_leaf1 = dev1_driver.GetConfig(resources_to_get)
#        logging.info('Results of GetConfig on Leaf 1 in iteration %d: %s', i, results_getconfig_leaf1)
#        time.sleep(1)
#        t1_leaf1 = time.time()
#        elapsed_time_leaf1 = t1_leaf1 - t0_leaf1
#        elapsed_times_leaf1.append(elapsed_time_leaf1)
#        logging.info("Elapsed time for GetConfig on Leaf 1 in iteration %d: %.2f seconds", i, elapsed_time_leaf1)
#
#        # Measure time for GetConfig on Leaf 2
#        t0_leaf2 = time.time()
#        results_getconfig_leaf2 = dev2_driver.GetConfig(resources_to_get)
#        logging.info('Results of GetConfig on Leaf 2 in iteration %d: %s', i, results_getconfig_leaf2)
#        time.sleep(1)
#        t1_leaf2 = time.time()
#        elapsed_time_leaf2 = t1_leaf2 - t0_leaf2
#        elapsed_times_leaf2.append(elapsed_time_leaf2)
#        logging.info("Elapsed time for GetConfig on Leaf 2 in iteration %d: %.2f seconds", i, elapsed_time_leaf2)
#
#        # Measure time for GetConfig on Spine
#        t0_spine = time.time()
#        results_getconfig_spine = spine_driver.GetConfig(resources_to_get)
#        logging.info('Results of GetConfig on Spine in iteration %d: %s', i, results_getconfig_spine)
#        time.sleep(1)
#        t1_spine = time.time()
#        elapsed_time_spine = t1_spine - t0_spine
#        elapsed_times_spine.append(elapsed_time_spine)
#        logging.info("Elapsed time for GetConfig on Spine in iteration %d: %.2f seconds", i, elapsed_time_spine)
#
#        # Measure the end time for the iteration
#        t1_iteration = time.time()
#        elapsed_time_iteration = t1_iteration - t0_iteration
#        logging.info("Total elapsed time for iteration %d: %.2f seconds", i, elapsed_time_iteration)
#
#    # Log the elapsed times for each device after all iterations
#    logging.info("Elapsed times for Leaf 1: %s", elapsed_times_leaf1)
#    logging.info("Elapsed times for Leaf 2: %s", elapsed_times_leaf2)
#    logging.info("Elapsed times for Spine: %s", elapsed_times_spine)
#
#    # Disconnect from devices
#    dev1_driver.Disconnect()
#    dev2_driver.Disconnect()
#    spine_driver.Disconnect()
#
#    return elapsed_times_leaf1, elapsed_times_leaf2, elapsed_times_spine

import logging
import time

# Assuming GnmiNokiaSrLinuxDriver and other required functions are imported correctly
# Replace LOGGER with logging to maintain consistency

logging.basicConfig(level=logging.INFO, format='%(asctime)s - %(levelname)s - %(message)s')

def test_gnmi_nokia_srlinux():
    driver_settings_leaf1 = {
@@ -30,12 +151,95 @@ def test_gnmi_nokia_srlinux():
        'password': 'NokiaSrl1!',
        'use_tls': True,
    }
    driver_settings_leaf2 = {
        'protocol': 'gnmi',
        'username': 'admin',
        'password': 'NokiaSrl1!',
        'use_tls': True,
    }
    driver_settings_spine = {
        'protocol': 'gnmi',
        'username': 'admin',
        'password': 'NokiaSrl1!',
        'use_tls': True,
    }

    dev1_driver = GnmiNokiaSrLinuxDriver('172.20.20.102', 57400, **driver_settings_leaf1)
    dev2_driver = GnmiNokiaSrLinuxDriver('172.20.20.103', 57400, **driver_settings_leaf2)
    spine_driver = GnmiNokiaSrLinuxDriver('172.20.20.101', 57400, **driver_settings_spine)

    dev1_driver.Connect()
    #resources_to_get_leaf1 = [RESOURCE_INTERFACES,RESOURCE_NETWORK_INSTANCES,RESOURCE_TUNNEL_INTERFACE,RESOURCE_ROUTING_POLICY]
    resources_to_get_leaf1 = [RESOURCE_NETWORK_INSTANCES]
    LOGGER.info('resources_to_get = {:s}'.format(str(resources_to_get_leaf1)))
    results_getconfig_leaf1 = dev1_driver.GetConfig(resources_to_get_leaf1)
    LOGGER.info('results_getconfig = {:s}'.format(str(results_getconfig_leaf1)))
    time.sleep(1)
    dev2_driver.Connect()
    spine_driver.Connect()

    # Resources to get for all devices
    resources = [RESOURCE_INTERFACES, RESOURCE_NETWORK_INSTANCES, RESOURCE_TUNNEL_INTERFACE, RESOURCE_ROUTING_POLICY]

    # Initialize dictionaries to store timing information for each resource and device
    timing_info_leaf1 = {resource: [] for resource in resources}
    timing_info_leaf2 = {resource: [] for resource in resources}
    timing_info_spine = {resource: [] for resource in resources}

    for resource in resources:
        logging.info("Checking resource: %s", resource)

        for i in range(1000):  # Run the test 10 times
            t0_iteration = time.time()

            # Measure time for GetConfig on Leaf 1
            t0_leaf1 = time.time()
            results_getconfig_leaf1 = dev1_driver.GetConfig([resource])
            t1_leaf1 = time.time()
            elapsed_time_leaf1 = t1_leaf1 - t0_leaf1
            timing_info_leaf1[resource].append(elapsed_time_leaf1)

            # Measure time for GetConfig on Leaf 2
            t0_leaf2 = time.time()
            results_getconfig_leaf2 = dev2_driver.GetConfig([resource])
            t1_leaf2 = time.time()
            elapsed_time_leaf2 = t1_leaf2 - t0_leaf2
            timing_info_leaf2[resource].append(elapsed_time_leaf2)

            # Measure time for GetConfig on Spine
            t0_spine = time.time()
            results_getconfig_spine = spine_driver.GetConfig([resource])
            t1_spine = time.time()
            elapsed_time_spine = t1_spine - t0_spine
            timing_info_spine[resource].append(elapsed_time_spine)

            # Measure the end time for the iteration
            t1_iteration = time.time()
            elapsed_time_iteration = t1_iteration - t0_iteration
            logging.info("Total elapsed time for resource %s in iteration %d: %.2f seconds", resource, i, elapsed_time_iteration)

    # Log the timing information for each resource and device at the end
    for resource in resources:
        logging.info("Timing information for resource %s on Leaf 1: %s", resource, timing_info_leaf1[resource])
        logging.info("Timing information for resource %s on Leaf 2: %s", resource, timing_info_leaf2[resource])
        logging.info("Timing information for resource %s on Spine: %s", resource, timing_info_spine[resource])
    
    import csv

# Assume timing_info_leaf1, timing_info_leaf2, and timing_info_spine are dictionaries containing your timing data

    with open('timing_results.csv', 'w', newline='') as csvfile:
        fieldnames = ['Resource', 'Leaf1_Times', 'Leaf2_Times', 'Spine_Times']
        writer = csv.DictWriter(csvfile, fieldnames=fieldnames)

        writer.writeheader()
        for resource in resources:
            writer.writerow({
                'Resource': resource,
                'Leaf1_Times': timing_info_leaf1[resource],
                'Leaf2_Times': timing_info_leaf2[resource],
                'Spine_Times': timing_info_spine[resource]
            })

        

    # Disconnect from devices
    dev1_driver.Disconnect()
    dev2_driver.Disconnect()
    spine_driver.Disconnect()

+86 −99
Original line number Diff line number Diff line
@@ -12,8 +12,11 @@
# See the License for the specific language governing permissions and
# limitations under the License.

import logging, os, sys, time
import logging, os, sys, time,csv
from typing import Dict, Tuple
import logging
import numpy as np
import matplotlib.pyplot as plt
os.environ['DEVICE_EMULATED_ONLY'] = 'YES'
from device.service.drivers.gnmi_nokia_srlinux.GnmiNokiaSrLinuxDriver import GnmiNokiaSrLinuxDriver # pylint: disable=wrong-import-position
from device.service.driver_api._Driver import (
@@ -157,114 +160,98 @@ def network_instance_default_spine(if_interface1_spine,if_interface2_spine,if_in
    return str_path, str_data
                


#######setting computing:
import logging
import time

# Configure logging
logging.basicConfig(level=logging.INFO, format='%(asctime)s - %(levelname)s - %(message)s')

def test_gnmi_nokia_srlinux():
    #try:
    driver_settings_leaf1 = {
        'protocol': 'gnmi',
        'username': 'admin',
        'password': 'NokiaSrl1!',
        'use_tls': True,
    }
        dev1_driver = GnmiNokiaSrLinuxDriver('172.20.20.102', 57400, **driver_settings_leaf1)
        dev1_driver.Connect()
 #       resources_to_get_leaf1 = [RESOURCE_INTERFACES]
 #       LOGGER.info('resources_to_get = {:s}'.format(str(resources_to_get_leaf1)))
 #       results_getconfig_leaf1 = dev1_driver.GetConfig(resources_to_get_leaf1)
 #       LOGGER.info('results_getconfig = {:s}'.format(str(results_getconfig_leaf1)))
 #   except Exception as e:
 #       
 #       logging.exception("Exception occurred", exc_info=True)
        resources_to_set_leaf1 = [                            
         ####LEAF1#####        
         interface('ethernet-1/49',True,0,True,'192.168.11.1','30'),
         routing_policy('all','accept'),
         network_instance_default('default','ethernet-1/49.0','system0.0',True,'ipv4-unicast',101,'all','eBGP-underlay','all',201,True,'evpn',False,'ipv4-unicast','all','iBGP-overlay','all',100,100,1,True,'10.0.0.2','iBGP-overlay','10.0.0.1','192.168.11.2','eBGP-underlay','10.0.0.1'),
         interface('system0',True,0,True,'10.0.0.1','32'),
         vlan_interface('ethernet-1/1',True,0,'bridged',True,'untagged'),
         network_instance_vrf('vrf-1','mac-vrf',True,'ethernet-1/1.0','vxlan1.1',1,True,'vxlan1.1',111,1,'target:100:111','target:100:111'),
         tunnel_interface('vxlan1', 1, 'bridged', 1),    
                                                        ]
        results_setconfig_leaf1 = dev1_driver.SetConfig(resources_to_set_leaf1)
        LOGGER.info('Leaf 1 results_setconfig = {:s}'.format(str(results_setconfig_leaf1)))

        time.sleep(1)
        dev1_driver.Disconnect()
######LEAF2##############################
    driver_settings_leaf2 = {
        'protocol': 'gnmi',
        'username': 'admin',
        'password': 'NokiaSrl1!',
        'use_tls': True,
    }
        dev2_driver = GnmiNokiaSrLinuxDriver('172.20.20.103', 57400, **driver_settings_leaf2)
        dev2_driver.Connect()

        resources_to_set_leaf2 = [
            interface('ethernet-1/49',True,0,True,'192.168.12.1','30'),
            routing_policy('all','accept'),
            network_instance_default('default','ethernet-1/49.0','system0.0',True,'ipv4-unicast',102,'all','eBGP-underlay','all',201,True,'evpn',False,'ipv4-unicast','all','iBGP-overlay','all',100,100,1,True,'10.0.0.1','iBGP-overlay','10.0.0.2','192.168.12.2','eBGP-underlay','10.0.0.2'),
            interface('system0',True,0,True,'10.0.0.2','32'),
            vlan_interface('ethernet-1/1',True,0,'bridged',True,'untagged'),
            network_instance_vrf('vrf-1','mac-vrf',True,'ethernet-1/1.0','vxlan1.1',1,True,'vxlan1.1',111,1,'target:100:111','target:100:111'),
            tunnel_interface('vxlan1', 1, 'bridged', 1),
        
                ]
        results_setconfig_leaf2 = dev2_driver.SetConfig(resources_to_set_leaf2)
        LOGGER.info('Leaf 2 results_setconfig = {:s}'.format(str(results_setconfig_leaf2)))

        time.sleep(1)
        dev2_driver.Disconnect()
############SPINE############################################
    driver_settings_spine = {
        'protocol': 'gnmi',
        'username': 'admin',
        'password': 'NokiaSrl1!',
        'use_tls': True,
    }
        spine_driver = GnmiNokiaSrLinuxDriver('172.20.20.101', 57400, **driver_settings_spine)
        spine_driver.Connect()

        resources_to_set_spine = [
        interface('ethernet-1/1',True,0,True,'192.168.11.2','30'),
        interface('ethernet-1/2',True,0,True,'192.168.12.2','30'),
        network_instance_default_spine('ethernet-1/1.0','ethernet-1/2.0','system0.0','default',True,'ipv4-unicast',201,'all','eBGP-underlay','all','192.168.11.1',101,'eBGP-underlay','192.168.12.1',102,'eBGP-underlay','10.0.1.1'),
        interface('system0',True,0,True,'10.0.1.1',32),
        routing_policy('all','accept'),     
    devices = {
        'leaf1': GnmiNokiaSrLinuxDriver('172.20.20.102', 57400, **driver_settings_leaf1),
        'leaf2': GnmiNokiaSrLinuxDriver('172.20.20.103', 57400, **driver_settings_leaf2),
        'spine': GnmiNokiaSrLinuxDriver('172.20.20.101', 57400, **driver_settings_spine)
    }

    for device in devices.values():
        device.Connect()

    resources = {
        'leaf1': [
            ('routing_policy', routing_policy('', '')),
            ('interface', interface('ethernet-1/49', True, 0, True, '192.168.11.1', '30')),
            ('network_instance', network_instance_default('default', 'ethernet-1/49.0', 'system0.0', True, 'ipv4-unicast', 101, 'all', 'eBGP-underlay', 'all', 201, True, 'evpn', False, 'ipv4-unicast', 'all', 'iBGP-overlay', 'all', 100, 100, 1, True, '10.0.0.2', 'iBGP-overlay', '10.0.0.1', '192.168.11.2', 'eBGP-underlay', '10.0.0.1')),
            ('interface', interface('system0', True, 0, True, '10.0.0.1', '32')),
            ('vlan_interface', vlan_interface('ethernet-1/1', True, 0, 'bridged', True, 'untagged')),
            ('network_instance_vrf', network_instance_vrf('vrf-1', 'mac-vrf', True, 'ethernet-1/1.0', 'vxlan1.1', 1, True, 'vxlan1.1', 111, 1, 'target:100:111', 'target:100:111')),
            ('tunnel_interface', tunnel_interface('vxlan1', 1, 'bridged', 1)),
        ],
        'leaf2': [
            ('routing_policy', routing_policy('', '')),
            ('interface', interface('ethernet-1/49', True, 0, True, '192.168.12.1', '30')),
            ('network_instance', network_instance_default('default', 'ethernet-1/49.0', 'system0.0', True, 'ipv4-unicast', 102, 'all', 'eBGP-underlay', 'all', 201, True, 'evpn', False, 'ipv4-unicast', 'all', 'iBGP-overlay', 'all', 100, 100, 1, True, '10.0.0.1', 'iBGP-overlay', '10.0.0.2', '192.168.12.2', 'eBGP-underlay', '10.0.0.2')),
            ('interface', interface('system0', True, 0, True, '10.0.0.2', '32')),
            ('vlan_interface', vlan_interface('ethernet-1/1', True, 0, 'bridged', True, 'untagged')),
            ('network_instance_vrf', network_instance_vrf('vrf-1', 'mac-vrf', True, 'ethernet-1/1.0', 'vxlan1.1', 1, True, 'vxlan1.1', 111, 1, 'target:100:111', 'target:100:111')),
            ('tunnel_interface', tunnel_interface('vxlan1', 1, 'bridged', 1)),
        ],
        'spine': [
            ('routing_policy', routing_policy('', '')),
            ('interface', interface('ethernet-1/1', True, 0, True, '192.168.11.2', '30')),
            ('interface', interface('ethernet-1/2', True, 0, True, '192.168.12.2', '30')),
            ('network_instance', network_instance_default_spine('ethernet-1/1.0', 'ethernet-1/2.0', 'system0.0', 'default', True, 'ipv4-unicast', 201, 'all', 'eBGP-underlay', 'all', '192.168.11.1', 101, 'eBGP-underlay', '192.168.12.1', 102, 'eBGP-underlay', '10.0.1.1')),
            ('interface', interface('system0', True, 0, True, '10.0.1.1', 32)),
            ]
        results_setconfig_spine = spine_driver.SetConfig(resources_to_set_spine)
        LOGGER.info('Spine results_setconfig = {:s}'.format(str(results_setconfig_spine)))

  
        time.sleep(1)
        spine_driver.Disconnect()


#    #results_setconfig = dev1_driver.SetConfig(resources_to_set)
    #LOGGER.info('results_setconfig = {:s}'.format(str(results_setconfig)))
    
    #resources_to_get = [RESOURCE_INTERFACES]
    #LOGGER.info('resources_to_get = {:s}'.format(str(resources_to_get)))
    #results_getconfig = dev1_driver.GetConfig(resources_to_get)
    #LOGGER.info('results_getconfig = {:s}'.format(str(results_getconfig)))

    #resources_to_delete = [
   # interface('ethernet-1/49', 0, '192.168.11.1', 30, True),
    #routing_policy('all',True)
    #]

    #LOGGER.info('resources_to_delete = {:s}'.format(str(resources_to_delete)))
    #results_deleteconfig = dev1_driver.DeleteConfig(resources_to_delete)
    #LOGGER.info('results_deleteconfig = {:s}'.format(str(results_deleteconfig)))

    #resources_to_get = [RESOURCE_INTERFACES]
    #LOGGER.info('resources_to_get = {:s}'.format(str(resources_to_get)))
    #results_getconfig = dev1_driver.GetConfig(resources_to_get)
    #LOGGER.info('results_getconfig = {:s}'.format(str(results_getconfig)))

    #time.sleep(1)
    #dev1_driver.Disconnect()
        return 0


    }

    # Initialize dictionary to store timing information
    timing_info = {device: {resource[0]: [] for resource in resources[device]} for device in resources}

    # Perform the configuration 10 times and measure time for each configuration set
    for device_name, device_resources in resources.items():
        for i in range(1000):
            for resource_name, resource in device_resources:
                start_time = time.time()
                devices[device_name].DeleteConfig([resource])
                end_time = time.time()
                elapsed_time = end_time - start_time
                timing_info[device_name][resource_name].append(elapsed_time)
                logging.info(f"Iteration {i+1} for {resource_name} on {device_name}: {elapsed_time:.2f} seconds")

    # Log final timing information
    for device_name, resource_timings in timing_info.items():
        for resource_name, times in resource_timings.items():
            logging.info(f"Timing information for {resource_name} on {device_name}: {times}")

    with open('timing_information_delete.csv', mode='w', newline='') as file:
        writer = csv.writer(file)
        writer.writerow(['Device', 'Resource', 'Time(seconds)'])
    
        for device_name, resource_timings in timing_info.items():
            for resource_name, times in resource_timings.items():
                for time_taken in times:
                    writer.writerow([device_name, resource_name, f"{time_taken:.6f}"])

    for device in devices.values():
        device.Disconnect()
 No newline at end of file
+37 −0
Original line number Diff line number Diff line
import logging, os, time
os.environ['DEVICE_EMULATED_ONLY'] = 'YES'

# pylint: disable=wrong-import-position
from device.service.drivers.gnmi_nokia_srlinux.GnmiNokiaSrLinuxDriver import GnmiNokiaSrLinuxDriver
from device.service.driver_api._Driver import RESOURCE_INTERFACES , RESOURCE_NETWORK_INSTANCES,RESOURCE_TUNNEL_INTERFACE,RESOURCE_ROUTING_POLICY,RESOURCE_ENDPOINTS
from test_gnmi_nokia_srlinux import interface,routing_policy,network_instance_default,vlan_interface,network_instance_vrf,tunnel_interface

logging.basicConfig(level=logging.DEBUG)
LOGGER = logging.getLogger(__name__)
LOGGER.setLevel(logging.DEBUG)

def test_gnmi_nokia_srlinux():
    driver_settings_leaf1 = {
        'protocol': 'gnmi',
        'username': 'admin',
        'password': 'NokiaSrl1!',
        'use_tls': True,
    }
    dev1_driver = GnmiNokiaSrLinuxDriver('172.20.20.102', 57400, **driver_settings_leaf1)
    dev1_driver.Connect()
    resources_to_delete = [                            
         ####LEAF1#####        
         interface('ethernet-1/49',True,0,True,'192.168.11.1','30'),
         routing_policy('all','accept'),
         network_instance_default('default','ethernet-1/49.0','system0.0',True,'ipv4-unicast',101,'all','eBGP-underlay','all',201,True,'evpn',False,'ipv4-unicast','all','iBGP-overlay','all',100,100,1,True,'10.0.0.2','iBGP-overlay','10.0.0.1','192.168.11.2','eBGP-underlay','10.0.0.1'),
         interface('system0',True,0,True,'10.0.0.1','32'),
         vlan_interface('ethernet-1/1',True,0,'bridged',True,'untagged'),
         network_instance_vrf('vrf-1','mac-vrf',True,'ethernet-1/1.0','vxlan1.1',1,True,'vxlan1.1',111,1,'target:100:111','target:100:111'),
         tunnel_interface('vxlan1', 1, 'bridged', 1),    
                                                        ]
    
    LOGGER.info('resources_to_delete = {:s}'.format(str(resources_to_delete)))
    results_deleteconfig_leaf1 = dev1_driver.DeleteConfig(resources_to_delete)
    LOGGER.info('results_delete = {:s}'.format(str(results_deleteconfig_leaf1)))
    time.sleep(1)
    dev1_driver.Disconnect()
 No newline at end of file