一种用于配置管理三层交换机端口的虚拟网卡实现方法技术

技术编号:37537859 阅读:16 留言:0更新日期:2023-05-12 16:06
本发明专利技术提出了一种用于配置管理三层交换机端口的虚拟网卡实现方法,基于Linux系统,将PCIE RC、DDR、PCIE EP、DMA集成到同一个虚拟网卡的驱动中,并且支持同时创建多个虚拟网卡,通过上送/下发的报文中头信息来区分报文来自/发往相应端口;实现三层交换芯片与SONiC等网络协议栈之间的交互,解决配置管理三层交换机端口的需求,同一个驱动程序减少了不同驱动之间的交互,便于管理。便于管理。便于管理。

【技术实现步骤摘要】
一种用于配置管理三层交换机端口的虚拟网卡实现方法


[0001]本专利技术涉及网络通信
,尤其涉及一种用于配置管理三层交换机端口的虚拟网卡实现方法。

技术介绍

[0002]网卡是用来处理计算机或者嵌入式设备与外部网络通信的设备,在传统OSI(Open System Interconnect)模型七层结构中的第二层。网卡主要的功能是报文数据接收与发送,其接收到的数据报文需要传给网络协议栈,发送的报文数据需要通过网卡传给光纤或者电缆。
[0003]三层交换机是具有一部分路由器功能的交换机,在传统OS I模型七层结构的第三层,即网络层。与传统的二层交换机不同,三层交换机可以在大型网络拓扑结构的局域网内加快数据报文交换,能够一次路由多次转发。规律性的数据报文通过芯片硬件高速实现,但是对于路由表信息维护、计算等则需要软件介入实现。
[0004]Linux内核网络子系统主要负责管理各种网络设备,并实现各种网络协议栈,最终实现通过网络连接其它系统的功能。在Linux内核中,网络子系统几乎是自成体系,它包括5个子模块,它们的功能如下:
[0005]1.Network Device Drivers,网络设备的驱动,和虚拟文件系统(Virtual File System,VFS)子系统中的设备驱动是一样的;
[0006]2.Device Independent Interface,设备无关的接口,和VF S子系统中的是一样的;
[0007]3.Network Protocols,网络协议,实现各种网络传输协议,例如IP,TCP,UDP等等;
[0008]4.Protocol Independent Interface,协议无关的接口,屏蔽不同的硬件设备和网络协议,以相同的格式提供接口(socket);
[0009]5.System Call interface,系统调用接口,向用户空间提供访问网络设备的统一的接口。
[0010]基于上述结构,如果三层交换机需要上送报文时,需要通过网卡接收数据传给内核网络协议栈,下发配置时,则需要网卡接收内核网络协议栈的数据并转发给光纤或者电缆。
[0011]本专利技术虚拟网卡针对三层交换芯片,能够做到配置管理交换芯片的每一端口,可以用于上层网络协议栈SONiC(Software for Open Networking in the Cloud)的需要管理交换芯片的端口,为网络协议栈与交换芯片架起一座“沟通”的桥梁。
[0012]为了解决上述技术问题,本专利技术提供了一种用于配置管理三层交换机端口的虚拟网卡实现方法,基于Linux系统,将PCIERC、DDR、PCIE EP、DMA集成到同一个虚拟网卡的驱动中,并且支持同时创建多个虚拟网卡,通过上送/下发的报文中头信息来区分报文来自/发往相应端口;功能上可以满足三层交换芯片与SONiC等网络协议栈之间的交互,解决配置管理三层交换机端口的需求,同一个驱动程序减少了不同驱动之间的交互,便于管理。

技术实现思路

