Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Dynamic inputfile code v1 : Added support for virtual devices vNIC, Veth, HNV #341

Merged
merged 4 commits into from
Nov 13, 2024

Conversation

FarooqAbdulla02
Copy link
Contributor

Create config and input file : Dynamically generates device specific configuration and input files.
This code supports to dynamically create "configuration file" and "input file" for virtual interface with few required parameters.

@FarooqAbdulla02 FarooqAbdulla02 force-pushed the dynamic_input_v1 branch 2 times, most recently from d019623 to 22ff947 Compare November 12, 2024 10:59
@abdhaleegit
Copy link
Contributor

@FarooqAbdulla02 Thanks for accommodating changes asper comments from old PR is taken care in this #332 (comment)

@FarooqAbdulla02
Copy link
Contributor Author

FarooqAbdulla02 commented Nov 12, 2024

for vNIC interface

./pci_info.py --vnic env4 --show-info [ or ] ./pci_info.py --vnic --show-info

[{'adapter_type': 'vnic',
'driver': 'ibmvnic',
'interfaces': ['env3', 'env4', 'env8'],
'macaddress': 'ba:70:c4:97:1a:04',
'public_interface_ip': '9.xx.xx.xx'}]

]# ./pci_info.py --vnic env4 --create-config
/root/lop-test4/tests/./pci_info.py:32: DeprecationWarning: The SafeConfigParser class has been renamed to ConfigParser in Python 3.2. This alias will be removed in future versions. Use ConfigParser directly instead.
CONFIGFILE = configparser.SafeConfigParser()
04:42:56 INFO : python avocado-setup.py --run-suite host_io_vnic_stress_fvt --input-file io_input.txt

[io_vnic_stress_fvt]
host_interfaces = "env3 env4"
interfaces = "env3 env4"
bond_interfaces = "env3 env4"
htx_host_interfaces = "env3 env4"
host_public_ip = "9.xx.xx.xxx"
interface = "env3"
module = "ibmvnic"
macaddress = "ba:70:c4:97:1a:03"

]# ./pci_info.py --vnic env4 --additional-params device_ip=192.168.100.184,peer_ip=192.168.100.104,netmask=255.255.255.0,host_ip=192.168.100.184,netmasks=255.255.255.0,peer_ips="192.168.100.104 192.168.110.104",peer_interfaces="env4 env5",hmc_username=hscroot,hmc_pwd=abcd --create-config
/root/lop-test4/tests/./pci_info.py:32: DeprecationWarning: The SafeConfigParser class has been renamed to ConfigParser in Python 3.2. This alias will be removed in future versions. Use ConfigParser directly instead.
CONFIGFILE = configparser.SafeConfigParser()
04:53:18 INFO : python avocado-setup.py --run-suite host_io_vnic_stress_fvt --input-file io_input.txt
[root@ tests]# cat io_input.txtio_input.txt^C
[root@ tests]# cat io_input.txt
[io_vnic_stress_fvt]
host_interfaces = "env3 env4"
interfaces = "env3 env4"
bond_interfaces = "env3 env4"
htx_host_interfaces = "env3 env4"
host_public_ip = "9.xx.xx.xx"
interface = "env3"
module = "ibmvnic"
macaddress = "ba:70:c4:97:1a:04"
hmc_pwd = abcd
hmc_username = hscroot
mac_id = "025dc3a7d703"
host_ip = 192.168.100.184
netmask = 255.255.255.0
netmasks = 255.255.255.0
peer_ips = 192.168.100.104 192.168.110.104
host_ips = "110.10.10.212 111.10.10.212"
peer_interfaces = env4 env5

