<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:dt="uuid:C2F41010-65B3-11d1-A29F-00AA00C14882" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40"><head><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=us-ascii"><meta name=Generator content="Microsoft Word 15 (filtered medium)"><style><!--
/* Font Definitions */
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri","sans-serif";}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:#0563C1;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:#954F72;
        text-decoration:underline;}
p
        {mso-style-priority:99;
        mso-margin-top-alt:auto;
        margin-right:0in;
        mso-margin-bottom-alt:auto;
        margin-left:0in;
        font-size:12.0pt;
        font-family:"Times New Roman","serif";}
span.EmailStyle18
        {mso-style-type:personal;
        font-family:"Calibri","sans-serif";
        color:windowtext;}
span.EmailStyle19
        {mso-style-type:personal;
        font-family:"Calibri","sans-serif";
        color:#1F497D;}
span.EmailStyle20
        {mso-style-type:personal-compose;
        font-family:"Calibri","sans-serif";
        color:windowtext;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-size:10.0pt;}
@page WordSection1
        {size:8.5in 11.0in;
        margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
        {page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]--></head><body lang=EN-US link="#0563C1" vlink="#954F72"><div class=WordSection1><p class=MsoNormal><span style='color:#1F497D'><o:p> </o:p></span></p><p class=MsoNormal><span style='color:#1F497D'>Consolidating all the past comments on the MOF structure, I put together a basic implementation of lmi-bmc provider (with just enumeration enabled)at <a href="https://github.com/praveen-pk/lmi-bmc">https://github.com/praveen-pk/lmi-bmc</a>. Please give this a spin and let me know your comments/suggestions.<o:p></o:p></span></p><p class=MsoNormal><span style='color:#1F497D'><o:p> </o:p></span></p><p class=MsoNormal><span style='color:#1F497D'>This provider works fine on Dell System with IPMI service running. There is much work left while handling the error cases, so the code is a bit unstable. <o:p></o:p></span></p><p class=MsoNormal><span style='color:#1F497D'><o:p> </o:p></span></p><div><p class=MsoNormal><span style='color:#1F497D'>Thank you<o:p></o:p></span></p><p class=MsoNormal><span style='color:#1F497D'>Praveen K Paladugu<o:p></o:p></span></p><p class=MsoNormal><span style='color:#1F497D'>Dell Linux Engineering<o:p></o:p></span></p></div><p class=MsoNormal><span style='color:#1F497D'><o:p> </o:p></span></p><div><div style='border:none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0in 0in 0in'><p class=MsoNormal><a name="_____replyseparator"></a><b>From:</b> openlmi-devel-bounces@lists.fedorahosted.org [mailto:openlmi-devel-bounces@lists.fedorahosted.org] <b>On Behalf Of </b>Paladugu, Praveen<br><b>Sent:</b> Monday, May 05, 2014 5:06 PM<br><b>To:</b> jsafrane@redhat.com; openlmi-devel@lists.fedorahosted.org<br><b>Subject:</b> RE: A provider for publishing Management Controller (Service Processor) information<o:p></o:p></p></div></div><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>Jan<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>Thanks for the Comments!! <o:p></o:p></p><p class=MsoNormal>Updated the MOF as recommended (for the most part).<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>An Array of IPaddresses was recommended in the last thread, so updated the MOF accordingly. I pinged some folks on Dell’s Service Processor team to check if multiple IP addresses can be assigned a BMC NIC. Will update as soon as I hear something. <o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>[Description("Model an Out of Band Management Controller and capture its features and capabilities")]<o:p></o:p></p><p class=MsoNormal>class LMI_BMC : CIM_ManagementController<o:p></o:p></p><p class=MsoNormal>{ <o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal> [Description("This variable, should always capture the latest ipv4 IP/s addresses of BMC.")]<o:p></o:p></p><p class=MsoNormal> string IP4Addresses[];<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal> [Description("This variable, should always capture the latest ipv6 IP/s addresses of BMC.")]<o:p></o:p></p><p class=MsoNormal> string IP6Addresses[];<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal> [Description("The VLAN setting on the BMC NIC port.")]<o:p></o:p></p><p class=MsoNormal> string VLAN; <o:p></o:p></p><p class=MsoNormal> <o:p></o:p></p><p class=MsoNormal> [Description("This variable will capture MAC address of the BMC.”)]<o:p></o:p></p><p class=MsoNormal> string PermanentMACAddress;<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal> [Description(“If BMC provides any user friendly interfaces like http, ftp etc, this variable will capture the related URL/s to interact with BMC.”)] <o:p></o:p></p><p class=MsoNormal> string BMC_URLs[];<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>/* 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? */<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal> /*<o:p></o:p></p><p class=MsoNormal> #Capture this information in indexed IndentifyingDescriptions and OtheridentifyingInfo Arrays of CIM_LogicalDevice.<o:p></o:p></p><p class=MsoNormal> #string Manufacturer_ID;<o:p></o:p></p><p class=MsoNormal> #string Manufacturer;<o:p></o:p></p><p class=MsoNormal> #string Model; <o:p></o:p></p><p class=MsoNormal>*/<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal> [Description(“This variable will capture the version of the firmware installed on the BMC”)]<o:p></o:p></p><p class=MsoNormal> string FirmwareVersion;<o:p></o:p></p><p class=MsoNormal> <o:p></o:p></p><p class=MsoNormal> [Description(“This Array will capture the list of protocols supported by the BMC”),<o:p></o:p></p><p class=MsoNormal> ArrayType (“Indexed”),<o:p></o:p></p><p class=MsoNormal> MaxLen (256),<o:p></o:p></p><p class=MsoNormal> ModelCorrespondence {“LMI_BMC.SupportedProtoVersion”} ]<o:p></o:p></p><p class=MsoNormal> string SupportedProtos[];<o:p></o:p></p><p class=MsoNormal> <o:p></o:p></p><p class=MsoNormal> [Description(“This Array will capture the version of the supported protocol listed in the corresponding index of SupportedProtos ”),<o:p></o:p></p><p class=MsoNormal> ArrayType (“Indexed”),<o:p></o:p></p><p class=MsoNormal> ModelCorrespondence {“LMI_BMC.SupportedProtos” } ]<o:p></o:p></p><p class=MsoNormal> string SupportedProtoVersion[];<o:p></o:p></p><p class=MsoNormal> <o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>/*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*/<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal> [Description("Function to add a new IPv4 address to BMC.")’<o:p></o:p></p><p class=MsoNormal> ValueMap (“0”,”1”,”2”)’<o:p></o:p></p><p class=MsoNormal> Values (“Success”, “Failed”, “Invalid Argument”)]<o:p></o:p></p><p class=MsoNormal> uint32 set_IP4Address(<o:p></o:p></p><p class=MsoNormal> [IN, Description ("Set the IP address of the BMC, to the input value")] <o:p></o:p></p><p class=MsoNormal> string IP4Address, <o:p></o:p></p><p class=MsoNormal> [IN, Description ("Set the netmask to this input value")]<o:p></o:p></p><p class=MsoNormal> string Netmask, <o:p></o:p></p><p class=MsoNormal> [IN, Description ("Set the gateway this input value")]<o:p></o:p></p><p class=MsoNormal> string Gateway);<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal> [Description("Function to assign a new IPv6 address to BMC."),<o:p></o:p></p><p class=MsoNormal> ValueMap (“0”,”1”,”2”),<o:p></o:p></p><p class=MsoNormal> Values (“Success”, “Failed”, “Invalid Argument”)]<o:p></o:p></p><p class=MsoNormal> uint32 set_IP6Address(<o:p></o:p></p><p class=MsoNormal> [IN, Description ("Set the IP address of the BMC, to the input value")] <o:p></o:p></p><p class=MsoNormal> string IP6Address, <o:p></o:p></p><p class=MsoNormal> [IN, Description ("Set the netmask to this input value")]<o:p></o:p></p><p class=MsoNormal> string Netmask, <o:p></o:p></p><p class=MsoNormal> [IN, Description ("Set the gateway on BMC to this input value")]<o:p></o:p></p><p class=MsoNormal> string Gateway);<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal> [Description("Function to assign a VLAN ID to BMC.")<o:p></o:p></p><p class=MsoNormal> ValueMap (“0”,”1”,”2”)<o:p></o:p></p><p class=MsoNormal> Values (“Success”, “Failed”, “Invalid Argument”)]<o:p></o:p></p><p class=MsoNormal> uint32 set_VLAN(<o:p></o:p></p><p class=MsoNormal> [IN, Description("Set the VLAN ID of BMC NIC to this input value")]<o:p></o:p></p><p class=MsoNormal> string Vlan<o:p></o:p></p><p class=MsoNormal> ); <o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal> <o:p></o:p></p><p class=MsoNormal> [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 know which the case is."),<o:p></o:p></p><p class=MsoNormal> ValueMap (“0”, “1”,”2”,”3”,”4”), <o:p></o:p></p><p class=MsoNormal> Values (“Dedicated”, “LOM1”,”LOM2”,”LOM3”,”LOM4”)]<o:p></o:p></p><p class=MsoNormal> string get_active_nic();<o:p></o:p></p><p class=MsoNormal> <o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>};<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal><o:p> </o:p></p><p style='margin-bottom:12.0pt'>Thank you<br>Praveen K Paladugu<br>Dell Linux Engineering<br><br><o:p></o:p></p></div></body></html>