Out-of-band NIC management

Ben Wei benwei at fb.com
Thu Jul 18 04:25:20 AEST 2019


> > Hi all,
> Hi Ben,
> >  
> > Would anyone be interested in collaborating on out-of-band NIC 
> > management and monitoring?
> Yes. If there is an existing implementation that can be leveraged/extended within OpenBMC, it will be fantastic.
>
> >  
> > 
> > DMTF has as a NCSI spec (
> > https://urldefense.proofpoint.com/v2/url?u=https-3A__www.dmtf.org_site
> > s_default_files_standards_documents_DSP0222-5F1.1.0.pdf&d=DwICaQ&c=5VD
> > 0RTtNlTh3ycd41b3MUw&r=U35IaQ-7Tnwjs7q_Fwf_bQ&m=JEop7ohMmgognpGqc17Ib11
> > BzokuLufcEDI-uGoh-wQ&s=sbnQESowB-lh1RYUBwfgx7qH5Hi11KX_Jtzm3ZnG2_I&e=
> > ), that defines a standard interface for BMCs to manage NICs.
> I assume that NC-SI over MCTP Binding
> https://urldefense.proofpoint.com/v2/url?u=https-3A__www.dmtf.org_sites_default_files_standards_documents_DSP0261-5F1.2.1.pdf&d=DwICaQ&c=5VD0RTtNlTh3ycd41b3MUw&r=U35IaQ-7Tnwjs7q_Fwf_bQ&m=JEop7ohMmgognpGqc17Ib11BzokuLufcEDI-uGoh-> wQ&s=jqbZoZIZ6zAbpaL1DhB7t8nbcFqHKT-caHdQNZGvFfU&e=
>  will also be targeted. Correct?
>
> Jeremy was working on MCTP, so we should collaborate with Jeremy and team. 

For the CLI tool and management & monitoring daemon, I was initially thinking using NC-SI over RMII/RBT, mainly because kernel already supports this and it provides a netlink interface for userspace to send/receive commands.
But I think we can make our management tool transportation agnostic, so for NCSIoRMII/RBT, it communicates to kernel NCSI driver over netlink, and for NCSI over MCTP, it uses a the mechanism provided by libmctp.

> > And in kernel 5.x , NC-SI driver supports Netlink interface for 
> > communicating with userspace processes.
> >   
> > I'm thinking adding the following tools to OpenBMC as a starting point 
> > and build form there:
> >  
> >       1. A command line utility (e.g. ncsi-util) to send raw NC-SI 
> > commands, useful for debugging and initial NIC bring up,
> >       For example:
> >           ncsi-util -eth0 -ch 0 <raw NC-SI command>
> >  
> >       We can further extend this command line tool to support other 
> > management interfaces, e.g sending MCTP or PLDM commands to NIC.
> >  
> >       2. A daemon running on OpenBMC (e.g ncsid) monitoring NIC 
> > status,  for example:
> >           a. Query and log NIC capability and current parameter 
> > setting
> >           b. Periodically check NIC link status, re-initialize NC-SI 
> > link if NIC is unreachable, log the status
> >           c. Enable and monitor NIC Asynchronous Event Notifications
> > (AENs) 
> >                 i. such as  Link Status Change, Configuration 
> > required, Host driver status change
> >                 ii. there are OEM-specific AENs that BMC may also 
> > enable and monitor
> >                 iii. either log these events, and/or performs recovery 
> > and remediation as needed
> >           d. Additional monitoring such as 
> >                 i.  temperature (not in standard NC-SI command yet), 
> >                 ii. firmware version, update event, network traffic 
> > statistics
> >  
> > Both the CLI tool and the monitoring daemon can either communicate to 
> > kernel driver directly via Netlink independently, or we can have the 
> > ncsi daemon acting as command serializer to kernel and other user 
> space processes.
> > These are just some of my initial thoughts and I'd love to hear some 
> > feedback if these would be useful to OpenBMC.
> > 
> > If anyone in interested in collaborate on these we can discuss more on 
> > features and design details.
> I am interested in collaborating on the design details.

Great! I can put a draft on Gerrit and we can work together on this. Do you have additional uses cases you're looking for?

Regards
-Ben


More information about the openbmc mailing list