For PCI

]# ./pci_info.py --pci-address 0152:60:00.0 --create-config
/root/lop-test4/tests/./pci_info.py:32: DeprecationWarning: The SafeConfigParser class has been renamed to ConfigParser in Python 3.2. This alias will be removed in future versions. Use ConfigParser directly instead.
CONFIGFILE = configparser.SafeConfigParser()
06:00:53 INFO : python avocado-setup.py --run-suite host_io_network_0152_60_00_fvt --input-file io_input.txt
[root@ tests]# cat io_input.txt
[io_network_0152_60_00_fvt]
interface = "enP338p96s0f0"
interfaces = "enP338p96s0f1 enP338p96s0f2 enP338p96s0f3"
host_interfaces = "enP338p96s0f1 enP338p96s0f2 enP338p96s0f3"
pci_devices = "0152:60:00.0 0152:60:00.1 0152:60:00.2 0152:60:00.3"
module = "tg3"
host_ip = 112.10.10.213
netmask = 255.255.255.0
netmasks = 255.255.255.0
peer_ips = "112.10.10.219"
peer_user = "root"
peer_password = ""
bond_interfaces = "eth3 eth4"
host_ips = "112.10.10.213 113.10.10.213"
peer_ip = "112.10.10.219"

[root@ tests]# ./pci_info.py --pci-address 0152:60:00.0 --additional-params device_ip=192.168.100.184,peer_ip=192.168.100.104,netmask=255.255.255.0,host_ip=192.168.100.184,netmasks=255.255.255.0,peer_ips="192.168.100.104 192.168.110.104",peer_interfaces="env4 env5",hmc_username=hscroot,hmc_pwd=abcd --create-config
/root/lop-test4/tests/./pci_info.py:32: DeprecationWarning: The SafeConfigParser class has been renamed to ConfigParser in Python 3.2. This alias will be removed in future versions. Use ConfigParser directly instead.
CONFIGFILE = configparser.SafeConfigParser()
06:05:04 INFO : python avocado-setup.py --run-suite host_io_network_0152_60_00_fvt --input-file io_input.txt
[root@ tests]# cat io_input.txt
[io_network_0152_60_00_fvt]
interface = "enP338p96s0f0"
interfaces = "enP338p96s0f1 enP338p96s0f2 enP338p96s0f3"
host_interfaces = "enP338p96s0f1 enP338p96s0f2 enP338p96s0f3"
pci_devices = "0152:60:00.0 0152:60:00.1 0152:60:00.2 0152:60:00.3"
module = "tg3"
device_ip = "192.168.100.184"
host_ip = 192.168.100.184
netmask = 255.255.255.0
netmasks = 255.255.255.0
peer_ips = 192.168.100.104 192.168.110.104
peer_user = "root"
peer_password = ""
bond_interfaces = "eth3 eth4"
host_ips = "112.10.10.213 113.10.10.213"
peer_ip = 192.168.100.104
peer_public_ip = "9.x.x.x"
peer_interfaces = env4 env5
bond_name = bondtest
user_name = root
peer_bond_needed = False
peer_wait_time = 30
sleep_time = 20
count = 10
peer_user_name = root
EXPECTED_THROUGHPUT = 80
UPERF_SERVER_RUN = 1
TIMEOUT = "300"
NETSERVER_RUN = 1
duration = 600
minimum_iterations = 1
maximum_iterations = 5
netperf_download = "https://github.com/HewlettPackard/netperf/archive/netperf-2.7.0.zip"
nping_count = 25
drop_accepted = 10
nmap_download = "https://nmap.org/dist/nmap-7.80.tar.bz2"
bridge_interface = "br0"
debs = ""
url = ""
hmc_pwd = abcd
hmc_username = hscroot
lpar_2 = None
pci_device = "0000:01:01.0"
num_of_dlpar = 10
iteration = 1
max_freeze = 5
function = 4
err = 1
host_public_ip = "9.x.x.x"
htx_host_interfaces = "eth3"
net_ids = "192"
time_limit = 30
htx_rpm_link = ""
hbond = False
ip_config = "True"
mtu_timeout = 30
manageSystem = ""
tx_channel = 4
rx_channel = 4
other_channel = 1
combined_channel = 1

./pci_info.py --pci-address 0152:60:00.0 --show-info

