Firstly, Sorry about the long long delay with the response. Because of a few personal and work items, had to push this to the back burner. Have a few cycles to work on this and would like to get this going again.
Based on the comments from the past threads, updated the MOF as follows and added some of my comments below, please take a look.
[Description("Model an Out of Band Management Controller and capture its features and capabilities")] class LMI_BMC : CIM_ManagementController {
[Description("This variable, should always capture the latest ipv4 IP/s addresses of BMC.")] string IP4Addresses[];
[Description("This variable, should always capture the latest ipv6 IP/s addresses of BMC.")] string IP6Addresses[];
[Description("The VLAN setting on the BMC NIC port.")] string VLAN;
[Description("This variable will capture MAC address of the BMC.")] string PermanentMACAddresses;
[Description("If BMC provides any user friendly interfaces like http, ftp etc, this variable will capture the related URL/s to interact with BMC.")] string BMC_URL[];
/* COMMENT: If the following properties are rolledup into CIM_LogicalDevice, would a user enumerating LMI_BMC not be able to see these properties? Or is it just a matter of how the Enumeration function is defined for this class? */
/* #Capture this information in IdentifyingDescriptions inherited from CIM_LogicalDevice #string Manufacturer_ID; #string Manufacturer; #string Model; */
[Description("This variable will capture the version of the firmware installed on the BMC")] string FirmwareVersion;
[Description("This Array will capture the list of protocols supported by the BMC")] string SupportedProtos[];
[Description("This Array will capture the version of the supported protocol listed in the corresponding index of SupportedProtos ")] string SupportedProtoVersion[];
/*COMMENT: Should the below function assign a new virtual ip address to those already on the BMC? Or should the user be able to pass a list of IP addresses to overwrite the existing ones? Am leaning towards the latter option*/
[Description("Function to add a new IPv4 address to BMC." "If the operation of setting the IP Address succeeds, return 0" "If command fails, return 1" "If the provided input is not a valid IP address, return 2" )] uint32 set_IP4Address( [IN, Description ("Set the IP address of the BMC, to the input value")] string Input_IP, [IN, Description ("Set the netmask to this input value")] string Input_Netmask, [IN, Description ("Set the gateway this input value")] string Input_Gateway);
[Description("Function to assign a new IPv6 address to BMC." "If the operation of setting the IP Address succeeds, return 0" "If IPMI command fails, return 1" "If the provided input is not a valid IP address, return 2" )] uint32 set_IP6Address( [IN, Description ("Set the IP address of the BMC, to the input value")] string Input_IP6Address, [IN, Description ("Set the netmask to this input value")] string Input_Netmask, [IN, Description ("Set the gateway on BMC to this input value")] string Input_Gateway);
[Description("Function to assign a VLAN ID to BMC." "If the operation of setting the VLAN ID succeeds, return 0" "If command fails, return 1" "If the provided input is not a valid VLAN ID, return 2" )] uint32 set_VLAN( [IN, Description("Set the VLAN ID of BMC NIC to this input value")] string Input_Vlan );
[Description("Some servers have dedicated NIC attached to BMC, some share a LOM used for host n/w communications. This function will let the user determine which the case is." "dedicated: will let the user know that BMC is using a dedicated NIC" "A response like LOM1 will let the user know that BMC is sharing LOM1 of the server with the OS." )] string get_active_nic();
};
Thank you Praveen K Paladugu Dell Linux Engineering