diff --git a/ipmi/test_ipmi_network.robot b/ipmi/test_ipmi_network.robot
index 8f60889..a174952 100644
--- a/ipmi/test_ipmi_network.robot
+++ b/ipmi/test_ipmi_network.robot
@@ -9,7 +9,7 @@
 Library                ../lib/var_funcs.py
 Library                ../lib/bmc_network_utils.py
 
-Suite Setup            Redfish.Login
+Suite Setup            Suite Setup Execution
 Test Setup             Printn
 Test Teardown          FFDC On Test Case Fail
 
@@ -17,9 +17,12 @@
 
 
 *** Variables ***
-
+${vlan_id}              ${10}
+@{vlan_ids}             ${20}  ${30}
+${interface}            eth0
+${ip}                   10.0.0.1
 ${initial_lan_config}   &{EMPTY}
-
+${vlan_resource}        ${NETWORK_MANAGER}action/VLAN
 
 *** Test Cases ***
 
@@ -90,8 +93,6 @@
     [Teardown]  Run Keywords  Restore Configuration  AND  FFDC On Test Case Fail
 
     Redfish Power On
-    ${initial_lan_config}=  Get LAN Print Dict  ${CHANNEL_NUMBER}  ipmi_cmd_type=inband
-    Set Suite Variable  ${initial_lan_config}
 
     Set IPMI Inband Network Configuration  10.10.10.10  255.255.255.0  10.10.10.10
     Sleep  10
@@ -122,6 +123,55 @@
 
     Valid Value  lan_config['IP Address Source']  ['${ip_address_source}']
 
+Disable VLAN Via IPMI When Multiple VLAN Exist On BMC
+    [Documentation]  Disable  VLAN Via IPMI When Multiple VLAN Exist On BMC.
+    [Tags]   Disable_VLAN_Via_IPMI_When_LAN_And_VLAN_Exist_On_BMC
+    [Teardown]  Run Keywords  FFDC On Test Case Fail  AND
+    ...  Create VLAN Via IPMI  off  AND  Restore Configuration
+
+    FOR  ${id}  IN  @{vlan_ids}
+      @{data_vlan_id}=  Create List  ${interface}  ${id}
+      ${data}=  Create Dictionary   data=@{data_vlan_id}
+      ${resp}=  OpenBMC Post Request  ${vlan_resource}  data=${data}
+    END
+
+    Create VLAN Via IPMI  off
+
+    ${lan_config}=  Get LAN Print Dict  ${CHANNEL_NUMBER}  ipmi_cmd_type=inband
+    Valid Value  lan_config['802.1q VLAN ID']  ['Disabled']
+
+
+Configure IP On VLAN Via IPMI
+    [Documentation]   Configure IP On VLAN Via IPMI.
+    [Tags]  Configure_IP_On_VLAN_Via_IPMI
+    [Teardown]  Run Keywords  FFDC On Test Case Fail  AND
+    ...  Create VLAN Via IPMI  off  AND  Restore Configuration
+
+    Create VLAN Via IPMI  ${vlan_id}
+
+    Run Inband IPMI Standard Command
+    ...  lan set ${CHANNEL_NUMBER} ipaddr ${ip}  login_host=${0}
+
+    ${lan_config}=  Get LAN Print Dict  ${CHANNEL_NUMBER}  ipmi_cmd_type=inband
+    Valid Value  lan_config['802.1q VLAN ID']  ['${vlan_id}']
+    Valid Value  lan_config['IP Address']  ["${ip}"]
+
+
+Create VLAN Via IPMI When LAN And VLAN Exist On BMC
+    [Documentation]  Create VLAN Via IPMI When LAN And VLAN Exist On BMC.
+    [Tags]   Create_VLAN_Via_IPMI_When_LAN_And_VLAN_Exist_On_BMC
+    [Teardown]  Run Keywords  FFDC On Test Case Fail  AND
+    ...  Create VLAN Via IPMI  off  AND  Restore Configuration
+
+    @{data_vlan_id}=  Create List  ${interface}  ${vlan_id}
+    ${data}=  Create Dictionary   data=@{data_vlan_id}
+    ${resp}=  OpenBMC Post Request  ${vlan_resource}  data=${data}
+
+    Create VLAN Via IPMI  ${vlan_id}
+
+    ${lan_config}=  Get LAN Print Dict  ${CHANNEL_NUMBER}  ipmi_cmd_type=inband
+    Valid Value  lan_config['802.1q VLAN ID']  ['${vlan_id}']
+
 
 *** Keywords ***
 
@@ -163,8 +213,8 @@
     ${length}=  Get Length  ${initial_lan_config}
     Return From Keyword If  ${length} == ${0}
 
-    Set IPMI Inband Network Configuration  ${initial_lan_config['IP Address']}
-    ...  ${initial_lan_config['Subnet Mask']}
+    Set IPMI Inband Network Configuration  ${network_configurations[0]['Address']}
+    ...  ${network_configurations[0]['SubnetMask']}
     ...  ${initial_lan_config['Default Gateway IP']}  login=${0}
 
 