[0013]为了解决上述技术问题,本专利技术提供了一种用于配置管理三层交换机端口的虚拟网卡实现方法,基于Linux系统,将PCIERC、DDR、PCIE EP、DMA集成到同一个虚拟网卡的驱动中,并且支持同时创建多个虚拟网卡,通过上送/下发的报文中头信息来区分报文来自/发往相应端口;功能上可以满足三层交换芯片与SONiC等网络协议栈之间的交互,解决配置管理三层交换机端口的需求,同一个驱动程序减少了不同驱动之间的交互,便于管理。
[0014]为实现上述目的,本专利技术采用如下的技术方案。
[0015]在本专利技术实施例中,提出了一种用于配置管理三层交换机端口的虚拟网卡实现方法,该方法包括如下步骤:
[0016]S1将PCIE RC、DDR、PCIE EP、DMA集成到同一个虚拟网卡的驱动中;
[0017]S2交换芯片侧PRO将需要上送CPU的报文,通过DMA将报文数据通过PCIE EP、RC将报文数据写入到DDR开辟的上送空间中,同时会产生PCIE MSI中断;所述MSI中断会上报给主控侧CPU,此时CPU会进入MSI中断服务函数;所述中断服务函数会调用Linux网络协议栈API将报文传给Linux内核网络协议栈或者其他网络协议栈;
[0018]S3当主控CPU有配置需要下发时,CPU通过虚拟网卡的发送API将携带配置信息的报文数据写到DDR中的下发空间中,DMA取出所述报文数据传送给交换芯片侧PRO模块,当报文传输结束,会产生一个PCIE MSI中断告诉CPU报文处理完成。
[0019]进一步的,当管理三层交换机多个端口时,在上送/下发的报文前添加私有头,所述私有头中包含报文来自/发往的端口信息,在网卡驱动中解析所述端口信息并将报文上送/下发到对应的处理函数。
[0020]进一步的,所述主控CPU上电时PCIE RC根节点通过深度优先法则扫描总线各个支路,枚举发现所述PCIE终端节点EP。
[0021]进一步的,所述虚拟网卡包括主控与交换芯片,其中主控侧包括:PCIE RC端和DDR;交换芯片侧包括:PCIE EP端、DMA以及PRO,PCIE EP端实现报文的传输通道,与主控RC端通信,DMA隔离CPU实现数据的高速传输,PRO为业务报文处理模块。
[0022]进一步的,DMA将交换芯片需要上送CPU的报文放到主控的DDR上以及将主控CPU的配置报文从DDR上取出下发给交换芯片。
[0023]进一步的,所述虚拟网卡驱动程序包括交换芯片DMA、EP和DDR(DMA Buffer)部分,主要功能是上送/下发报文,与Linux内核网络协议栈或者其他网络协议栈进行交互。
[0024]本专利技术的有益效果在于,针对现有的网络通信系统中存在的问题,提出了一种用于配置管理三层交换机端口的虚拟网卡实现方法,基于Linux系统,将PCIE RC、DDR、PCIE EP、DMA集成到同一个虚拟网卡的驱动中,并且支持同时创建多个虚拟网卡,通过上送/下发的报文中头信息来区分报文来自/发往相应端口;功能上可以满足三层交换芯片与SONiC等网络协议栈之间的交互,解决配置管理三层交换机端口的需求,同一个驱动程序减少了不同驱动之间的交互,便于管理。
附图说明
[0025]为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本
专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。在附图中:
[0026]图1为本专利技术实现流程示意图;
[0027]图2为本专利技术实施例一的系统构成示意图;
[0028]图3为本专利技术实施例一的实现流程成示意图。
具体实施方式
[0029]为使本专利技术实施例的目的、技术方案和优点更加清楚明白,下面结合附图对本专利技术实施例做进一步详细本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种用于配置管理三层交换机端口的虚拟网卡实现方法,其特征在于,该方法包括如下步骤:S1将PCIE RC、DDR、PCIE EP、DMA集成到同一个虚拟网卡的驱动中;S2交换芯片侧PRO将需要上送CPU的报文,通过DMA将报文数据通过PCIE EP、RC将报文数据写入到DDR开辟的上送空间中,同时会产生PCIE MSI中断;所述MSI中断会上报给主控侧CPU,此时CPU会进入MSI中断服务函数;所述中断服务函数会调用Linux网络协议栈API将报文传给Linux内核网络协议栈或者其他网络协议栈;S3当主控CPU有配置需要下发时,CPU通过虚拟网卡的发送API将携带配置信息的报文数据写到DDR中的下发空间中,DMA取出所述报文数据传送给交换芯片侧PRO模块,当报文传输结束,会产生一个PCIE MSI中断告诉CPU报文处理完成。2.根据权利要求1所述的一种用于配置管理三层交换机端口的虚拟网卡实现方法,其特征在于:当管理三层交换机多个端口时,在上送/下发的报文前添加私有头,所述私有头中包含报文来自/发往的端口信息,在网卡驱动中解析所述端口信息并将报文上送/下发到...

【专利技术属性】
技术研发人员:裴存会
申请(专利权)人:芯河半导体科技无锡有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1