Added new testcases for Cipher suite IPMI cmd.

Testcases covered in this script:
    1) Verify cipher suite IPMI raw cmd for all available channels
including channel 14(current channel).

    2) Verify cipher suite IPMI raw cmd for invalid channels and expects
response code 0xcc.

    3) Verify cipher suite IPMI raw cmd with one byte more and less for
valid channel and expects response code as 0xc7.

Added keyword on lib/ipmi_client.robot to check invalid ipmi cmd.

Added keyword to get invalid channel list in lib/bmc_network_utils.robot.

Tested: Run robot ipmi/test_ipmi_cipher.robot

Signed-off-by: Nagarjun B  <nagarjunb@ami.com>
Change-Id: Id510a6a7bb4c58770fdd04b32bf5ae9f276e2f39
diff --git a/lib/bmc_network_utils.robot b/lib/bmc_network_utils.robot
index dfa09d1..9ac2af1 100644
--- a/lib/bmc_network_utils.robot
+++ b/lib/bmc_network_utils.robot
@@ -688,6 +688,21 @@
 
     [Return]  ${valid_channel_number_interface_name}
 
+Get Invalid Channel Number List
+    [Documentation]  Get Invalid Channel and return as list.
+
+    ${available_channels}=  Get Channel Number For All Interface
+    # Get the channel which medium_type as 'reserved' and append it to a list.
+    @{invalid_channel_number_list}=  Create List
+
+    FOR  ${channel_number}  ${values}  IN  &{available_channels}
+       Run Keyword If  '${values['channel_info']['medium_type']}' == 'reserved'
+       ...  Append To List  ${invalid_channel_number_list}  ${channel_number}
+    END
+
+    [Return]  ${invalid_channel_number_list}
+
+
 Get Channel Number For Valid Ethernet Interface
     [Documentation]  Get channel number for all ethernet interface.
     [Arguments]  ${valid_channel_number_interface_name}
@@ -704,8 +719,26 @@
 
     [Return]  ${channel_number_list}
 
+
+Get Current Channel Name List
+    [Documentation]  Get Current Channel name and append it to active channel list.
+    [Arguments]  ${channel_list}  ${channel_config_json}
+
+    # Description of Arguments
+    # ${channel_list}  -  list Contains all availabe active channels.
+    # ${channel_config_json} - output of /usr/share/ipmi-providers/channel_config.json file.
+
+    FOR  ${channel_number}  ${values}  IN  &{channel_config_json}
+        Run Keyword If  '${values['name']}' == 'SELF'
+        ...  Run Keyword  Append To List  ${channel_list}  ${channel_number}
+    END
+
+    [Return]  ${channel_list}
+
+
 Get Active Ethernet Channel List
-    [Documentation]  Get Available Channel.
+    [Documentation]  Get Available channels from channel_config.json file and return as list.
+    [Arguments]  ${current_channel}=${0}
 
     ${valid_channel_number_interface_names}=  Get Channel Number For All Interface
 
@@ -714,4 +747,8 @@
     ${channel_number_list}=  Get Channel Number For Valid Ethernet Interface
     ...  ${valid_channel_number_interface_name}
 
+    Return From Keyword If  ${current_channel} == 0  ${channel_number_list}
+    ${channel_number_list}=  Get Current Channel Name List
+    ...  ${channel_number_list}  ${valid_channel_number_interface_names}
+
     [Return]  ${channel_number_list}