@@ -199,3 +249,28 @@
     ...  ${REDFISH_NW_ETH_IFACE}${active_channel_config['${channel_number}']['name']}  MACAddress
     Rprint Vars  lan_print_ipmi  redfish_mac_address
     Valid Value  lan_print_ipmi['MAC Address']  ['${redfish_mac_address}']
+
+
+Create VLAN Via IPMI
+    [Arguments]  ${vlan_id}  ${channel_number}=${CHANNEL_NUMBER}
+
+    # Description of argument(s):
+    # vlan_id  The VLAN ID (e.g. '10').
+
+    Run Inband IPMI Standard Command
+    ...  lan set ${channel_number} vlan id ${vlan_id}  login_host=${0}
+
+
+Suite Setup Execution
+    [Documentation]  Suite Setup Execution.
+
+    Redfish.Login
+
+    Run Inband IPMI Standard Command
+    ...  lan set ${CHANNEL_NUMBER} ipsrc static  login_host=${1}
+
+    @{network_configurations}=  Get Network Configuration
+    Set Suite Variable  @{network_configurations}
+
+    ${initial_lan_config}=  Get LAN Print Dict  ${CHANNEL_NUMBER}  ipmi_cmd_type=inband
+    Set Suite Variable  ${initial_lan_config}
diff --git a/lib/bmc_network_utils.robot b/lib/bmc_network_utils.robot
index 6468ce9..4fcee72 100644
--- a/lib/bmc_network_utils.robot
+++ b/lib/bmc_network_utils.robot
@@ -315,3 +315,39 @@
     ${nameservers}=  Split String  ${stdout}
 
     [Return]  ${nameservers}
+
+
+Get Network Configuration
+    [Documentation]  Get network configuration.
+    # Sample output:
+    #{
+    #  "@odata.context": "/redfish/v1/$metadata#EthernetInterface.EthernetInterface",
+    #  "@odata.id": "/redfish/v1/Managers/bmc/EthernetInterfaces/eth0",
+    #  "@odata.type": "#EthernetInterface.v1_2_0.EthernetInterface",
+    #  "Description": "Management Network Interface",
+    #  "IPv4Addresses": [
+    #    {
+    #      "Address": "169.254.xx.xx",
+    #      "AddressOrigin": "IPv4LinkLocal",
+    #      "Gateway": "0.0.0.0",
+    #      "SubnetMask": "255.255.0.0"
+    #    },
+    #    {
+    #      "Address": "xx.xx.xx.xx",
+    #      "AddressOrigin": "Static",
+    #      "Gateway": "xx.xx.xx.1",
+    #      "SubnetMask": "xx.xx.xx.xx"
+    #    }
+    #  ],
+    #  "Id": "eth0",
+    #  "MACAddress": "xx:xx:xx:xx:xx:xx",
+    #  "Name": "Manager Ethernet Interface",
+    #  "SpeedMbps": 0,
+    #  "VLAN": {
+    #    "VLANEnable": false,
+    #    "VLANId": 0
+    #  }
+
+    ${resp}=  Redfish.Get  ${REDFISH_NW_ETH0_URI}
+    @{network_configurations}=  Get From Dictionary  ${resp.dict}  IPv4StaticAddresses
+    [Return]  @{network_configurations}
diff --git a/redfish/managers/test_bmc_network_conf.robot b/redfish/managers/test_bmc_network_conf.robot
index fd8e4f1..098794c 100644
--- a/redfish/managers/test_bmc_network_conf.robot
+++ b/redfish/managers/test_bmc_network_conf.robot
@@ -472,43 +472,6 @@
     Set Test Variable  ${ip_data}
 
 
-Get Network Configuration
-    [Documentation]  Get network configuration.
-
-    # Sample output:
-    #{
-    #  "@odata.context": "/redfish/v1/$metadata#EthernetInterface.EthernetInterface",
-    #  "@odata.id": "/redfish/v1/Managers/bmc/EthernetInterfaces/eth0",
-    #  "@odata.type": "#EthernetInterface.v1_2_0.EthernetInterface",
-    #  "Description": "Management Network Interface",
-    #  "IPv4Addresses": [
-    #    {
-    #      "Address": "169.254.xx.xx",
-    #      "AddressOrigin": "IPv4LinkLocal",
-    #      "Gateway": "0.0.0.0",
-    #      "SubnetMask": "255.255.0.0"
-    #    },
-    #    {
-    #      "Address": "xx.xx.xx.xx",
-    #      "AddressOrigin": "Static",
-    #      "Gateway": "xx.xx.xx.1",
-    #      "SubnetMask": "xx.xx.xx.xx"
-    #    }
-    #  ],
-    #  "Id": "eth0",
-    #  "MACAddress": "xx:xx:xx:xx:xx:xx",
-    #  "Name": "Manager Ethernet Interface",
-    #  "SpeedMbps": 0,
-    #  "VLAN": {
-    #    "VLANEnable": false,
-    #    "VLANId": 0
-    #  }
-
-    ${resp}=  Redfish.Get  ${REDFISH_NW_ETH0_URI}
-    @{network_configurations}=  Get From Dictionary  ${resp.dict}  IPv4StaticAddresses
-    [Return]  @{network_configurations}
-
-
 Add IP Address
     [Documentation]  Add IP Address To BMC.
     [Arguments]  ${ip}  ${subnet_mask}  ${gateway}