/root/lop-test4/tests/./pci_info.py:32: DeprecationWarning: The SafeConfigParser class has been renamed to ConfigParser in Python 3.2. This alias will be removed in future versions. Use ConfigParser directly instead.
CONFIGFILE = configparser.SafeConfigParser()
[{'adapter_description': 'Broadcom Inc. and subsidiaries NetXtreme BCM5719 '
'Gigabit Ethernet PCIe',
'adapter_id': '14e4:1657:1014:0420',
'adapter_type': 'network',
'class': 'net',
'disks': [],
'driver': 'tg3',
'firmware': '5719-v1.24i',
'functions': ['0152:60:00.0', '0152:60:00.1', '0152:60:00.2', '0152:60:00.3'],
'infiniband_interfaces': [],
'interfaces': ['enP338p96s0f0',
'enP338p96s0f1',
'enP338p96s0f2',
'enP338p96s0f3'],
'is_root_disk': False,
'mpath_disks': [],
'mpath_wwids': [],
'pci_root': '0152:60:00',
'slot': None}]

For HNV

[root@ tests]# ./pci_info.py --hnv --show-info
/root/lop-test4/tests/./pci_info.py:32: DeprecationWarning: The SafeConfigParser class has been renamed to ConfigParser in Python 3.2. This alias will be removed in future versions. Use ConfigParser directly instead.
CONFIGFILE = configparser.SafeConfigParser()
[{'adapter_type': 'hnv',
'driver': 'bonding',
'interfaces': ['bond0c2518ab', 'bond24d1bbb8'],
'macaddress': 'ba:70:ca:1d:c7:00',
'public_interface_ip': 'xx.xxx'}]
[root@ tests]# ./pci_info.py --hnv bond0c2518ab --show-info
/root/lop-test4/tests/./pci_info.py:32: DeprecationWarning: The SafeConfigParser class has been renamed to ConfigParser in Python 3.2. This alias will be removed in future versions. Use ConfigParser directly instead.
CONFIGFILE = configparser.SafeConfigParser()
[{'adapter_type': 'hnv',
'driver': 'bonding',
'interfaces': ['bond0c2518ab', 'bond24d1bbb8'],
'macaddress': 'ba:70:ca:1d:c7:00',
'public_interface_ip': '9.xx.xx.xx'}]
[root@ tests]# ./pci_info.py --hnv bond0c2518ab --create-config
/root/lop-test4/tests/./pci_info.py:32: DeprecationWarning: The SafeConfigParser class has been renamed to ConfigParser in Python 3.2. This alias will be removed in future versions. Use ConfigParser directly instead.
CONFIGFILE = configparser.SafeConfigParser()
06:08:49 INFO : python avocado-setup.py --run-suite host_io_hnv_stress_fvt --input-file io_input.txt
[root@ tests]# cat io_input.txt
[io_hnv_stress_fvt]
host_interfaces = "bond0c2518ab bond24d1bbb8"
interfaces = "bond0c2518ab bond24d1bbb8"
bond_interfaces = "bond0c2518ab bond24d1bbb8"
htx_host_interfaces = "bond0c2518ab bond24d1bbb8"
host_public_ip = "9.xx.xx.xx"
interface = "bond0c2518ab"
module = "bonding"
macaddress = "ba:70:ca:1d:c7:00"
hmc_username = ""
hmc_pwd = ""
sriov_adapter = "U78DA.ND0.WZS0027-P0-C11"
sriov_port = "0"
ipaddr = 54.1.1.137
netmasks = 255.255.255.0
peer_ip = "142.10.10.164"
migratable = 1
backup_device_type = "veth"
backup_veth_vnetwork = "VLAN1-ETHERNET0"
vnic_port_id = "0"
max_capacity = "10"
capacity = 2
vios_name = "vios1"
failover_priority = "50"
hbond = True
mtu_timeout = 20
host_ip = 142.10.10.137
netmask = 255.255.255.0
peer_user = ""
peer_password = ""
peer_public_ip = ""
peer_interfaces = "env5"
sleep_time = 20
count = 10
EXPECTED_THROUGHPUT = 80
UPERF_SERVER_RUN = 1
TIMEOUT = "300"
NETSERVER_RUN = 1
duration = 600
minimum_iterations = 1
maximum_iterations = 5
netperf_download = "https://github.com/HewlettPackard/netperf/archive/netperf-2.7.0.zip"
drop_accepted = 10
nmap_download = "https://nmap.org/dist/nmap-7.80.tar.bz2"
num_of_dlpar = 10
manageSystem = ""
iteration = 10
max_freeze = 5
function = 4
err = 1
net_ids = "119"
time_limit = 30
htx_rpm_link = ""
pci_devices = "4011:01:00.0"
pci_device = "4011:01:00.0"

