diff --git a/data/ipmi_variable.py b/data/ipmi_variable.py
new file mode 100644
index 0000000..64aae68
--- /dev/null
+++ b/data/ipmi_variable.py
@@ -0,0 +1,50 @@
+#!/usr/bin/python
+
+r"""
+Contains channel-related constants.
+"""
+
+medium_type_ipmi_conf_map = {
+    "reserved": "reserved",
+    "IPMB (I2C)": "ipmb",
+    "ICMB v1.0": "icmb-v1.0",
+    "ICMB v0.9": "icmb-v0.9",
+    "802.3 LAN": "lan-802.3",
+    "Serial/Modem": "serial",
+    "Other LAN": "other-lan",
+    "PCI SMBus": "pci-smbus",
+    "SMBus v1.0/v1.1": "smbus-v1.0",
+    "SMBus v2.0": "smbus-v2.0",
+    "USB 1.x": "usb-1x",
+    "USB 2.x": "usb-2x",
+    "System Interface": "system-interface"
+}
+
+
+protocol_type_ipmi_conf_map = {
+    "reserved": "na",
+    "IPMB-1.0": "ipmb-1.0",
+    "ICMB-1.0": "icmb-2.0",
+    "reserved": "reserved",
+    "IPMI-SMBus": "ipmi-smbus",
+    "KCS": "kcs",
+    "SMIC": "smic",
+    "BT-10": "bt-10",
+    "BT-15": "bt-15",
+    "TMode": "tmode",
+    "OEM 1": "oem",
+}
+
+
+disabled_ipmi_conf_map = {
+    "disabled": "True",
+    "enabled": "False",
+}
+
+
+access_mode_ipmi_conf_map = {
+    "disabled": "disabled",
+    "pre-boot only": "pre-boot",
+    "always available": "always_available",
+    "shared": "shared",
+}
diff --git a/ipmi/test_ipmi_general.robot b/ipmi/test_ipmi_general.robot
index 59033a3..0c28039 100644
--- a/ipmi/test_ipmi_general.robot
+++ b/ipmi/test_ipmi_general.robot
@@ -4,6 +4,9 @@
 Resource         ../lib/ipmi_client.robot
 Resource         ../lib/openbmc_ffdc.robot
 Variables        ../data/ipmi_raw_cmd_table.py
+Variables        ../data/ipmi_variable.py
+Library          ../lib/bmc_network_utils.py
+Library          ../lib/ipmi_utils.py
 
 Test Teardown    FFDC On Test Case Fail
 
@@ -68,3 +71,56 @@
 
     Rprint Vars  guids  uuid
     Valid Value  uuid  ['${guids}']
