OOB Network 3-Port Switch Control
To enable both the BMC and the Arm on the DPU to access the out-of-band (OOB) network management interface, an L2, 3-port switch has been incorporated into the system. This switch acts as a bridge, connecting the RJ45 port (OOB), the BMC, and the Arm in the DPU. It is important to note that the switch is exclusively managed by the DPU's BMC through a dedicated I2C line and a GPIO signal that controls the switch's reset function.
 
| netfunc | cmd | data | Description | 
| 0x32 | 0x97 | N/A | Get 3-port switch ports mode. On success, it returns: 
 | 
| 0x32 | 0x98 | 
 | Set 3-port switch ports mode. Note: 
 | 
| 0x32 | 0xA1 | 0x3 | Reset on-board 3-port switch | 
In all these use cases, the internal pathway connecting the DPU and the BMC remains operational. This enables communication between the BMC and the DPU over the internal network.
Example for disabling the OOB network of the DPU Arm:
            
            #bmc> ipmitool raw 0x32 0x98 0x1
    
Getting 3-port Switch Ports Mode
            
            curl -k -u root:'<password>' -H 'Content-Type: application/json' -X GET https://<bmc_ip>/redfish/v1/Systems/Bluefield/Oem/Nvidia/Switch
    
Example output:
            
            {
  "TorSwitchMode": {
    "BmcOobEnabled": true,
    "DpuOobEnabled": true
  }
}
    
Where:
- BmcOobEnabled– Enable the BMC to access the out-of-band network
- DpuOobEnabled– Enable the BlueField to access the out-of-band network
Setting 3-port Switch Port Mode
            
            curl -k -u root:'<password>' -H 'Content-Type: application/json' -X PATCH -d '{"TorSwitchMode": {"BmcOobEnabled": <Port State>, "DpuOobEnabled": <Port State>}}' https://<bmc_ip>/redfish/v1/Systems/Bluefield/Oem/Nvidia/Switch
    
Where Port State:
- True – Enable the port to access the out-of-band network 
- False – Disable the port to access the out-of-band network 
The internal pathway connecting the BMC and RJ45 is not allowed to be disabled using a Redfish command.     
Therefore,     
the parameter BmcOobEnabled should be set as true when setting 3-port switch ports mode, otherwise the Redfish command would return an error.
For the patch command request, both BmcOobEnabled and DpuOobEnabled must be set.
The following is an example of how to set only BMC is allowed access to RJ45:
            
            curl -k -u root:'<password>' -H 'Content-Type: application/json' -X PATCH -d '{"TorSwitchMode": {"BmcOobEnabled": true, "DpuOobEnabled": false}}' https://<bmc_ip>/redfish/v1/Systems/Bluefield/Oem/Nvidia/Switch
    
Example output:
            
            {
  "@Message.ExtendedInfo": [
    {
      "@odata.type": "#Message.v1_1_1.Message",
      "Message": "The request completed successfully.",
      "MessageArgs": [],
      "MessageId": "Base.1.15.0.Success",
      "MessageSeverity": "OK",
      "Resolution": "None"
    }
  ]
}
    
    
    
        
Resetting On-board 3-port Switch
            
            curl -k -u root:'<password>' -H 'Content-Type: application/json' -X POST https://<bmc_ip>/redfish/v1/Systems/Bluefield/Oem/Nvidia/Switch.Reset
    
Example output:
            
            {
  "@Message.ExtendedInfo": [
    {
      "@odata.type": "#Message.v1_1_1.Message",
      "Message": "The request completed successfully.",
      "MessageArgs": [],
      "MessageId": "Base.1.15.0.Success",
      "MessageSeverity": "OK",
      "Resolution": "None"
    }
  ]
}