[root@ tests]# ./pci_info.py --hnv bond0c2518ab --additional-params device_ip=192.168.100.184,peer_ip=192.168.100.104,netmask=255.255.255.0,host_ip=192.168.100.184,netmasks=255.255.255.0,peer_ips="192.168.100.104 192.168.110.104",peer_interfaces="env4 env5",hmc_username=hscroot,hmc_pwd=abcd --create-config
/root/lop-test4/tests/./pci_info.py:32: DeprecationWarning: The SafeConfigParser class has been renamed to ConfigParser in Python 3.2. This alias will be removed in future versions. Use ConfigParser directly instead.
CONFIGFILE = configparser.SafeConfigParser()
06:09:36 INFO : python avocado-setup.py --run-suite host_io_hnv_stress_fvt --input-file io_input.txt
[root@ tests]# cat io_input.txt
[io_hnv_stress_fvt]
host_interfaces = "bond0c2518ab bond24d1bbb8"
interfaces = "bond0c2518ab bond24d1bbb8"
bond_interfaces = "bond0c2518ab bond24d1bbb8"
htx_host_interfaces = "bond0c2518ab bond24d1bbb8"
host_public_ip = "9.xx.xx.xx"
interface = "bond0c2518ab"
module = "bonding"
macaddress = "ba:70:ca:1d:c7:00"
device_ip = "192.168.100.184"
peer_ips = "192.168.100.104 192.168.110.104"
hmc_username = hscroot
hmc_pwd = abcd
sriov_adapter = "U78DA.ND0.WZS0027-P0-C11"
sriov_port = "0"
ipaddr = 54.1.1.137
netmasks = 255.255.255.0
peer_ip = 192.168.100.104
migratable = 1
backup_device_type = "veth"
backup_veth_vnetwork = "VLAN1-ETHERNET0"
vnic_port_id = "0"
max_capacity = "10"
capacity = 2
vios_name = "vios1"
failover_priority = "50"
hbond = True
mtu_timeout = 20
host_ip = 192.168.100.184
netmask = 255.255.255.0
peer_user = ""
peer_password = ""
peer_public_ip = ""
peer_interfaces = env4 env5
sleep_time = 20
count = 10
EXPECTED_THROUGHPUT = 80
UPERF_SERVER_RUN = 1
TIMEOUT = "300"
NETSERVER_RUN = 1
duration = 600
minimum_iterations = 1
maximum_iterations = 5
netperf_download = "https://github.com/HewlettPackard/netperf/archive/netperf-2.7.0.zip"
drop_accepted = 10
nmap_download = "https://nmap.org/dist/nmap-7.80.tar.bz2"
num_of_dlpar = 10
manageSystem = ""
iteration = 10
max_freeze = 5
function = 4
err = 1
net_ids = "119"
time_limit = 30
htx_rpm_link = ""
pci_devices = "4011:01:00.0"
pci_device = "4011:01:00.0"

For vETH

[root@ tests]# ./pci_info.py --veth env7 --show-info
/root/lop-test4/tests/./pci_info.py:32: DeprecationWarning: The SafeConfigParser class has been renamed to ConfigParser in Python 3.2. This alias will be removed in future versions. Use ConfigParser directly instead.
CONFIGFILE = configparser.SafeConfigParser()
[{'adapter_type': 'veth',
'driver': 'ibmveth',
'interfaces': ['env7', 'env9'],
'macaddress': 'ba:70:c4:97:1a:07',
'public_interface_ip': '9.xx.xx.xx'}]

