xref: /openbmc/openbmc-test-automation/redfish/managers/test_lldp_config.robot (revision f719f24fc618dfbe05d0a001cca8e4702fb486d4)
1*** Settings ***
2Documentation  LLDP(Link Layer Discovery Protocol) Test Suite for configuration
3               ...  and verification tests.
4
5Resource        ../../lib/bmc_redfish_resource.robot
6Resource        ../../lib/bmc_network_utils.robot
7Resource        ../../lib/openbmc_ffdc.robot
8
9Suite Setup               Suite Setup Execution
10Suite Teardown            Redfish.Logout
11Test Teardown             FFDC On Test Case Fail
12
13Test Tags     LLDP_config
14
15*** Test Cases ***
16
17Enable LLDP And Verify
18    [Documentation]  Enable LLDP and verify.
19    [Tags]  Enable_LLDP_And_Verify
20
21    # Set the LLDP enabled property as True.
22    Set LLDP Configuration State  ${True}
23
24    # Verify the LLDP state is set true
25    Verify LLDP Configuration State  ${True}
26
27*** Keywords ***
28
29Suite Setup Execution
30    [Documentation]  Do suite setup execution.
31
32    ${active_channel_config}=  Get Active Channel Config
33    ${ethernet_interface}=  Set Variable  ${active_channel_config['${CHANNEL_NUMBER}']['name']}
34    Set Suite variable  ${ethernet_interface}
35
36    Redfish.Login
37    ${initial_lldp_config}=  Get Initial LLDP Configuration
38    Set Suite Variable  ${initial_lldp_config}
39
40Set LLDP Configuration State
41    [Documentation]  Set LLDP configuration state.
42    [Arguments]  ${lldp_state}
43
44    # Description of argument(s):
45    # lldp_state          LLDP state('True' or 'False').
46
47    Redfish.Patch  ${REDFISH_LLDP_ETH_IFACE}${ethernet_interface}  body={'Ethernet':{'LLDPEnabled': ${lldp_state}}}
48    ...  valid_status_codes=[${HTTP_OK}, ${HTTP_NO_CONTENT}]
49
50Get Initial LLDP Configuration
51    [Documentation]  Get initial LLDP configuration.
52
53    ${resp}=  Redfish.Get  ${REDFISH_LLDP_ETH_IFACE}${ethernet_interface}
54
55    ${lldp_state}=  Get From Dictionary  ${resp.dict}  Ethernet
56    RETURN  ${lldp_state}
57
58Verify LLDP Configuration State
59    [Documentation]  Verify LLDP configuration state.
60    [Arguments]  ${lldp_state}
61
62    # Description of argument(s):
63    # lldp_state          LLDP state set('True' or 'False').
64
65    ${resp}=  Redfish.Get  ${REDFISH_LLDP_ETH_IFACE}${ethernet_interface}
66    ${lldp_state_expected}=  Get From Dictionary  ${resp.dict}  Ethernet
67
68    Run Keyword If  '${lldp_state}' != '${lldp_state_expected['LLDPEnabled']}'
69    ...  Fail  msg=LLDP value is not set correctly.
70