+
+
+Verify Get Channel Info via IPMI
+    [Documentation]  Verify get channel info via IPMI.
+    [Tags]  Verify_Get_Channel_Info_via_IPMI
+
+    # Get channel info via ipmi command "ipmitool channel info [channel number]".
+    # Verify channel info with files "channel_access.json" and "channel_config.json" in BMC.
+
+    # Example output from 'Get Channel Info':
+    # channel_info:
+    #   [channel_0x2_info]:
+    #     [channel_medium_type]:                        802.3 LAN
+    #     [channel_protocol_type]:                      IPMB-1.0
+    #     [session_support]:                            multi-session
+    #     [active_session_count]:                       0
+    #     [protocol_vendor_id]:                         7154
+    #     [volatile(active)_settings]:
+    #     [alerting]:                                   enabled
+    #     [per-message_auth]:                           enabled
+    #     [user_level_auth]:                            enabled
+    #     [access_mode]:                                always available
+
+    ${channel_info_ipmi}=  Get Channel Info  ${CHANNEL_NUMBER}
+    ${active_channel_config}=  Get Active Channel Config
+    ${channel_access_config}=  Get Channel Access Config
+    Rprint Vars  channel_info_ipmi  active_channel_config  channel_access_config
+
+    Valid Value  medium_type_ipmi_conf_map['${channel_info_ipmi['channel_0x${CHANNEL_NUMBER}_info']['channel_medium_type']}']
+    ...  ['${active_channel_config['${CHANNEL_NUMBER}']['channel_info']['medium_type']}']
+
+    Valid Value  protocol_type_ipmi_conf_map['${channel_info_ipmi['channel_0x${CHANNEL_NUMBER}_info']['channel_protocol_type']}']
+    ...  ['${active_channel_config['${CHANNEL_NUMBER}']['channel_info']['protocol_type']}']
+
+    Valid Value  channel_info_ipmi['channel_0x${CHANNEL_NUMBER}_info']['session_support']
+    ...  ['${active_channel_config['${CHANNEL_NUMBER}']['channel_info']['session_supported']}']
+
+    Valid Value  channel_info_ipmi['channel_0x${CHANNEL_NUMBER}_info']['active_session_count']
+    ...  ['${active_channel_config['${CHANNEL_NUMBER}']['active_sessions']}']
+    # IPMI Spec: The IPMI Enterprise Number is: 7154 (decimal)
+    Valid Value  channel_info_ipmi['channel_0x${CHANNEL_NUMBER}_info']['protocol_vendor_id']  ['7154']
+
+    Valid Value  disabled_ipmi_conf_map['${channel_info_ipmi['channel_0x${CHANNEL_NUMBER}_info']['alerting']}']
+    ...  ['${channel_access_config['${CHANNEL_NUMBER}']['alerting_disabled']}']
+
+    Valid Value  disabled_ipmi_conf_map['${channel_info_ipmi['channel_0x${CHANNEL_NUMBER}_info']['per-message_auth']}']
+    ...  ['${channel_access_config['${CHANNEL_NUMBER}']['per_msg_auth_disabled']}']
+
+    Valid Value  disabled_ipmi_conf_map['${channel_info_ipmi['channel_0x${CHANNEL_NUMBER}_info']['user_level_auth']}']
+    ...  ['${channel_access_config['${CHANNEL_NUMBER}']['user_auth_disabled']}']
+
+    Valid Value  access_mode_ipmi_conf_map['${channel_info_ipmi['channel_0x${CHANNEL_NUMBER}_info']['access_mode']}']
+    ...  ['${channel_access_config['${CHANNEL_NUMBER}']['access_mode']}']
diff --git a/lib/bmc_network_utils.py b/lib/bmc_network_utils.py
index 93f932b..7e91604 100644
--- a/lib/bmc_network_utils.py
+++ b/lib/bmc_network_utils.py
@@ -176,3 +176,31 @@
     """
 
     return vf.filter_struct(get_channel_config(), "[('medium_type', 'other-lan|lan-802.3')]", regex=1)
+
+
+def get_channel_access_config():
+    r"""
+    Get the channel access config data and return as a dictionary.
+
+    Example:
+
+    channel_access_config =  get_channel_access_config()
+    print_vars(channel_access_config)
+
+    channel_access_config:
+        [1]:
+            [priv_limit]:                                 priv-admin
+            [per_msg_auth_disabled]:                      False
+            [access_mode]:                                always_available
+            [alerting_disabled]:                          False
+            [user_auth_disabled]:                         False
+        [2]:
+            [priv_limit]:                                 priv-admin
+            [per_msg_auth_disabled]:                      False
+            [access_mode]:                                always_available
+            [alerting_disabled]:                          False
+            [user_auth_disabled]:                         False
+    """
+    stdout, stderr, rc = bsu.bmc_execute_command("cat /usr/share/ipmi-providers/channel_access.json")
+
+    return json.loads(stdout)
diff --git a/lib/ipmi_utils.py b/lib/ipmi_utils.py
index 4bdf6ad..d8c9be7 100644
--- a/lib/ipmi_utils.py
+++ b/lib/ipmi_utils.py
@@ -622,3 +622,34 @@
     result = vf.key_value_outbuf_to_dict(ret_values, process_indent=1)
 
     return result
+
+
+def get_channel_info(channel_number=1):
+    r"""
+    Get the channel info and return as a dictionary.
+    Example:
+
+    channel_info:
+      [channel_0x2_info]:
+        [channel_medium_type]:                        802.3 LAN
+        [channel_protocol_type]:                      IPMB-1.0
+        [session_support]:                            multi-session
+        [active_session_count]:                       0
+        [protocol_vendor_id]:                         7154
+        [volatile(active)_settings]:
+        [alerting]:                                   enabled
+        [per-message_auth]:                           enabled
+        [user_level_auth]:                            enabled
+        [access_mode]:                                always available
+        [non-volatile_settings]:
+        [alerting]:                                   enabled
+        [per-message_auth]:                           enabled
+        [user_level_auth]:                            enabled
+        [access_mode]:                                always available
+    """
+
+    status, ret_values = \
+        grk.run_key_u("Run IPMI Standard Command  channel info " + str(channel_number))
+    result = vf.key_value_outbuf_to_dict(ret_values, process_indent=1)
+
+    return result