[root@ tests]# ./pci_info.py --veth --show-info
/root/lop-test4/tests/./pci_info.py:32: DeprecationWarning: The SafeConfigParser class has been renamed to ConfigParser in Python 3.2. This alias will be removed in future versions. Use ConfigParser directly instead.
CONFIGFILE = configparser.SafeConfigParser()
[{'adapter_type': 'veth',
'driver': 'ibmveth',
'interfaces': ['env7', 'env9'],
'macaddress': 'ba:70:c4:97:1a:07',
'public_interface_ip': '9.xx.xx.xx'}]

[root@ tests]# ./pci_info.py --veth env7 --create-config
/root/lop-test4/tests/./pci_info.py:32: DeprecationWarning: The SafeConfigParser class has been renamed to ConfigParser in Python 3.2. This alias will be removed in future versions. Use ConfigParser directly instead.
CONFIGFILE = configparser.SafeConfigParser()
06:10:57 INFO : python avocado-setup.py --run-suite host_io_veth_stress_fvt --input-file io_input.txt
[root@ tests]# vi io_input.txt
[root@ tests]# cat io_input.txt
[io_veth_stress_fvt]
host_interfaces = "env7 env9"
interfaces = "env7 env9"
bond_interfaces = "env7 env9"
htx_host_interfaces = "env7 env9"
host_public_ip = "9.xx.xx.xx"
interface = "env7"
module = "ibmveth"
macaddress = "ba:70:c4:97:1a:07"
host_ip = 45.1.1.27
netmask = 255.255.255.0
peer_ips = "45.1.1.139 46.1.1.139"
peer_user = ""
peer_password = ""
host_ips = "45.1.1.27 46.1.1.27"
peer_ip = "45.1.1.139"
peer_public_ip = ""
peer_interfaces = "env4 env5"
bond_name = bondtest
user_name = root
peer_bond_needed = True
peer_wait_time = 70
sleep_time = 35
count = 10
EXPECTED_THROUGHPUT = 50
UPERF_SERVER_RUN = 1
TIMEOUT = "300"
NETSERVER_RUN = 1
duration = 600
minimum_iterations = 1
maximum_iterations = 5
netperf_download = "https://github.com/HewlettPackard/netperf/archive/netperf-2.7.0.zip"
ping_count = 100
nping_count = 3
drop_accepted = 10
nmap_download = "https://nmap.org/dist/nmap-7.80.tar.bz2"
bridge_interface = "br0"
hmc_pwd = ""
hmc_username = ""
num_of_dlpar = 20
vios_ip = ""
vios_username = ""
vios_pwd = ""
iteration = 20
only_io = True
max_freeze = 5
function = 4
err = 1
net_ids = '45'
htx_rpm_link = ""
hbond = False
ip_config = "True"
mtu_timeout = 30
manageSystem = ""
sriov = 'no'
tx_channel = 4
rx_channel = 4
other_channel = 1
combined_channel = 1

