技术领域
[0003] 本公开涉及车辆内的设备之间的数据传送,并且更具体地涉及用于向车辆内的主机控制器传送传感器数据的汽车以太网交换机设备。
相关背景技术
[0004] 本文中所提供的背景描述是针对概括地呈现本公开的上下文的目的。就本背景部分中所描述的工作而言,以及在提交申请时可能不符合现有技术的描述方面,当前命名的发明人的工作均未明确地或隐含地被承认为本公开的现有技术。
[0005] 诸如自主车辆的汽车应用不断增加针对高带宽的数据业务的需求。自主车辆包括完全和部分自主车辆。这包括视频、音频、LIDAR、RADAR、接近度和/或其他传感器数据的传送。例如,车辆内的传感器可以被配置为监测车辆外部的环境并且将数据提供回主机系统以用于处理。数据由主机系统处理并且用于在车辆内执行动作(例如,自主操作,诸如制动、转向、加速等)。另外地或替代地,数据可以被路由到车辆内部和/或外部的网络设备和/或组件。
具体实施方式
[0031] 车辆可以包括多个传感器,用于监测车辆组件的状态以及车辆的内部和外部环境。车辆的主机系统还可以包括多个控制器,该多个控制器从传感器接收数据并且响应于接收到的传感器数据而执行各种操作。在某些应用中,数据与附近车辆、远程站和/或车辆内的网络设备共享。一些示例控制器是引擎控制器、发送控制器、暖气、通风和空调(HVAC)控制器、部分或完全自主车辆控制器、信息娱乐控制器、照明控制器等。
[0032] 本文中所阐述的示例包括数据传送系统,该数据传送系统包括主机系统和用于在主机系统与车辆内部和/或外部的其他网络设备之间路由数据的一个或多个网络交换机。在各种实施例中,网络交换机中的每个网络交换机被配置作为端点设备并且包括用于与主机系统的根复合体控制器通信的端点控制器。因此,网络交换机中的每个网络交换机被视为到主机系统的单个端点设备(例如,外围组件快速互连(PCIe)端点)。照此,网络交换机中的每个网络交换机表现为单个设备,该单个设备能够由主机系统使用例如PCIe协议和PCIe链路来控制。
[0033] 网络交换机还包括直接存储器访问(DMA)控制器,该DMA控制器控制网络交换机中的寄存器与主机系统的主机存储器中的缓冲区之间的数据传送。主机系统的一个或多个设备驱动器遵循初始化过程,该初始化过程包括预配置主机存储器和网络交换机以允许网络交换机访问主机存储器。这包括预先分配主机存储器的缓冲区和描述符。描述符中的一些描述符在初始化过程期间被预先配置。一旦初始化过程完成,一个或多个设备驱动器就向网络交换机提供主机存储器的访问控制。然后,网络交换机能够通过预先分配缓冲区和预先配置描述符独立于主机控制器来控制到主机存储器和来自主机存储器的数据传送。端点控制器允许一个或多个设备驱动器控制网络交换机的内部操作,包括DMA控制器、媒体访问控制(MAC)接收器和发送器和/或三元内容可寻址存储器(TCAM)控制器的操作。
[0034] 在一个示例中,根复合体和端点控制器是通过PCIe链路进行通信的PCIe设备,PCIe链路是点对点连接。根复合体控制器与端点控制器之间的PCIe链路包括在PCIe第三代(GEN3)处运行的2个线路,并且能够从单个以太网端口共同发送高达5‑10千兆字节每秒(Gbps)的数据。
[0035] 网络交换机包括智能特征,诸如互联网协议(IP)路由和攻击预防。在一个实施例中,网络交换机中的每个网络交换机包括TCAM控制器,TCAM控制器实现IP路由和攻击预防。在另一实施例中,主机系统的一个或多个设备驱动器和TCAM控制器协作以提供攻击预防。
主机系统包括拒绝服务(DoS)固件,并且TCAM控制器包括IP路由固件。IP路由固件针对每个帧确定端口、队列、寄存器、主机缓冲区、DMA引擎等的源和目的地址,并且相应地路由帧。
DoS固件监测传入的帧,并且基于预定规则来确定是否允许如由IP路由固件所指示的帧的路由,重新路由帧以用于进一步的分析,和/或丢弃帧。端口、队列、寄存器和DMA引擎位于网络交换机中的一个特定网络交换机内。在一个示例中,IP路由和攻击预防固件由主机系统的一个或多个设备驱动器和/或主机控制器动态地配置和/或控制。
[0036] 图1示出了用于在主机控制器与网络设备(例如,传感器和其他网络设备)之间传送数据(例如,传感器数据)的车辆102的数据传送系统100。数据传送系统100包括经由诸如PCIe链路的链路107彼此通信的主机系统104和一个或多个网络交换机(示出了一个网络交换机106)。主机系统104包括一个或多个主机控制器108、主机存储器110和根复合体控制器112。主机控制器108包括在主机控制器108中的一个主机控制器处实现的设备驱动器114。
例如,主机控制器108被实现为中央处理器并且响应于传感器数据和/或其他接收到的数据来控制车辆102的操作。设备驱动器114配置主机存储器110和网络交换机106用于独立于主机控制器108的网络交换机106与主机存储器110之间的数据传送。主机存储器110可以包括固态存储器和/或其他存储器,用于存储接收到的数据和/或要从网络交换机106发送给下游的网络设备的数据,诸如车辆状态数据。根复合体控制器112控制数据和控制信息(i)在主机控制器108与主机存储器110之间、(ii)在主机控制器108与网络交换机106之间、以及(iii)在主机存储器110与网络交换机106之间的传送。
[0037] 网络交换机中的每个网络交换机包括端点控制器120、控制总线121、数据总线122、接收(RX)DMA控制器124、发送(TX)DMA控制器126、MAC接收器128、MAC收发器130和以太网交换机132。端点控制器120控制数据和控制信息经由链路107去往和来自根复合体控制器112以及经由总线121、122去往和来自DMA控制器124、126的传送。控制总线121连接到寄存器133。控制信息存储在寄存器133中并且在传送数据之前被应用。寄存器133在以太网交换机132中实现。端点控制器120允许网络交换机106作为相对于主机系统104的端点设备来操作,例如通过作为PCIe端点设备在PCIe链路上进行通信,该PCIe端点设备支持主机系统
104与网络交换机106之间的全双工通信以及对整个网络交换机106的控制。
[0038] 在实施例中,根复合体控制器112、链路107和端点控制器120被实现为根据PCIe协议来操作的PCIe系统的PCIe组件。根复合体控制器112被实现为将主机控制器108和主机存储器110连接到网络交换机的PCIe交换结构的PCIe根复合体。在实施例中,链路107被实现为PCIe链路。端点控制器120被实现为PCIe端点。
[0039] 控制总线121用于传送包括描述符信息的控制信息。如果描述符在主机系统104中就绪,则设备驱动器114通过控制总线触发网络交换机106。网络交换机106然后启动DMA控制器124、126中的一个DMA控制器以获取描述符和对应的应用数据。描述符信息的示例包括源和目的地址、源和目的标识符(ID)以及帧大小和类型。数据总线122用于向主机存储器110和从主机存储器110传送数据。DMA控制器124、126基于从设备驱动器114接收到的描述符信息来控制去往和来自主机存储器110的数据传送。网络交换机106包括任何合适数目的RX DMA控制器124和任何合适数目的TX DMA控制器126。在所示的示例中,网络交换机106包括十个接收DMA控制器124和十个发送DMA控制器126。通过使多个DMA控制器124、126控制数据传送,高带宽经由链路107在主机系统104与网络交换机106之间被实现,链路107在实施例中提供一个或多个PCIe链路。在主机存储器110中接收到的并且由网络交换机106经由接收DMA控制器124提供的数据由主机控制器108处理。然后,可以使用发送DMA控制器126将所得到的处理数据发送给网络交换机106。这些数据传送包括主机系统104内(例如,在主机系统104的应用层、表示层、会话层、运输层和网络层之间)的数据的多层传送、处理和交换。
[0040] MAC接收器128提供物理层的控制抽象,使得物理链路控制的复杂性对于对应网络堆栈的逻辑链路控制和上层是不可见的。物理层至少部分地由以太网交换机132来实现。MAC接收器128将接收到的帧转换为用于传递给RX DMA控制器124的帧。在一些应用中,该转换包括去除同步字前导码、填充和/或来自接收到的帧的帧校验序列。MAC接收器128包括将传入帧分发给接收DMA控制器124的过滤器133。MAC发送器130以适当格式转换帧以用于在物理层中的发送。在某些应用中,该转换包括添加同步字前导码、填充和帧校验序列以标识发送错误。
[0041] 以太网交换机132控制在(i)MAC接收器128与MAC发射器130之间、以及(ii)传感器140、致动器142和其他网络设备144之间的数据传送。传感器140的示例包括一个或多个RADAR传感器、LIDAR传感器、接近传感器、相机、温度传感器、压力传感器、电压传感器、电流传感器、流量传感器等。致动器142的示例包括引擎、电机、泵和阀门。其他网络设备144的示例包括收发器、远程信息处理控制器、信息娱乐控制器、全球定位系统(GPS)控制器、导航控制器、照明控制器、制动控制器、转向控制器、加速控制器等。
[0042] 网络交换机106与典型的网络接口卡(NIC)和传统的PCIe交换机相比被不同地构造并操作不同,并且凭借其创新的架构和功能,针对由主机控制器108实现的不同应用提供灵活性和适应性。NIC经由单个以太网端口提供主机系统与网络之间的接口。例如,NIC可以用作被连接到PCIe根复合体的PCIe链路与局域网(LAN)之间的接口。传统的PCIe交换机不是PCIe端点设备,而是用于在PCIe链路与多个PCIe端点设备之间交换帧。网络交换机106能够传送和转换类似于NIC的帧,并且此外包括集成端点控制器120,该集成端点控制器120允许主机控制器108将网络交换机106视为端点设备。在某些实现中,网络交换机106连接到一个或多个PCIe端点设备。作为被集成到网络交换机106中的组件,端点控制器120允许设备驱动器114配置并且能够完全访问网络交换机106的元件,包括DMA控制器124、126、MAC接收器128、MAC发送器130和以太网交换机132。设备驱动器114能够配置主机系统104和网络交换机106以将DMA控制器124、126的某些业务绑定到主机控制器108中的一个主机控制器。这允许将接收和发送负载分配给多个主机控制器。在实施例中,网络交换机106被配置为支持网络设备之间的发送控制协议通信。
[0043] 图2更详细地示出了通过链路107传送数据和控制信息的主机系统104和网络交换机106。主机系统104包括主机控制器108、主机存储器110和根复合体控制器112。在一个实施例中,只包括单个设备驱动器。在另一实施例中,两个或更多个主机控制器108包括相应的设备驱动器。设备驱动器(被指定为114')中的每个设备驱动器可以类似地被配置和/或操作。
[0044] 主机存储器110包括接收缓冲区200、发送缓冲区202、接收描述符204和发送描述符206。接收缓冲区200从网络交换机106接收数据。发送缓冲区202存储从网络交换机经由以太网交换机发送到图1的致动器142和/或网络设备144的数据。接收描述符204存储与被存储在接收缓冲区200中的数据有关的控制信息。发送描述符206存储与被存储在发送缓冲区202中的数据有关的控制信息。描述符204、206中的控制信息包括源和目的地址、源和目的ID、所存储的帧的类型以及所存储的帧的大小。在实施例中,描述符204、206中的每个描述符标识主机控制器108中的一个主机控制器、DMA控制器中的一个DMA控制器、以太网交换机132的寄存器133中的一个寄存器、以太网交换机132的端口、以及传感器140、致动器142和网络设备144中的一个的ID。
[0045] 网络交换机106包括端点控制器120、控制总线121、数据总线122、RX DMA控制器124、TX DMA控制器126、MAC接收器128、MAC发送器130和以太网交换机132。控制总线121连接到寄存器133。控制信息被存储在寄存器133中并且在传送数据之前被应用。接收到的数据可以在被发送给主机存储器110或在以太网交换机132外部并且连接到以太网交换机132的设备(诸如传感器140、致动器142和网络设备144)之前被存储在以太网交换机132的存储器中,诸如在TCAM 230中。描述符204、206可以与寄存器133和/或网络交换机106中的其他缓冲区/存储器相关联。寄存器访问由设备驱动器114发起并且需要的带宽更少。接收DMA控制器124获取类似于在从接收缓冲区200获取接收数据时的接收描述符。发送DMA控制器126获取类似于在从发送缓冲区202获取发送数据时的发送描述符。大量带宽与这些任务相关联,该任务由网络交换机106发起。
[0046] 根复合体控制器112提供将寄存器133映射到主机存储器110的地址空间的能力。这使得设备驱动器114'能够经由存储器映射寄存器访问来初始化和维护MAC接收器128、MAC发送器和DMA控制器124、126。DMA控制器124、126使用描述符204、206与设备驱动器114'互操作。这包括共享作为描述符204、206的部分而被存储的信息。
[0047] 根复合体控制器112和端点控制器120提供管理接口,该管理接口在运行时期间动态地提供对网络交换机106的元件的访问。当根复合体控制器112和端点控制器120被实现为PCIe设备时,网络交换机106对于主机系统表现为PCIe以太网设备。设备驱动器114'可以完全访问DMA控制器124、126、MAC接收器128、MAC发送器130、寄存器133和TCAM 230的TCAM控制器232。
[0048] 在实施例中,以太网交换机132包括寄存器133、TCAM 230和TCAM控制器232。TCAM控制器232基于寄存器133中的控制信息和TCAM规则(例如,图6的TCAM规则604)来控制帧在(i)在太网交换机132外部并且连接到以太网交换机132的设备与(ii)MAC接收器128和MAC发送器130之间的传送。在实施例中,以太网交换机132以高达5‑10Gbps的速率发送和/或接收数据。
[0049] 图3示出了网络交换机106,网络交换机106包括端点控制器120、控制总线121、数据总线122、RX DMA控制器124、TX DMA控制器126、MAC接收器128、MAC发送器130、以太网交换机132和寄存器133。以太网交换机132包括寄存器133、TCAM 230、TCAM控制器232、入口端口300、出口端口302、接口端口304和入口先进先出(FIFO)缓冲区310。
[0050] TCAM控制器232基于寄存器133中的控制信息来控制在(i)端口300和302与(ii)接口端口304之间的帧传送。在实施例中,TCAM控制器232直接连接到寄存器133或者经由控制总线121访问寄存器。TCAM控制器232访问被存储在寄存器133中的控制信息。端口304连接到在以太网交换机132外部并且连接到以太网交换机132的设备。在实施例中,端口300、302是单向端口,端口304中的一些端口是单向的,而端口304中的其他端口304是双向的。单向端口用于从传感器向主机系统104传送传感器数据。双向端口用于数据和控制信息在例如主机系统104(包括主机控制器108和主机存储器110)与以太网交换机132下游的网络设备之间的双向传送。缓冲区310被调整大小来保持要被比较以检查接收到的数据是否符合TCAM规则(例如,图6的TCAM规则604)的字节。当帧从在网络交换机外部的设备被接收到时,帧被扫描和过滤。当TCAM规则被分配给以太网交换机132的对应端口时,缓冲区310被启用。在接收到帧时检查帧,而不是在接收到帧之后检查帧。通过在接收到帧时检查帧,与检查帧相关联的处理时间被最小化。在一个实施例中,接口端口304被实现为物理层(PHY)电路。在另一实施例中,接口端口304连接到在以太网交换机132外部的PHY电路。PHY电路连接到设备140、142、144。在另一实施例中,接口端口304中的一些接口端口被实现为串行接口并且连接到相应的传感器。示例PHY电路在图5中示出。在示例实施例中,接口端口304中的一些接口端口是串行器/解串器(SERDES)接口和减少的千兆位媒体独立接口(RGMII)。
[0051] 图4示出了数据传送方法。尽管以下操作主要关于图1至图3的实现方式进行描述,但是该操作可以容易地被修改以应用于本公开的其他实现。该操作可以迭代地被执行。尽管以下操作主要与单个设备驱动器的使用相关联地进行描述,但是该操作可以与多个设备驱动器相关联地进行修改和实现。
[0052] 在400处,主机控制器108中的一个主机控制器从例如主机存储器110加载设备驱动器114并且执行设备驱动器114。在一个实施例中,设备驱动器114是以太网设备驱动器。
[0053] 在402处,设备驱动器114将缓冲区200、202分配给DMA控制器124、126,并且配置接收描述符204,同时使发送描述符206处于空。接收描述符针对每个接收缓冲区被预先分类和配置并且被分配给主机控制器108中的一个主机控制器,该主机控制器108中的一个主机控制器在实施例中使用由设备驱动器114生成的中断来改变。DMA控制器124、126中的每个DMA控制器被分配给缓冲区200、202中的一个或多个缓冲区。接收缓冲区200被分配给接收DMA控制器124并且发送缓冲区202被分配给发送DMA控制器126。在实施例中,缓冲区200、202由DMA控制器124、126共享。接收缓冲区200中的两个或更多个接收缓冲区由接收DMA控制器124中的两个或更多个接收DMA控制器共享。类似地,发送缓冲区202中的两个或更多个发送缓冲区由发送DMA控制器126中的两个或更多个发送DMA控制器共享。接收描述符204如上所述被生成和配置以包括源和目的地址、源和目的ID、和/或在被配置时可用的其他控制信息。源和目的地址包括接收缓冲区200、接收DMA控制器124、寄存器133、以太网交换机132的端口、和/或在交换机106外部的最终目的的设备的地址。源和目的ID包括接收缓冲区
200、接收DMA控制器124、寄存器133、在交换机106外部的最终目的的设备、以太网交换机
132的端口、和/或诸如根复合体控制器112和端点控制器120的中间设备的标识符。
[0054] 在实施例中,尽管下面描述为在确定数据要被发送之后进行设置,但是发送描述符206至少部分地被提前设置。设备驱动器114将发送描述符206中的一个或多个发送描述符分配给发送DMA控制器126中的一个或多个发送DMA控制器。设备驱动器114生成发送描述符206以包括发送缓冲区202和/或发送DMA控制器126的地址和ID。此时,发送描述符206不包括最终目的的设备的地址和/或ID。如果没有可用的控制信息,则发送描述符保持为空。
[0055] 当帧被发送时执行以下操作406、408、410、412。当帧被接收到时执行操作420、422、424。主机系统104和网络交换机106在执行操作406、408、410、412的同时执行操作420、
422、424。
[0056] 在404处,设备驱动器114确定帧是否要被发送。作为示例,主机控制器108中的一个主机控制器生成中断,在存储器中设置标志、或者向设备驱动器114发信号通知帧要被发送。在实施例中,中断由网络交换机106生成,网络交换机106向设备驱动器114发信号通知帧要被传送。这可以当帧的接收或发送传送完成时类似地发生。作为另一示例,这可以在描述符204、206被重新填充时发生(即,新的和/或经更新的控制信息被存储为描述符)。如果设备驱动器114正在控制主机控制器108中的一个或多个主机控制器的操作,则设备驱动器114知道帧何时要被发送。在406处,设备驱动器114配置发送描述符206。这包括生成发送描述符206并且如果尚未完成则将发送描述符206存储在主机存储器110中。发送描述符206被分配给主机控制器108中的对应的主机控制器,该对应的主机控制器在实施例中使用由设备驱动器114生成的中断来改变。发送描述符206被配置为包括以设备为目的的地址和/或ID,对应的帧将被发送给该设备。
[0057] 在408处,设备驱动器114向发送DMA控制器126传送对发送缓冲区202的控制和发送描述符206。这包括设备驱动器114进行以下中的至少一个:发信号通知发送DMA控制器126指示控制被传送;在主机存储器110和/或寄存器133中设置由发送DMA控制器126可访问和监测的控制标志,或者生成由发送DMA控制器126检测的中断。以下操作410、412独立于主机控制器108来执行和/或由主机控制器108在主机系统104中实现的软件交互以及因此主机控制器108的中央处理周期不用于执行这些操作。在410处,发送DMA控制器126控制帧的发送。这包括发信号通知端点控制器120以指示根复合体控制器112根据发送描述符206中的对应的发送描述符中的控制信息来访问被存储在发送缓冲区202中的数据。发送DMA控制器126访问被存储在发送缓冲区202中的数据并且经由以太网交换机132将数据发送给在网络交换机106外部的设备。
[0058] 控制信息和状态信息中的一些信息被存储在寄存器133中。状态信息包括数据正在被接收还是发送以及传送是将要被执行、当前正在执行还是已完成。控制和状态信息由DMA控制器124、126通过控制总线121访问。端点控制器133作为通过设备来操作,用于进行去往和来自DMA控制器124、126的数据传送。接收数据在被发送给主机系统104之前被存储在接收DMA控制器124中,并且发送数据在经由以太网交换机132的外部端口被发送出去之前被存储在发送DMA控制器126中。DMA控制器124、126包括用于临时存储数据的缓冲区和/或存储器。DMA控制器124、126的缓冲区和/或存储器能够存储比寄存器133多得多的数据。这允许DMA控制器124、126存储正在传送的数据和对应的描述符。数据和描述符的传送经由数据总线122来完成。
[0059] 在412处,发送DMA控制器126生成一个或多个中断,该一个或多个中断指示控制被传送给设备驱动器114。对发送缓冲区202和发送描述符206的控制作为结果被返回给设备驱动器114。
[0060] 在420处,设备驱动器114向接收DMA控制器124传送对接收缓冲区200和接收描述符204的控制。这包括以下中的至少一个:发信号通知接收DMA控制器124指示控制被传送;在主机存储器110和/或寄存器133中设置由接收DMA控制器124可访问和监测的控制标志,或者生成由接收DMA控制器124检测到的中断。
[0061] 以下操作422、424独立于主机控制器108来执行,和/或由主机控制器108在主机系统104中实现的软件交互以及因此主机控制器108的中央处理周期不用于执行这些操作。在422处,接收DMA控制器124控制帧的发送。这包括从以太网交换机132接收和/或访问数据并且将数据存储在接收缓冲区200中。接收DMA控制器124发信号通知端点控制器120以指示到接收缓冲区200的数据传送,接收缓冲区200转而指示根复合体控制器112将数据存储在接收缓冲区200中。这些操作根据接收描述符204中的对应的接收描述符中的控制信息来执行。
[0062] 在424处,接收DMA控制器124生成一个或多个中断,该一个或多个中断指示控制被传送给设备驱动器114。对接收缓冲区200和接收描述符204的控制作为结果被返回给设备驱动器114。
[0063] 图5示出了网络交换机502和主机系统504的示例部分或完全自主车辆500实现。网络交换机502和主机系统504如上述网络交换机和主机系统(包括图1至图3所示的示例)被类似地实现。网络交换机502包括PCIe端点控制器506和以太网交换机508。主机系统504包括PCIe根复合体控制器510、主机控制器512和媒体接口,诸如相机串行接口(CSI)514、516,它们作为示例被提供。以太网交换机508被示出为连接到PHY电路520、522、524。PHY电路520、522、524连接到一个或多个相机526、一个或多个RADAR传感器528和一个或多个LIDAR传感器530。在实施例中,PHY电路520、522、524在网络交换机502和/或以太网交换机508中实现。在所示的示例中,主机控制器512经由CSI 514、516中的每个CSI被连接到一个或多个相机532和一个或多个相机534。以太网交换机508与相机526和传感器528、530之间的连接是以太网连接。类似地,主机控制器512与相机532、534之间的连接是以太网连接。
[0064] 图6示出了在车辆600内实现的图2的主机系统104和网络交换机106的PCIe实现,其中主机系统104包括主机控制器108、主机存储器110、PCIe根复合体控制器112、应用控制器601和DoS检测控制器602。主机控制器108包括设备驱动器114。应用控制器601执行一个或多个软件应用并且经由第一通道被连接到PCIe根复合体控制器112和/或与PCIe根复合体控制器112通信。应用控制器601和PCIe根复合体控制器112具有对被存储在主机存储器110中的接收和发送描述符的第一集合的访问。DoS检测控制器602经由第二通道被连接到PCIe根复合体控制器112和/或与PCIe根复合体控制器112通信。在实施例中,接收和发送描述符的第一集合由应用控制器601配置并且由例如网络交换机的DMA控制器使用以如上所述传送数据(例如,应用数据)。DoS检测控制器602和PCIe根复合体控制器112具有对被存储在主机存储器110中的接收和发送描述符的第二集合的访问。接收和发送描述符的第二集合排除接收和发送描述符的第一集合。在实施例中,接收和发送描述符的第二集合由DoS检测控制器602配置并且由例如网络交换机的DMA控制器使用以如上所述传送数据(例如,控制信息)。在一个实施例中,第一和第二通道是指接收和发送描述符的第一和第二集合中包括的接收和发送描述符。
[0065] DoS检测控制器602设置和调节规则604并且将配置应用于寄存器133以调整帧和/或连接在什么条件下被丢弃。对配置的改变经由寄存器访问来进行。控制器601、602可以在与设备驱动器114相同的主机控制器中实现,或者可以在其他主机控制器和/或在主机系统104中的其他地方实现。在一个实施例中,设备驱动器114替代并且执行本文中关于DoS检测控制器602而描述的操作。在另一实施例中,设备驱动器114提供到DoS检测控制器602的接口以评估帧和被存储在TCAM 230中的静态互联网协议(IP)路由表,用于动态地配置IP路由和DoS攻击预防特征。通过使DoS检测控制器602和/或设备驱动器114如上所述地评估帧和被存储在TCAM中的静态IP路由表,所描述的数据传送系统具有增强的鲁棒性,因为该评估经由专用控制总线(例如,图2的控制总线121)来完成。控制总线121受从在网络交换机106外部的网络设备接收并且在网络交换机106的端口处接收到的数据业务的影响最小。因为控制总线121主要用于端点控制器120与DMA控制器124、126之间的控制信息传送,并且由于控制总线121与以太网交换机132的外部端口隔离,所以以太网交换机132与外部网络设备之间的数据业务不影响控制控制信息在总线121上的传送。
[0066] 主机存储器110包括缓冲区200、202和描述符204、206。网络交换机106经由链路107与主机系统104通信并且包括端点控制器120、寄存器133和TCAM 230。网络交换机106的一些端口(例如,网络交换机106内的以太网交换机的一些端口)连接到在车辆外部的网络设备并且被保护免受攻击。
[0067] TCAM 230存储规则604及其版本。基于规则604,TCAM 230(i)维持或丢弃与在网络交换机106和/或车辆600外部的设备的连接,以及(ii)控制帧的通路和丢弃。规则604基于哪些帧和/或连接将被丢弃来提供条件。主机存储器110存储规则604的版本,规则604由DoS检测控制器602访问和修改。
[0068] 图7示出了主要由TCAM 230实现的攻击预防方法。在700处,DoS检测控制器602根据由应用控制器601实现的应用(例如,客户应用)访问寄存器133。
[0069] 在702处,TCAM控制器232从在网络交换机外部的源设备接收帧。从车辆外部的网络中的一个或多个源设备接收帧,和/或从车辆内的网络中的源设备接收一个或多个帧。
[0070] 在704处,当接收到帧时,TCAM控制器232检查接收到的帧中的一个或多个帧。TCAM控制器232选择接收到的帧中的至少一些帧以检查。该检查基于规则604来引导。在705处,TCAM控制器232基于检查的结果确定攻击的概率。如果概率大于预定水平,则执行操作706,否则执行操作702。在一个实施例中,TCAM控制器232计算IP校验和卸载值。这样做是为了检查帧的完整性并且确定帧是否有错误。IP校验和卸载值用于确定帧是否损坏。例如,帧的报头被修改以包括IP校验和卸载值。
[0071] 在706处,基于检查的结果,TCAM控制器232将接收到的帧中的一个或多个帧转发给应用控制器601,丢弃接收到的帧中的一个或多个帧,和/或将接收到的帧中的一个或多个帧转发给DoS检测控制器602。在一个实施例中,操作708在操作706之后被执行。
[0072] 在708处,TCAM控制器232访问来自DoS检测控制器602的经更新的规则,该规则存储在寄存器133中。DoS检测控制器602将规则存储在寄存器133中。在710处,当连接已被维持时,TCAM控制器232进行到操作712,而当连接已被丢弃时,CAM控制器232执行操作714。在实施例中,针对在网络交换机106外部和在车辆内部的网络中或在车辆外部的网络中的每个源设备执行操作700、702、704、706、708、710、712、714、716、718、720。TCAM控制器可以并行执行这些操作的多次迭代。因此并且作为示例,可以针对第一设备执行操作712,同时针对第二设备执行操作714。TCAM控制器232针对第一设备创建如下所述的日志和/或设置警报,同时对从丢弃连接起所经过的时段进行计时并且确定是否需要重新建立与第二设备的连接。
[0073] 在712处,TCAM控制器232创建日志条目和/或设置警报。日志被存储在TCAM 230中并且维持接收到的帧、帧的来源、来源的地址、接收帧的时间和日期的记录。日志用于与可能的攻击相关联和/或针对其攻击的概率大于预定水平的帧。在实施例中,生成警报以指示帧已被接收到以及该帧是否与攻击相关联的概率水平。例如,警报包括在车辆的显示器上指示的视频信号、音频警报、被发送到车辆内的移动设备的警报信号、被发送到在车辆外部的网络设备(例如,中央监测站)的警报信号、和/或被发送到在车辆外部的诊断控制器的警报信号。
[0074] 在714处,TCAM控制器232启动计时器。在一个实施例中,当与攻击相关联和/或具有与攻击相关联的高可能性的帧被接收或检查时启动计时器。在所示的实施例中,当与帧相关联的连接被丢弃时启动计时器。在716处,TCAM控制器232确定从计时器被启动起是否已经过预定时段。如果已经过预定时段,则执行操作718。
[0075] 在718处,TCAM控制器232确定是否重新建立所丢弃的连接。这基于规则、遭受攻击的概率、发送帧的源设备的标识和/或位置、和/或指示帧是否与攻击相关联的其他信息(诸如指示源设备不是攻击者的接收到的信息)来确定。在720处,TCAM控制器232重新连接到发送先前被确定为可能与攻击相关联的帧的源设备。
[0076] 图8示出了由DoS检测控制器602实现的拒绝服务方法。在800处,DoS检测控制器602在启动时根据由应用控制器601实现的应用(例如,客户应用)对TCAM控制器232进行编程。
[0077] 在801处,DoS检测控制器602经由PCIe根复合体控制器112从TCAM控制器232接收帧。在802处,DoS检测控制器602分析接收到的帧以确定接收到的帧是否与实际攻击相关联或者存在与攻击相关联的高可能性。
[0078] 在804处,DoS检测控制器602基于接收到的帧来改变规则604以丢弃更多帧和/或连接。在一个实施例中,这在帧与攻击相关联的概率大于预定阈值时发生。是否丢弃帧的确定也或备选地取决于接收到的帧的类型、帧的报头中的信息(例如,IP校验和卸载值)和/或规则604。在806处,DoS检测控制器602将经更新的规则604发送给网络交换机106用于在TCAM 230中的存储并且由TCAM控制器232的使用。
[0079] 图5和图7至图8的上述操作是说明性示例。取决于应用,该操作可以顺序地、同步地、同时地、连续地、在重叠的时间段期间或以不同的顺序执行。此外,取决于实现和/或事件顺序,可以不执行或跳过任何上述操作。
[0080] 上述示例包括具有端点控制器的网络交换机,该网络交换机消除了针对根复合体控制器与交换机之间的网络接口卡的需要。所提供的网络交换机消耗最小的功率并且为主机系统的设备驱动器提供有对网络交换机的整个核心的控制,包括对网络交换机的端点控制器、DMA控制器、MAC接收器和发送器、TCAM和对应的寄存器的控制。示例包括具有DoS控制器的主机系统,用于检测攻击并且间接地控制位于网络交换机内的TCAM的操作以阻止攻击。TCAM能够过滤掉与攻击相关联和/或包括错误的帧。当接收和检查到帧时,过滤能够“即时”发生。这防止了在车辆外部的网络设备攻击车辆的主机系统并且控制车辆的操作。
[0081] 元件之间(例如,电路元件之间)的空间和功能关系使用各种术语进行描述,包括“连接”、“接合”、“耦合”和“邻接”。除非明确描述为“直接”,否则当第一和第二元素之间的关系在上述公开中描述时,该关系可以是其中第一和第二元素之间不存在其他中间元素的直接关系,但也可以是其中在第一和第二元素之间存在一个或多个中间元素(空间上或功能上)的间接关系。如本文中使用的,短语A、B和C中的至少一个应当解释为表示逻辑(A或B或C),使用非排他性逻辑OR,而不应当解释为表示“至少一个A、至少一个B、至少一个C”。
[0082] 在本申请和一些示例中,包括以下定义,术语“控制器”可以与术语“电路”互换。在一些示例中,术语“控制器”是指、属于或包括:专用集成电路(ASIC);提供所描述的功能的其他合适的硬件组件;或以上各项中的部分或全部的组合,诸如在片上系统中。