【NCSI】基础概念
1、介绍
NCSI
就是带外管理系统和网卡交互的一种协议。
2、术语
2.1 外部网络接口
网络控制器的接口,提供与外部网络基础设施的连接;也称为端口。
2.2 内部网络接口
网络控制器的接口,提供与平台上运行的主机操作系统的连接。
2.3 Channel
通过单个网络接口(端口)支持NC-SI Pass-through操作的控制逻辑和数据路径。
具有多个网络接口端口的网络控制器可以支持同等数量的NC-SI通道。
2.4 KVM
Keyboard-Video_Mouse
2.5 RMII
Reduced Media Independent Interface(简化的介质无关接口)
3、NC-SI 概览
NC-SI被定义为BMC和一个或多个网络控制器之间的接口。
NC-SI功能框图:
NC-SI业务流如下所示:
边带接口中会传输的两类包:
Pass-through
: BMC和外部网络包Control
: BMC和网卡之间发送的控制包,控制和配置功能
3.1 拓扑定义
本规范支持的拓扑适用于单个管理控制器主动与NC-SI上的一个或多个网络控制器通信的情况。电气规格的目标是直接支持多达四个物理网络控制器包。协议规范允许最多8个网络控制器包,每个包最多31个通道。
下图显示了当前版本中NC-SI支持的网络控制器配置的一些示例:
3.2 单一与集成网络控制器实现
集成网络控制器是指支持两个及以上的NC-SI网络连接。单一网络控制器仅支持一个NC-SI通道。
在NC-SI规范中,集成网络控制器有3种方式实现,如下图所示。图中的channel和package数字代表的是Channel id中的internal channel(低5bit)和package id(高3bit)子字段。
3.3 传输栈
NC-SI的全量传输栈如下图所示:
底层的物理接口是基于RMII,媒介层基于以太网,
3.4 传输协议
传输协议基于命令/响应范式,一个命令对应一个响应,命令和响应中都有唯一实例id(IIDs)。可以用这个iids区分请求与对应的响应。
4、操作行为
4.1 经典操作模式
以下任务与使用NC-SI的管理控制器有关:
- 初始化配置
当NC-SI接口第一次启动的时候,BMC需要去发现和配置NC-SI设备,以便进行透传操作。
- 透传
BMC使用NC-SI来发送和接收直通数据包。透传报文根据网卡的NCSI配置,通过NCSI下发到外部网络并从外部网络接收。
- 异步事件处理
在某些情况下,网络控制器中的状态更改(例如链路状态更改)可在边带接口上生成异步事件。这些事件通知被发送到BMC,在适当时对其进行处理。
- 错误处理
BMC处理操作或配置期间可能出现的错误。例如,网络控制器可能具有内部状态改变,该内部状态改变使得它进入一个需要重新配置级别的状态。(此条件称为“初始状态”)或者,NC-SI上的数据故障可能导致NC-SI命令被网络控制器丢弃,要求管理控制器重试该命令。
4.2 状态定义
4.2.1 常见状态
下表描述了NC-SI常见状态:
State | Applies to | Description |
---|---|---|
Interface Power Down | Package | NC-SI处于下电状态 |
Interface Power Up | Package | NC-SI处于上电状态 |
Package Selected | Package | 被选中的Package可以打开电子缓冲器并通过NC-SI接口传输 |
Package Deselected | Package | 取消选中的Package不可以打开电子缓冲器以及通过NC-SI接口传输 |
Hardware Arbitration Enabled | Package | 当启用硬件仲裁时,只有被选中以及拥有TOKEN操作码的Package才能通过NC-SI传输 |
Hardware Arbitration Disabled | Package | 禁用硬件仲裁之后,只要Package被选中,就可以通过NC-SI传输,不管是否有TOKEN |
Package Ready | Package |