[root@ tests]# ./pci_info.py --veth env7 --additional-params device_ip=192.168.100.184,peer_ip=192.168.100.104,netmask=255.255.255.0,host_ip=192.168.100.184,netmasks=255.255.255.0,peer_ips="192.168.100.104 192.168.110.104",peer_interfaces="env4 env5",hmc_username=hscroot,hmc_pwd=abcd --create-config
/root/lop-test4/tests/./pci_info.py:32: DeprecationWarning: The SafeConfigParser class has been renamed to ConfigParser in Python 3.2. This alias will be removed in future versions. Use ConfigParser directly instead.
CONFIGFILE = configparser.SafeConfigParser()
06:11:51 INFO : python avocado-setup.py --run-suite host_io_veth_stress_fvt --input-file io_input.txt
[root@ tests]# cat io_input.txt
[io_veth_stress_fvt]
host_interfaces = "env7 env9"
interfaces = "env7 env9"
bond_interfaces = "env7 env9"
htx_host_interfaces = "env7 env9"
host_public_ip = "9.xx.xx.xx"
interface = "env7"
module = "ibmveth"
macaddress = "ba:70:c4:97:1a:07"
device_ip = "192.168.100.184"
netmasks = "255.255.255.0"
host_ip = 192.168.100.184
netmask = 255.255.255.0
peer_ips = 192.168.100.104 192.168.110.104
peer_user = ""
peer_password = ""
host_ips = "45.1.1.27 46.1.1.27"
peer_ip = 192.168.100.104
peer_public_ip = ""
peer_interfaces = env4 env5
bond_name = bondtest
user_name = root
peer_bond_needed = True
peer_wait_time = 70
sleep_time = 35
count = 10
EXPECTED_THROUGHPUT = 50
UPERF_SERVER_RUN = 1
TIMEOUT = "300"
NETSERVER_RUN = 1
duration = 600
minimum_iterations = 1
maximum_iterations = 5
netperf_download = "https://github.com/HewlettPackard/netperf/archive/netperf-2.7.0.zip"
ping_count = 100
nping_count = 3
drop_accepted = 10
nmap_download = "https://nmap.org/dist/nmap-7.80.tar.bz2"
bridge_interface = "br0"
hmc_pwd = abcd
hmc_username = hscroot
num_of_dlpar = 20
vios_ip = ""
vios_username = ""
vios_pwd = ""
iteration = 20
only_io = True
max_freeze = 5
function = 4
err = 1
net_ids = '45'
htx_rpm_link = ""
hbond = False
ip_config = "True"
mtu_timeout = 30
manageSystem = ""
sriov = 'no'
tx_channel = 4
rx_channel = 4
other_channel = 1
combined_channel = 1

lib/virtual.py Outdated
mac_address = line.split()[1]
return mac_address
except Exception as e:
print(f'Interface not found {e}')
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please use logger

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@PraveenPenguin implemented logger.

lib/virtual.py Outdated
:return: list of virtual interface names.
'''
veth_list = []
for input_string in runcmd("lsdevinfo -c")[1].splitlines():
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

is lsdevinfo , ip and other commands available default in the system, better to check and install else proper error handling

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@PraveenPenguin The interface extraction specific to vNIC and vETH, "lsdevinfo" utility is very handy to extract it.
implemented error catch handling for same.

lib/virtual.py Outdated
match = re.search(pattern, input_string)
if match:
# Exclude net0 as its public interface.
if not match.group(1) == "net0":
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

is net0 always an interface in the system or do we have an assumption using our use case? I feel let's have a generic way @abdhaleegit, your view, please

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@PraveenPenguin usually since "net0" or public interface also type of veth, we wanted to exclude the public interface to use it.
if none of the "veth" interfaces provided by user, then it will try to add up first available veth interface with excluding "net0".

lib/virtual.py Outdated
hnv_interface_list.extend(bond_interfaces)
return hnv_interface_list
else:
print("No HNV interfaces found.")
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

logger please

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Done

lib/virtual.py Outdated
if 'vnic' in input_string:
pattern = r'name="([^"]+)"'
match = re.search(pattern, input_string)
if match:
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

seems re logic same and repeat in all function , let have a function which do string matching and the caller can all this function based on the param

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Done.

lib/virtual.py Outdated
if match:
return match.group(1)
except Exception as e:
print(f'Interface not found {e}')
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

logger please

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Done

pci_info.py Outdated
if args.run_test:
os.system(cmd)

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please remove this white space

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Done.

This code commit contains library functions for vNIC, vETH and HNV.
to support dynamic input file creation for Virtual Network devices.

Signed-off-by: Shaik Abdulla <abdulla1@linux.vnet.ibm.com>
Added vNIC, vETH and HNV mapping parameters to generate
the input file parameters.

Signed-off-by: Shaik Abdulla <abdulla1@linux.vnet.ibm.com>
Added readme support and help content for virtual devices like
vNIC, vETH and HNV devices.

Signed-off-by: Shaik Abdulla <abdulla1@linux.vnet.ibm.com>
configuration and input files.

This code supports to dynamically create "configuration file" and
"input file" for virtual interface with few required parameters.

Signed-off-by: Shaik Abdulla <abdulla1@linux.vnet.ibm.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants