CN104283817B - 用于实现交换线卡与逻辑线卡互通的方法及报文转发设备 - Google Patents
用于实现交换线卡与逻辑线卡互通的方法及报文转发设备 Download PDFInfo
- Publication number
- CN104283817B CN104283817B CN201310278404.2A CN201310278404A CN104283817B CN 104283817 B CN104283817 B CN 104283817B CN 201310278404 A CN201310278404 A CN 201310278404A CN 104283817 B CN104283817 B CN 104283817B
- Authority
- CN
- China
- Prior art keywords
- line card
- message
- logic
- head
- list item
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/30—Peripheral units, e.g. input or output ports
- H04L49/3009—Header conversion, routing tables or routing tags
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/46—Interconnection of networks
- H04L12/4641—Virtual LANs, VLANs, e.g. virtual private networks [VPN]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/60—Router architectures
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/66—Layer 2 routing, e.g. in Ethernet based MAN's
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/74—Address processing for routing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/30—Peripheral units, e.g. input or output ports
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种用于实现交换线卡与逻辑线卡互通的方法及报文转发设备。本发明在需要从交换线卡向逻辑线卡转发报文时,由交换线卡按照其上行转发流程为报文封装伪二层头,且伪二层头中携带有逻辑线卡的邻接表索引和出接口表索引;相应地,逻辑线卡能够从报文的伪二层头中获得邻接表索引和出接口表索引,然后即可按照其下行流程重新为报文封装真实的二层头、并从对应的出接口发出。另外,本发明在需要从逻辑线卡向交换线卡转发报文时,可以由易于扩展的逻辑线卡执行交换线卡的上行转发流程;相应地,交换线卡在接收到来自逻辑线卡的报文后即可直接执行其下行流程。从而,交换线卡与逻辑线卡的互通就无需借助CPU的中转,从而能够提高转发性能。
Description
技术领域
本发明涉及报文转发技术,特别涉及一种用于实现交换线卡与逻辑线卡互通的方法及报文转发设备。
背景技术
报文转发设备中通常包括背板、以及插接于背板的主控板和转发线卡(或称为网板)。
其中,转发线卡可以采用交换芯片为转发核心,也可以采用逻辑芯片为转发核心。采用交换芯片为转发核心的转发线卡称为交换线卡,采用逻辑芯片为转发核心的转发线卡称为逻辑线卡。
在实际部署报文转发设备中的转发线卡时,考虑到交换线卡所具有的大容量接入的优点、以及逻辑线卡所具有的业务接口类型丰富的优点,通常会同时部署交换线卡和逻辑线卡。
但由于交换芯片采用预先固化的转发流程进行转发,而逻辑芯片采用自定义的转发流程进行转发,因此,转发流程截然不同的交换线卡与逻辑线卡无法直接通过背板互通。
为此,现有技术根据交换线卡和逻辑线卡的CPU进行中转、以使交换线卡与逻辑线卡能够借助于CPU的中转而通过背板实现互通。
请参见图1,交换线卡中的CPU不会在交换芯片的FIB(Forwarding InformationBase,转发信息库)表中配置对应逻辑线卡的FIB表项,逻辑线卡中的CPU也不会在逻辑芯片的FIB表中配置对应交换线卡的FIB表项,因此:
当交换线卡中的交换芯片接收到的报文应当从逻辑线卡转出时,交换芯片会查询不到对应的FIB表项、会将报文上报至交换线卡的CPU,再由CPU对报文重新处理、以使报文符合逻辑线卡的转发流程后再从交换芯片通过背板向逻辑线卡转发;
同理,当逻辑线卡中的逻辑芯片接收到的报文应当从交换线卡转出时,逻辑芯片也会查询不到对应的FIB表项、并会将报文上报至逻辑线卡的CPU,再由CPU对报文重新处理、以使报文符合交换线卡的转发流程后再从逻辑芯片通过背板向交换线卡转发。
然而,通过CPU中转的方式虽然能够实现交换线卡与逻辑线卡的互通,但由于CPU的处理能力是有限的,因此,CPU的能力就有可能成为交换线卡与逻辑线卡互通的性能瓶颈,而且还浪费了交换芯片与逻辑芯片的高性能硬件优势、无法实现高性能的转发。
发明内容
有鉴于此,本发明提供了一种用于实现交换线卡与逻辑线卡互通的方法及报文转发设备。
本发明提供的一种用于实现交换线卡与逻辑线卡互通的方法,该方法包括:
步骤a1、当交换线卡的交换芯片从本板的外部接口接收到报文时,该交换芯片在自身的FIB表中查询对应的FIB表项;
步骤a2、当交换线卡的交换芯片查询到对应的FIB表项时,该交换芯片根据对应的FIB表项在自身的邻接表和出接口表中分别查询对应的邻接表项和出接口表项;其中,若下行转发线卡为逻辑线卡,则交换线卡的交换芯片查询到的邻接表项和出接口表项分别为伪邻接表项和伪出接口表项,且伪邻接表项中包含有下行的逻辑线卡所需的邻接表索引和出接口索引、伪出接口表项中包含有专用于交换线卡向逻辑线卡转发报文的通用VLAN ID和通用源MAC;
步骤a3、该交换芯片根据查询到的邻接表项和出接口表项为报文封装跨板转发头和以太二层头、并将封装后的报文通过背板向下行的转发线卡转发;其中,若下行的转发线卡为逻辑线卡,则根据伪邻接表项和伪出接口表项对报文封装的以太二层头为携带有下行的逻辑线卡所需的邻接表索引和出接口索引、以及通用VLAN ID和通用源MAC的伪二层头;
步骤b1、逻辑芯片从背板收到报文时,该逻辑芯片根据报文的跨板转发头中的源模块SMOD识别上行的转发线卡的类型、并去除报文的跨板转发头;
步骤b2、当逻辑线卡的逻辑芯片识别出报文来自上行的交换线卡时,该逻辑芯片根据报文的伪二层头中携带的邻接表索引和出接口索引在自身的邻接表和出接口表中分别查询对应的邻接表项和出接口表项、并去除报文的伪二层头;
步骤b3、该逻辑芯片根据查询到的邻接表项和出接口表项为去除跨板转发头和伪二层头的报文重新封装相应接口类型的二层头、并将封装后的报文从本板对应的外部接口发出。
伪邻接表项中包含的下行的逻辑线卡所需的的邻接表索引和出接口索引,被封装在伪二层头的目的MAC字段中;伪出接口表项中包含专用于交换线卡向逻辑线卡转发报文的通用VLAN ID和通用源MAC,被分别封装在伪二层头的VLAN ID字段和源MAC字段中。
专用于交换线卡向逻辑线卡转发报文的通用VLAN ID和通用源MAC分别为保留VLAN资源中的VLAN ID和源MAC。
该方法进一步包括:
步骤a4、当交换线卡的交换芯片在未查询到对应的FIB表项时,该交换芯片将报文上报至本板的CPU;
若本板的CPU中存在对应的FIB表项,则由本板的CPU对该报文进行处理并背板向下行转发线卡的CPU转发;
若本板的CPU中不存在对应的FIB表项,则丢弃该报文。
跨板转发头中携带有用于指示上行的转发线卡所在槽位的源模块号,逻辑芯片在从背板收到报文时依据跨板转发头中携带的源模块号识别上行的转发线卡的类型。
该方法进一步包括:
步骤c1、当逻辑线卡的逻辑芯片从本板的外部接口接收到报文时,该逻辑芯片在自身的FIB表中查询对应的FIB表项;
步骤c2、当逻辑线卡的逻辑芯片查询到对应的FIB表项时,依据出接口索引与DMOD的对应关系识别出获取的出接口索引所对应的DMOD、并依据DMOD与线卡类型的对应关系来识别下行的转发线卡的类型;
步骤c3、当逻辑线卡的逻辑芯片识别出下行的转发线卡为交换线卡时,该逻辑芯片根据对应的FIB表项在自身的邻接表和出接口表中分别查询对应的邻接表项和出接口表项;
步骤c4、该逻辑芯片根据查询到的邻接表项和出接口表项为报文封装跨板转发头和以太二层头、并将封装后的报文通过背板向下行转发线卡转发;
步骤d1、当交换线卡的交换芯片从背板接收到报文时,该交换芯片去除报文的跨板转发头、并将带有以太二层头的报文从本板对应的外部接口发出。
逻辑芯片在查询到对应的FIB表项时依据FIB表项查询下行的转发线卡所在槽位的模块号、并依据逻辑线卡中的CPU预先配置的模块号与线卡类型的对应关系来识别下行的转发线卡的类型,以及,跨板转发头中携带有下行的转发线卡所在槽位的模块号。
该方法进一步包括:
步骤c5、当逻辑线卡的逻辑芯片未查询到对应的FIB表项时,该逻辑芯片将报文上报至本板的CPU;
若本板的CPU中存在对应的FIB表项,则由本板的CPU对该报文进行处理并通过背板向下行转发线卡的CPU转发;
若本板的CPU中不存在对应的FIB表项,则丢弃该报文。
本发明提供的一种报文转发设备,包括背板、以及插接于背板的转发线卡,转发线卡包括具有交换芯片的交换线卡和具有逻辑芯片的逻辑线卡,其中:
交换线卡具有交换芯片,用于在从本板的外部接口接收到报文时,在自身的FIB表中查询对应的FIB表项;在查询到对应的FIB表项时,根据对应的FIB表项在自身的邻接表和出接口表中分别查询对应的邻接表项和出接口表项,其中,若下行转发线卡为逻辑线卡,则交换线卡的交换芯片查询到的邻接表项和出接口表项分别为伪邻接表项和伪出接口表项,且伪邻接表项中包含有下行的逻辑线卡所需的邻接表索引和出接口索引、伪出接口表项中包含有专用于交换线卡向逻辑线卡转发报文的通用VLAN ID和通用源MAC;以及,根据查询到的邻接表项和出接口表项为报文封装跨板转发头和以太二层头、并将封装后的报文通过背板向下行的转发线卡转发,其中,若下行的转发线卡为逻辑线卡,则根据伪邻接表项和伪出接口表项对报文封装的以太二层头为携带有下行的逻辑线卡所需的邻接表索引和出接口索引、以及通用VLAN ID和通用源MAC的伪二层头;
逻辑芯片从背板收到报文时,根据报文的跨板转发头中的源模块SMOD识别上行的转发线卡的类型、并去除报文的跨板转发头;在识别出报文来自上行的交换线卡时,根据报文的伪二层头中携带的邻接表索引和出接口索引在自身的邻接表和出接口表中分别查询对应的邻接表项和出接口表项、并去除报文的伪二层头;以及,根据查询到的邻接表项和出接口表项为去除跨板转发头和伪二层头的报文重新封装相应接口类型的二层头、并将封装后的报文从本板对应的外部接口发出。
伪邻接表项中包含的下行的逻辑线卡所需的的邻接表索引和出接口索引,被封装在伪二层头的目的MAC字段中;伪出接口表项中包含专用于交换线卡向逻辑线卡转发报文的通用VLAN ID和通用源MAC,被分别封装在伪二层头的VLAN ID字段和源MAC字段中。
专用于交换线卡向逻辑线卡转发报文的通用VLAN ID和通用源MAC分别为保留VLAN资源中的VLAN ID和源MAC。
交换线卡的交换芯片进一步用于在未查询到对应的FIB表项时,将报文上报至本板的CPU;
若本板的CPU中存在对应的FIB表项,则由本板的CPU对该报文进行处理并通过背板向下行转发线卡的CPU转发;
若本板的CPU中不存在对应的FIB表项,则丢弃该报文。
跨板转发头中携带有用于指示上行的转发线卡所在槽位的源模块号,逻辑芯片在从背板收到报文时依据跨板转发头中携带的源模块号识别上行的转发线卡的类型。
逻辑线卡的逻辑芯片进一步用于在从本板的外部接口接收到报文时,在自身的FIB表中查询对应的FIB表项;在查询到对应的FIB表项时,依据出接口索引与DMOD的对应关系识别出获取的出接口索引所对应的DMOD、并依据DMOD与线卡类型的对应关系来识别下行的转发线卡的类型;在识别出下行的转发线卡为交换线卡时,根据对应的FIB表项在自身的邻接表和出接口表中分别查询对应的邻接表项和出接口表项;以及,根据查询到的邻接表项和出接口表项为报文封装跨板转发头和以太二层头、并将封装后的报文通过背板向下行转发线卡转发;
交换线卡的交换芯片进一步用于在从背板接收到报文时,去除报文的跨板转发头、并将带有以太二层头的报文从本板对应的外部接口发出。
逻辑芯片在查询到对应的FIB表项时依据FIB表项查询下行的转发线卡所在槽位的模块号、并依据逻辑线卡中的CPU预先配置的模块号与线卡类型的对应关系来识别下行的转发线卡的类型,以及,跨板转发头中携带有下行的转发线卡所在槽位的模块号。
逻辑线卡的逻辑芯片进一步用于在未查询到对应的FIB表项时,将报文上报至本板的CPU;
若本板的CPU中存在对应的FIB表项,则由本板的CPU对该报文进行处理并通过背板向下行转发线卡的CPU转发;
若本板的CPU中不存在对应的FIB表项,则丢弃该报文。
由此可见,本发明在需要从交换线卡向逻辑线卡转发报文时,由交换线卡仍按照其上行转发流程为报文封装二层头,但不同之处在于其封装的二层头是伪二层头、而不是真实二层头,并且,伪二层头中还携带有逻辑线卡的邻接表索引和出接口表索引;相应地,逻辑线卡在接收到来自交换线卡的报文后,能够从报文的伪二层头中获得邻接表索引和出接口表索引,然后即可按照其下行流程重新为报文封装真实的二层头、并从对应的出接口发出。从而,交换线卡向逻辑线卡转发报文就无需借助CPU的中转,从而能够提高转发性能。
另外,本发明在需要从逻辑线卡向交换线卡转发报文时,可以由易于实现自定义扩展的逻辑线卡执行交换线卡的上行转发流程;相应地,交换线卡在接收到来自逻辑线卡的报文后,即可直接执行其下行流程。从而,逻辑线卡向交换线卡转发报文也无需借助CPU的中转,从而能够提高转发性能。
附图说明
图1为现有技术中根据CPU实现交换线卡与逻辑线卡互通的转发路径示意图;
图2为上下行转发线卡均为交换线卡的转发流程示意图;
图3为上下行转发线卡均为逻辑线卡的转发流程示意图;
图4为本发明实施例中上下行转发线卡分别为交换线卡和逻辑线卡的转发流程示意图;
图5为如图4所示转发流程中由上行的交换线卡封装的报文格式示意图;
图6为本发明实施例中上下行转发线卡分别为逻辑线卡和交换线卡的转发流程示意图;
图7a和图7b为本发明实施例中用于实现交换线卡与逻辑线卡互通的方法的示例性流程示意图;
图8a和图8b为本发明实施例中的报文转发设备的示意图。
具体实施方式
为使本发明的目的、技术方案及优点更加清楚明白,以下参照附图并举实施例,对本发明进一步详细说明。
在本实施例中,交换线卡与逻辑线卡的互通无需借助CPU中转,为此,就需要使交换线卡与逻辑线卡截然不同的转发流程能够实现上行与下行的相互衔接。其中,上行是指从报文接收侧(即入接口)向背板转发的方向,下行是指从背板向报文发出侧(即出接口)转发的方向。
首先,对上行和下行转发线卡同为交换线卡、以及上行和下行转发线卡同为逻辑线卡的转发流程进行说明。
图2为上下行转发线卡均为交换线卡的转发流程示意图。如图2所示,当在交换线卡之间转发报文时:
S211、上行交换线卡的交换芯片从本板的外部接口接收报文。
S212、上行交换线卡的交换芯片在自身的FIB表中查询对应的FIB(ForwardInformation Base,转发信息库)表项,其中:
若能够查询到对应的FIB表项,则继续后续流程。
若没有查询到对应的FIB表项(可能是由于交换芯片的FIB表规格不足而导致本板CPU未在交换芯片的FIB表中配置对应的FIB表项、也可能是由于没有相应的路由而根本不存在对应的FIB表项、还有可能是其他原因),则将报文上送至本板的CPU,此后:
若本板的CPU能够在其维护的逻辑FIB表中查询到对应的FIB表项(有可能是由于交换芯片的FIB表规格不足而导致本板CPU未在交换芯片的FIB表中配置对应的FIB表项),则由本板的CPU按照现有方式对报文进行处理并通过背板向下行转发线卡(在本流程中为下行交换线卡)的CPU转发;但若本板的CPU中也不存在对应的FIB表项(有可能是由于没有相应的路由而根本不存在对应的FIB表项),则丢弃该报文。
S213、上行交换线卡的交换芯片从查询到的FIB表项中获取对应的邻接表索引和出接口索引。
S214、上行交换线卡的交换芯片根据获取的邻接表索引和出接口索引在自身的邻接表、以及例如VLAN(Virtual LocalArea Network)虚接口表等任一种出接口表中分别查询对应的邻接表项和出接口表项。
S215、上行交换线卡的交换芯片根据查询到的邻接表项和出接口表项对报文封装例如HIGIG头等任一种跨板转发头、以及以太二层头,并将封装有跨板转发头和以太二层头的报文向背板转发,其中:
跨板转发头中携带有表示本板所在槽位的SMOD(Source Module,源模块号)、表示下行转发线卡所在槽位的DMOD(Destination Module,目的模块号)、以及用于指示报文在下行转发线卡对应的出接口的DPORT(Destination PORT,目的接口),DMOD和DPORT均根据邻接表项确定;
以太二层头中包含DMAC(Destination Media Access Control,目的MAC)、SMAC(Source Media Access Control,源MAC)、以及VLAN ID(Virtual LocalArea NetworkIdentify,虚拟局域网标识),DMAC根据邻接表项确定、SMAC和VLAN ID根据出接口表项确定。
此后,依据报文的跨板转发头中携带的DMOD,背板能够将报文转发至下行交换线卡。
S221、下行交换线卡的交换芯片从背板接收到来自上行交换线卡的报文,从报文的跨板转发头中获取DPORT、并去除报文的跨板转发头。
S222、由于跨板转发头中携带的DPORT能够指示报文在本板对应的出接口,因此,下行交换线卡的交换芯片依据获取的DPORT所指示的出接口,将带有以太二层头的报文从本板对应的外部接口发出。
由于交换芯片所实现的二层封装通常仅限于单一的以太网封装(封装的二层头长度为18字节),因此,当按照如图2所示的转发流程在交换线卡之间转发报文时,报文的二层封装在上行交换线卡的交换芯片完成、上行交换线卡的交换芯片在跨板转发头中携带用于指示报文在下行转发线卡对应的出接口的DPORT,而下行交换线卡的交换芯片则不需要负责报文的二层封装、且只需依据跨板转发头中的DPORT转发报文。
图3为上下行转发线卡均为逻辑线卡的转发流程示意图。如图3所示,当在逻辑线卡之间转发报文时:
S311、上行逻辑线卡的逻辑芯片从本板的外部接口接收报文。
S312、上行逻辑线卡的逻辑芯片在自身的FIB表中查询对应的FIB表项,其中:
若能够查询到对应的FIB表项,则继续后续流程。
若没有查询到对应的FIB表项(可能是由于逻辑芯片的FIB表规格不足而导致本板未在逻辑芯片配置对应的FIB表项、也可能是由于没有相应的路由而根本不存在对应的FIB表项、还有可能是其他原因),则将报文上送至本板的CPU,此后:
若本板的CPU能够在其维护的逻辑FIB表中查询到对应的FIB表项(可能是由于逻辑芯片的FIB表规格不足而导致本板未在逻辑芯片配置对应的FIB表项),则由本板的CPU按照现有方式对报文进行处理并背板向下行转发线卡(在本流程中为下行逻辑线卡)的CPU转发;但若本板的CPU中也不存在对应的FIB表项(有可能是由于没有相应的路由而根本不存在对应的FIB表项),则丢弃该报文。
S313、上行逻辑线卡的逻辑芯片从查询到的FIB表项中获取邻接表索引和出接口索引,并识别下行转发线卡是逻辑线卡还是交换线卡,其中:
上行逻辑线卡的CPU可以预先在逻辑芯片配置出接口索引与DMOD的对应关系、并配置各DMOD所对应的交换线卡类型,相应地,逻辑芯片在查询到对应的FIB表项之后能够依据出接口索引与DMOD的对应关系识别出获取的出接口索引所对应的DMOD、并依据DMOD与线卡类型的对应关系来识别下行的转发线卡的类型。
S314、当上行逻辑线卡的逻辑芯片识别出下行转发线卡为逻辑线卡时,由于邻接表项和出接口表项的查询、以及以太二层头的封装应当由下行逻辑线卡来完成,因此,上行逻辑线卡的逻辑芯片为报文封装(例如HIGIG头)跨板转发头、以及报文控制块,并将带有跨板转发头和报文控制块的报文向背板转发,其中:
跨板转发头中携带有表示本板所在槽位的SMOD、表示下行转发线卡所在槽位的DMOD,DMOD可以由CPU在逻辑芯片配置的出接口索引与DMOD的对应关系确定;
报文控制块中则包含由上行逻辑线卡的逻辑芯片获取到的邻接表索引和出接口索引。
此后,依据报文的跨板转发头中的DMOD,背板能够将报文转发至下行逻辑线卡。
S321、下行逻辑线卡的逻辑芯片从背板接收到来自上行逻辑线卡的报文,并依据报文的跨板转发头中的SMOD识别出报文的上行转发线卡的类型。其中,在本流程中,识别出的下行转发线卡为逻辑线卡,因而,下行逻辑线卡的逻辑芯片在去除报文的跨板转发头后,从报文的报文控制块中获取邻接表索引和出接口索引。
S322、下行逻辑线卡的逻辑芯片根据获取的邻接表索引和出接口索引在自身的邻接表和出接口表中分别查询得到对应的邻接表项和出接口表项。
S323、下行逻辑线卡的逻辑芯片根据查询到的邻接表项和出接口表项对报文封装相应接口类型(相应接口类型可以是预先确定的)的二层头。
S324、下行逻辑线卡的逻辑芯片依据查询到的邻接表项中的DMAC所指示的出接口,将封装有相应接口类型的二层头的报文从本板对应外部接口发出。
由于逻辑线卡所能够提供的接口类型非常丰富,除了能够提供以太网接口之外,还能够提供POS(Packet over SONET/SDH,光同步数字传输网承载数据包)接口、三层聚合接口、HDLC(High-Level Data Link Control,高级数据链路控制)捆绑接口、隧道接口等广域网常用的各种类型接口,因此,当按照如图3所示的转发流程在逻辑线卡之间转发报文时,对报文的二层封装可以由出接口所在的下行逻辑线卡的逻辑芯片来完成、并由下行逻辑线卡的逻辑芯片自行查找出接口,当然,用于进行二层封装的邻接表索引和出接口索引可以由上行逻辑线卡的逻辑芯片提供。
下面,再对于上行和下行转发线卡分别为交换线卡和逻辑线卡、以及上行和下行转发线卡分别为逻辑线卡和交换线卡的转发流程进行说明。
1、交换线卡位于上行、逻辑线卡位于下行的情况:
考虑到交换芯片的转发流程是固化不可变的,因此,对于上行交换线卡的交换芯片,本实施例仍保留其封装跨板转发头和以太二层头的流程
但是,下行逻辑线卡需要由上行转发线卡为其提供邻接表索引和出接口索引、并封装二层头,并且,下行逻辑线卡所封装的二层头并不限于以太二层头。
由此,就会存在由上行交换线卡的交换芯片向下行逻辑线卡提供邻接表索引和出接口索引的需求、并出现二层头的重复封装。
为了满足上行交换线卡的交换芯片向下行逻辑线卡提供邻接表索引和出接口索引的需求、并避免二层头的重复封装,在本实施例中,上行交换线卡的交换芯片封装以太二层头时所使用的邻接表项和出接口表项并不是真正用于以太封装的表项,而是由上行交换芯片的CPU分别在上行交换线卡的交换芯片的邻接表和出接口表中配置的虚假的伪邻接表项和伪出接口表项。
其中,伪邻接表项中包含下行逻辑线卡所需的邻接表索引和出接口索引,而伪出接口表项中包含专用于上行交换线卡向下行逻辑线卡转发报文的通用VLAN ID和通用源MAC,该通用VLAN ID和通用源MAC也可以被认为是虚假的VLAN ID和虚假的源MAC、并可以由保留VLAN资源中的VLAN ID和源MAC来实现。
相应地,当报文从上行交换线卡向下行逻辑线卡转发时,上行交换线卡的交换芯片根据伪邻接表项和伪出接口表项封装得到以太二层头,此时,该二层头的格式虽然仍是以太二层头的格式,但根据伪邻接表项和伪出接口表项所封装的二层头并不是用于转发的真正以太二层头,而是携带有下行逻辑线卡所需的邻接表索引和出接口索引的伪二层头。
其中,伪邻接表项中包含的下行的逻辑线卡所需的的邻接表索引和出接口索引,被封装在伪二层头的目的MAC字段中;伪出接口表项中包含专用于交换线卡向逻辑线卡转发报文的通用VLAN ID和通用源MAC,被分别封装在伪二层头的VLAN ID字段和源MAC字段中。
实际应用中,伪邻接表项和伪出接口表项的创建与配置方式与真实的邻接表项和出接口表项相同。
此外,下行逻辑线卡的逻辑芯片通过识别跨板转发头中的SMOD(Source Module,源模块号)能够判断出发出该报文的上行转发线卡是逻辑线卡还是交换线卡。
若判断出上行转发线卡是逻辑线卡,则下行逻辑线卡的逻辑芯片仍按照如图3所示流程中的S321从报文控制块中获取其需要的邻接表索引和出接口索引;
但若判断出报文是从交换线卡转发而来,则下行逻辑线卡的逻辑芯片从报文的以太二层头、也就是伪二层头中获取其需要的邻接表索引和出接口索引,从而根据获取的邻接表索引和出接口索引查找到真正用于封装的邻接表项和出接口表项,并将伪二层头去除后根据在本板查找到的邻接表项和出接口表项对对报文重新进行相应接口类型的二层封装。
这样,根据报文的伪二层头即可满足上行交换线卡的交换芯片向下行逻辑线卡提供邻接表索引和出接口索引的需求,并同时避免二层头的重复封装。
2、逻辑线卡位于上行、交换线卡位于下行的情况:
首先,上行逻辑线卡的逻辑芯片中需要具有下行交换线卡的邻接表项和出接口表项。实际应用中,上行逻辑线卡中用于实现二层封装的邻接表项和出接口表项,可以由上行逻辑线卡的CPU通过与下行交换线卡的CPU同步得到。
那么,当上行逻辑线卡的逻辑芯片按照如图3所示流程中的S313判断出下行转发线卡为交换线卡时,上行逻辑线卡的逻辑芯片会按照与如图2所示流程中的S214~S215相同的方式,在自身的邻接表和出接口表中分别查询对应的邻接表项和出接口表项、并对报文进行以太二层封装。
下面,结合具体转发流程对本实施例进行详细说明。
图4为本发明实施例中上下行转发线卡分别为交换线卡和逻辑线卡的转发流程示意图。如图4所示,当位于上行的交换线卡与位于下行的逻辑线卡互通时:
S411(与S211相同)、上行交换线卡的交换芯片从本板的外部接口接收报文;
S412(与S212相同)、上行交换线卡的交换芯片在自身的FIB表中查询对应的FIB表项,其中:
若能够查询到对应的FIB表项,则继续后续流程。
若没有查询到对应的FIB表项(可能是由于交换芯片的FIB表规格不足而导致本板CPU未在交换芯片的FIB表中配置对应的FIB表项、也可能是由于没有相应的路由而根本不存在对应的FIB表项、还有可能是其他原因),则将报文上送至本板的CPU,此后:
若本板的CPU能够在其维护的逻辑FIB表中查询到对应的FIB表项(有可能是由于交换芯片的FIB表规格不足而导致本板CPU未在交换芯片的FIB表中配置对应的FIB表项),则由本板的CPU按照现有方式对报文进行处理并通过背板向下行转发线卡(在本流程中为下行逻辑线卡)的CPU转发;但若本板的CPU中也不存在对应的FIB表项(有可能是由于没有相应的路由而根本不存在对应的FIB表项),则丢弃该报文。
S413(与S213相同)、上行交换线卡的交换芯片从查询到的FIB表项中获取对应的邻接表索引和出接口索引。
S414、上行交换线卡的交换芯片根据获取的邻接表索引和出接口索引在自身的邻接表、以及例如VLAN虚接口表等出接口表中分别查询对应的邻接表项和出接口表项。
其中,由于本流程中的下行转发线卡为逻辑线卡,因此,上行交换线卡的交换芯片查询到的邻接表项和出接口表项必然是伪邻接表项和伪出接口表项,而不是如S214中那样查询到真实的邻接表项和出接口表项。
S415、上行交换线卡的交换芯片根据查询到的伪邻接表项和伪出接口表项对报文封装(例如HIGIG头)跨板转发头、以及伪二层头,并将封装有跨板转发头和伪二层头的报文向背板转发。
请在参见图4的同时再结合图5,以跨板转发头为HIGIG头为例,HIGIG头中包括DMOD字段、DPORT字段、以及例如SMOD等其他字段;
其中,DMOD字段中携带有表示下行转发线卡所在槽位的DMOD、该DMOD是根据伪邻接表项确定的,DPORT字段则可以为空、也可以携带用于功能扩展的其他信息,SMOD字段中携带有表示本板所在槽位的SMOD;
请在参见图4的同时再结合图5,以出接口表项为VLAN虚接口表项为例,与真实的以太二层头具有相同格式的伪二层头中仍包括DMAC字段、SMAC字段、VLAN ID字段、以及其他字段;
其中,伪二层头中的DMAC字段中并不用于携带真实的DMAC、而是用于携带下行逻辑线卡所需的邻接表索引和出接口索引,相应地,伪邻接表项中原本应当包含的DMAC实际上就被下行逻辑线卡所需的邻接表索引和出接口索引所替代;SMAC字段和VLAN ID字段也不用于携带真实的SMAC和VLAN ID、而是用于携带专用于上行交换线卡向下行逻辑线卡转发报文的保留VLAN资源中的SMAC和VLAN ID,即,保留VLAN资源的SMAC和VLAN ID作为通用SMAC和通用VLAN ID填写在所有从交换线卡向逻辑线卡转发的报文的SMAC字段和VLAN ID字段中,相应地,伪出接口表项可以选用保留的VLAN虚接口表项4095来实现。
此后,依据报文的跨板转发头中携带的DMOD,背板能够将报文转发至下行逻辑线卡。
S421、下行逻辑线卡的逻辑芯片从背板接收到来自上行逻辑线卡的报文,并依据报文的跨板转发头中的SMOD识别出报文的上行转发线卡的类型。其中,在本流程中,识别出的下行转发线卡为逻辑线卡,因而,在去除跨板转发头之后,从报文的以太二层头、即伪二层头中(即伪二层头的DMAC字段中)获取邻接表索引和出接口索引,然后再去除伪二层头。
S422(与S322相同)、下行逻辑线卡的逻辑芯片根据获取的邻接表索引和出接口索引在自身的邻接表和出接口表中分别查询得到对应的邻接表项和出接口表项。
S423(与S323相同)、下行逻辑线卡的逻辑芯片根据查询到的邻接表项和出接口表项,按照相应的接口类型的二层头对报文重新进行二层封装。
S424(与S324相同)、下行逻辑线卡的逻辑芯片依据查询到的邻接表项中的DMAC所指示的出接口,将封装有相应接口类型的二层头的报文从本板对应外部接口发出。
如上可见,虽然上行交换线卡的交换芯片仍会对报文进行以太二层网封装,但当位于上行的交换线卡与位于下行的逻辑线卡互通时,上行的交换线卡对报文的以太二层封装的作用并不是真正用于转发的以太二层头、而是为报文封装伪二层头,并通过伪二层头向下行逻辑线卡传递其所需的邻接表索引和出接口索引,因而使得下行逻辑线卡能够依据所传递的邻接表索引和出接口索引对报文实现正确的二层封装。
图6为本发明实施例中上下行转发线卡分别为逻辑线卡和交换线卡的转发流程示意图。如图6所示,当位于上行的逻辑卡与位于下行的交换线卡互通时:
S611(与S311相同)、上行逻辑线卡的逻辑芯片从本板的外部接口接收报文。
S612(与S312相同)、上行逻辑线卡的逻辑芯片在自身的FIB表中查询对应的FIB表项,其中:
若能够查询到对应的FIB表项,则继续后续流程。
若没有查询到对应的FIB表项(可能是由于逻辑芯片的FIB表规格不足而导致本板未在逻辑芯片配置对应的FIB表项、也可能是由于没有相应的路由而根本不存在对应的FIB表项、还有可能是其他原因),则将报文上送至本板的CPU,此后:
若本板的CPU能够在其维护的逻辑FIB表中查询到对应的FIB表项(可能是由于逻辑芯片的FIB表规格不足而导致本板未在逻辑芯片配置对应的FIB表项),则由本板的CPU按照现有方式对报文进行处理并背板向下行转发线卡(在本流程中为下行交换线卡)的CPU转发;但若本板的CPU中也不存在对应的FIB表项(有可能是由于没有相应的路由而根本不存在对应的FIB表项),则丢弃该报文。
S613(与S313相同)、上行逻辑线卡的逻辑芯片从查询到的FIB表项中获取邻接表索引和出接口索引,并识别下行转发线卡是逻辑线卡还是交换线卡,其中:
上行逻辑线卡的CPU可以预先在逻辑芯片配置出接口索引与DMOD的对应关系、并配置各DMOD所对应的交换线卡类型,相应地,逻辑芯片在查询到对应的FIB表项之后能够依据出接口索引与DMOD的对应关系识别出获取的出接口索引所对应的DMOD、并依据DMOD与线卡类型的对应关系来识别下行的转发线卡的类型。
S614(类似于S214)、当上行逻辑线卡的逻辑芯片识别出下行转发线卡为交换线卡时,上行逻辑线卡的逻辑芯片根据查询到的邻接表索引和出接口索引,在自身的邻接表和出接口表中查询得到用于进行以太二层封装的的邻接表项和出接口表项。
S615(类似于S215)、上行逻辑线卡的逻辑芯片根据查询到的邻接表项和出接口表项对报文封装(例如HIGIG头)跨板转发头、以及以太二层头,并将封装有跨板转发头和以太二层头的报文向背板转发,其中:
跨板转发头中携带有表示本板所在槽位的SMOD、表示下行转发线卡所在槽位的DMOD、以及用于指示报文在下行转发线卡对应的出接口的DPORT,DMOD和DPORT均根据邻接表项确定;
以太二层头中包含DMAC、SMAC、以及VLAN ID,DMAC根据邻接表项确定、SMAC和VLANID根据出接口表项确定。
此后,依据报文的跨板转发头中携带的DMOD,背板能够将报文转发至下行交换线卡;
S621(与S221相同)、下行交换线卡的交换芯片从背板接收到来自上行交换线卡的报文,从报文的跨板转发头中获取DPORT、并去除报文的跨板转发头。
S622(与S222相同)、由于跨板转发头中携带的DPORT能够指示报文在本板对应的出接口,因此,下行交换线卡的交换芯片依据获取的DPORT所指示的出接口,将带有以太二层头的报文从本板对应的外部接口发出。
如上可见,上行逻辑线卡的逻辑芯片能够按照上行交换线卡的封装流程为报文封装以太二层头,因而使得下行交换线卡能够按照原有流程继续实现报文的转发。
以上是对本实施例实现交换线卡与逻辑线卡互通的详细说明。基于该原理,本实施例提供了一种用于实现交换线卡与逻辑线卡互通的方法。
图7a和图7b为本发明实施例中用于实现交换线卡与逻辑线卡互通的方法的示例性流程示意图。
如图7a所示,该方法包括用于上行的交换线卡与下行的逻辑线卡互通的如下步骤:
步骤711、当交换线卡的交换芯片从本板的外部接口接收到报文时,该交换芯片在自身的FIB表中查询对应的FIB表项。
步骤712、当交换线卡的交换芯片查询到对应的FIB表项时,该交换芯片根据对应的FIB表项在自身的邻接表和出接口表中分别查询对应的邻接表项和出接口表项。
其中,若下行转发线卡为逻辑线卡,则交换线卡的交换芯片查询到的邻接表项和出接口表项分别为伪邻接表项和伪出接口表项,其中,伪邻接表项中包含有下行的逻辑线卡所需的邻接表索引和出接口索引、伪出接口表项中包含有专用于交换线卡向逻辑线卡转发报文的通用VLAN ID和通用源MAC。
步骤713、该交换芯片根据查询到的邻接表项和出接口表项为报文封装跨板转发头和以太二层头、并将封装后的报文通过背板向下行的转发线卡转发。
其中,若下行的转发线卡为逻辑线卡,则根据伪邻接表项和伪出接口表项对报文封装的以太二层头为携带有下行的逻辑线卡所需的邻接表索引和出接口索引、以及通用VLAN ID和通用源MAC的伪二层头。
例如,伪邻接表项中包含的下行的逻辑线卡所需的的邻接表索引和出接口索引,被封装在伪二层头的目的MAC字段中;伪出接口表项中包含专用于交换线卡向逻辑线卡转发报文的通用VLAN ID和通用源MAC(例如保留VLAN资源中的VLAN ID和源MAC),被分别封装在伪二层头的VLAN ID字段和源MAC字段中。
步骤714、当逻辑线卡的逻辑芯片从背板到报文时,该逻辑芯片根据报文的跨板转发头识别上行的转发线卡的类型、并去除报文的跨板转发头。
例如,跨板转发头中可以携带有用于指示上行的转发线卡所在槽位的源模块号,相应地,逻辑芯片在从背板到报文时即可依据跨板转发头中携带的源模块号识别上行的转发线卡的类型。
步骤715、当逻辑线卡的逻辑芯片识别出报文来自上行的交换线卡时,该逻辑芯片根据报文的伪二层头中携带的邻接表索引和出接口索引在自身的邻接表和出接口表中分别查询对应的邻接表项和出接口表项、并去除报文的伪二层头。
步骤716、该逻辑芯片根据查询到的邻接表项和出接口表项为去除跨板转发头和伪二层头的报文重新封装相应接口类型的二层头、并将封装后的报文从本板对应的外部接口发出。
至此,上行的交换线卡与下行的逻辑线卡的一次互通流程结束。
另需要说明的是:
当交换线卡的交换芯片在通过步骤711未查询到对应的FIB表项时,该交换芯片不会执行步骤712~716,而是将报文上报至本板的CPU;其中,若本板的CPU中存在对应的FIB表项,则由本板的CPU对该报文进行处理并通过背板向下行转发线卡的CPU转发;若本板的CPU中不存在对应的FIB表项,则丢弃该报文。
当下行的逻辑线卡的逻辑芯片从背板到报文、并通过步骤714识别出报文来自上行的逻辑线卡时,逻辑线卡的逻辑芯片不会执行步骤715~716,而是像现有方式那样从报文的报文控制块中获取邻接表索引和出接口索引,并依据从报文控制块中获取的邻接表索引和出接口索引在本板查询对应的邻接表项和出接口表项、以及根据在本板查询到的邻接表项和出接口表项封装以太二层头,再将封装后的报文从本板对应的外部接口发出。
如图7b所示,该方法还可以包括用于上行的逻辑线卡与下行的交换线卡互通的如下步骤:
步骤721、当逻辑线卡的逻辑芯片从本板的外部接口接收到报文时,该逻辑芯片在自身的FIB表中查询对应的FIB表项。
步骤722、当逻辑线卡的逻辑芯片查询到对应的FIB表项时,该逻辑芯片根据对应的FIB表项识别下行的转发线卡的类型。
例如,逻辑芯片在查询到对应的FIB表项时依据FIB表项查询下行的转发线卡所在槽位的模块号、并依据逻辑线卡中的CPU预先配置的模块号与线卡类型的对应关系来识别下行的转发线卡的类型,相应地,由上行的逻辑线卡的逻辑芯片所封装的跨板转发头中携带有下行的转发线卡所在槽位的模块号;
步骤723、当逻辑线卡的逻辑芯片识别出下行的转发线卡为交换线卡时,该逻辑芯片根据对应的FIB表项在自身的邻接表和出接口表中分别查询对应的邻接表项和出接口表项。
步骤724、该逻辑芯片根据查询到的邻接表项和出接口表项为报文封装跨板转发头和以太二层头、并将封装后的报文通过背板向下行转发线卡转发。
步骤725、当交换线卡的交换芯片从背板接收到报文时,该交换芯片去除报文的跨板转发头、并将带有以太二层头的报文从本板对应的外部接口发出。
至此,上行的逻辑线卡与下行的交换线卡的一次互通流程结束。
另需要说明的是:
当逻辑线卡的逻辑芯片通过步骤721未查询到对应的FIB表项时,该逻辑芯片将报文上报至本板的CPU;其中,若本板的CPU中存在对应的FIB表项,则由本板的CPU对该报文进行处理并通过背板向下行转发线卡的CPU转发;若本板的CPU中不存在对应的FIB表项,则丢弃该报文。
以上是对本实施例中用于实现交换线卡与逻辑线卡互通的方法的详细说明。除了该方法之外,本实施例还提供了一种报文转发设备,请先参见图8a和图8b,该报文转发设备包括背板、以及插接于背板的转发线卡,转发线卡包括具有交换芯片的交换线卡和具有逻辑芯片的逻辑线卡。
请先参见图8a:
交换线卡具有交换芯片,用于在从本板的外部接口接收到报文时,在自身的FIB表中查询对应的FIB表项;在查询到对应的FIB表项时,根据对应的FIB表项在自身的邻接表和出接口表中分别查询对应的邻接表项和出接口表项,其中,若下行转发线卡为逻辑线卡,则交换线卡的交换芯片查询到的邻接表项和出接口表项分别为伪邻接表项和伪出接口表项,且伪邻接表项中包含有下行的逻辑线卡所需的邻接表索引和出接口索引、伪出接口表项中包含有专用于交换线卡向逻辑线卡转发报文的通用VLAN ID和通用源MAC(例如保留VLAN资源中的VLAN ID和源MAC);以及,在查询到对应的邻接表项和出接口表项时,根据查询到的邻接表项和出接口表项为报文封装跨板转发头和以太二层头、并将封装后的报文通过背板向下行的转发线卡转发,其中,若下行的转发线卡为逻辑线卡,则根据伪邻接表项和伪出接口表项对报文封装的以太二层头为携带有下行的逻辑线卡所需的邻接表索引和出接口索引、以及通用VLAN ID和通用源MAC的伪二层头。
实际应用中,伪邻接表项中包含的下行的逻辑线卡所需的的邻接表索引和出接口索引,被封装在伪二层头的目的MAC字段中;伪出接口表项中包含专用于交换线卡向逻辑线卡转发报文的通用VLAN ID和通用源MAC,被分别封装在伪二层头的VLAN ID字段和源MAC字段中。
逻辑线卡的逻辑芯片,用于在从背板到报文时,根据报文的跨板转发头识别上行的转发线卡的类型、并去除报文的跨板转发头;在识别出报文来自上行的交换线卡时,根据报文的伪二层头中携带的邻接表索引和出接口索引在自身的邻接表和出接口表中分别查询对应的邻接表项和出接口表项、并去除报文的伪二层头,根据查询到的邻接表项和出接口表项为去除跨板转发头和伪二层头的报文重新封装相应接口类型的二层头、并将封装后的报文从本板对应的外部接口发出。
实际应用中,跨板转发头中携带有用于指示上行的转发线卡所在槽位的源模块号,逻辑芯片在从背板到报文时依据跨板转发头中携带的源模块号识别上行的转发线卡的类型。
可选地,交换线卡的交换芯片可以进一步用于在未查询到对应的FIB表项时,将报文上报至本板的CPU;其中,若本板的CPU中存在对应的FIB表项,则由本板的CPU对该报文进行处理并通过背板向下行转发线卡的CPU转发;若本板的CPU中不存在对应的FIB表项,则丢弃该报文。
请再参见图8b:
逻辑线卡的逻辑芯片进一步用于在从本板的外部接口接收到报文时,在自身的FIB表中查询对应的FIB表项;在查询到对应的FIB表项时,根据对应的FIB表项识别下行的转发线卡的类型;在识别出下行的转发线卡为交换线卡时,根据对应的FIB表项在自身的邻接表和出接口表中分别查询对应的邻接表项和出接口表项;以及,在查询到对应的邻接表项和出接口表项时,根据查询到的邻接表项和出接口表项为报文封装跨板转发头和以太二层头、并将封装后的报文通过背板向下行转发线卡转发。
实际应用中,逻辑芯片在查询到对应的FIB表项时依据FIB表项查询下行的转发线卡所在槽位的模块号、并依据逻辑线卡中的CPU预先配置的模块号与线卡类型的对应关系来识别下行的转发线卡的类型,以及,跨板转发头中携带有下行的转发线卡所在槽位的模块号。
交换线卡的交换芯片进一步用于在从背板接收到报文时,去除报文的跨板转发头、并将带有以太二层头的报文从本板对应的外部接口发出。
另外,逻辑线卡的逻辑芯片可以进一步用于在未查询到对应的FIB表项时,将报文上报至本板的CPU;其中,若本板的CPU中存在对应的FIB表项,则由本板的CPU对该报文进行处理并通过背板向下行转发线卡的CPU转发;若本板的CPU中不存在对应的FIB表项,则丢弃该报文。
在具体实现本实施例时,交换线卡和逻辑线卡的上述功能也可以通过计算机程序来实现。为此,本实施例进一步提供了一种用于实现交换线卡与逻辑线卡互通的装置,且该装置可以应用在报文转发设备中。
该装置包括用于上行的交换线卡与下行的逻辑线卡互通的如下模块:
上行交换FIB查询模块,当交换线卡的交换芯片从本板的外部接口接收到报文时,触发该交换芯片在自身的FIB表中查询对应的FIB表项;
上行交换本板查询模块,当交换线卡的交换芯片查询到对应的FIB表项时,触发该交换芯片根据对应的FIB表项在自身的邻接表和出接口表中分别查询对应的邻接表项和出接口表项;
其中,若下行转发线卡为逻辑线卡,则交换线卡的交换芯片查询到的邻接表项和出接口表项分别为伪邻接表项和伪出接口表项,且伪邻接表项中包含有下行的逻辑线卡所需的邻接表索引和出接口索引、伪出接口表项中包含有专用于交换线卡向逻辑线卡转发报文的通用VLAN ID和通用源MAC;
上行交换本板封装模块,触发该交换芯片根据查询到的邻接表项和出接口表项为报文封装跨板转发头和以太二层头、并将封装后的报文通过背板向下行的转发线卡转发;
其中,若下行的转发线卡为逻辑线卡,则根据伪邻接表项和伪出接口表项对报文封装的以太二层头为携带有下行的逻辑线卡所需的邻接表索引和出接口索引、以及通用VLAN ID和通用源MAC的伪二层头;
例如,伪邻接表项中包含的下行的逻辑线卡所需的的邻接表索引和出接口索引,被封装在伪二层头的目的MAC字段中;伪出接口表项中包含专用于交换线卡向逻辑线卡转发报文的通用VLAN ID和通用源MAC(例如保留VLAN资源中的VLAN ID和源MAC),被分别封装在伪二层头的VLAN ID字段和源MAC字段中;
下行逻辑类型识别模块,当逻辑线卡的逻辑芯片从背板到报文时,触发该逻辑芯片根据报文的跨板转发头识别上行的转发线卡的类型、并去除报文的跨板转发头;
例如,跨板转发头中可以携带有用于指示上行的转发线卡所在槽位的源模块号,相应地,逻辑芯片在从背板到报文时即可依据跨板转发头中携带的源模块号识别上行的转发线卡的类型;
下行逻辑本板查询模块,当逻辑线卡的逻辑芯片识别出报文来自上行的交换线卡时,触发该逻辑芯片根据报文的伪二层头中携带的邻接表索引和出接口索引在自身的邻接表和出接口表中分别查询对应的邻接表项和出接口表项、并去除报文的伪二层头;
下行逻辑本板封装模块,触发该逻辑芯片根据查询到的邻接表项和出接口表项为去除跨板转发头和伪二层头的报文重新封装相应接口类型的二层头、并将封装后的报文从本板对应的外部接口发出。
可选地,该装置可以进一步包括:
上行交换CPU上报模块,当交换线卡的交换芯片在未查询到对应的FIB表项时,该交换芯片将报文上报至本板的CPU;
若本板的CPU中存在对应的FIB表项,则由本板的CPU对该报文进行处理并通过背板向下行转发线卡的CPU转发;
若本板的CPU中不存在对应的FIB表项,则丢弃该报文。
可选地,该装置还可以进一步包括:
上行逻辑FIB查询模块,当逻辑线卡的逻辑芯片从本板的外部接口接收到报文时,触发该逻辑芯片在自身的FIB表中查询对应的FIB表项;
上行逻辑类型识别模块,当逻辑线卡的逻辑芯片查询到对应的FIB表项时,触发该逻辑芯片识别下行的转发线卡的类型;
例如,逻辑芯片在查询到对应的FIB表项时依据FIB表项查询下行的转发线卡所在槽位的模块号、并依据逻辑线卡中的CPU预先配置的模块号与线卡类型的对应关系来识别下行的转发线卡的类型,相应地,由上行的逻辑线卡的逻辑芯片所封装的跨板转发头中携带有下行的转发线卡所在槽位的模块号;
上行逻辑本板查询模块,当逻辑线卡的逻辑芯片识别出下行的转发线卡为交换线卡时,触发该逻辑芯片根据对应的FIB表项在自身的邻接表和出接口表中分别查询对应的邻接表项和出接口表项;
上行逻辑本板封装模块,触发该逻辑芯片根据查询到的邻接表项和出接口表项为报文封装跨板转发头和以太二层头、并将封装后的报文通过背板向下行转发线卡转发;
下行交换本板转发模块,当交换线卡的交换芯片从背板接收到报文时,触发该交换芯片去除报文的跨板转发头、并将带有以太二层头的报文从本板对应的外部接口发出。
实际应用中,逻辑线卡中的逻辑芯片在识别出下行的转发线卡为交换线卡时查询得到的邻接表项和出接口表项,可以是由逻辑线卡的CPU从交换线卡的CPU同步得到,其中,该同步的执行是以本板的流量触发、或该逻辑线卡所在报文转发设备中的主控板的配置触发为触发条件。
可选地,该装置还可以进一步包括:
上行逻辑CPU上报模块,当逻辑线卡的逻辑芯片未查询到对应的FIB表项时,触发该逻辑芯片将报文上报至本板的CPU;
若本板的CPU中存在对应的FIB表项,则由本板的CPU对该报文进行处理并通过背板向下行转发线卡的CPU转发;
若本板的CPU中不存在对应的FIB表项,则丢弃该报文。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。
Claims (16)
1.一种用于实现交换线卡与逻辑线卡互通的方法,其特征在于,该方法包括:
步骤a1、当交换线卡的交换芯片从本板的外部接口接收到报文时,该交换芯片在自身的FIB表中查询对应的FIB表项;
步骤a2、当交换线卡的交换芯片查询到对应的FIB表项时,该交换芯片根据对应的FIB表项在自身的邻接表和出接口表中分别查询对应的邻接表项和出接口表项;其中,若下行转发线卡为逻辑线卡,则交换线卡的交换芯片查询到的邻接表项和出接口表项分别为伪邻接表项和伪出接口表项,且伪邻接表项中包含有下行的逻辑线卡所需的邻接表索引和出接口索引、伪出接口表项中包含有专用于交换线卡向逻辑线卡转发报文的通用VLAN ID和通用源MAC;
步骤a3、该交换芯片根据查询到的邻接表项和出接口表项为报文封装跨板转发头和以太二层头、并将封装后的报文通过背板向下行的转发线卡转发;其中,若下行的转发线卡为逻辑线卡,则根据伪邻接表项和伪出接口表项对报文封装的以太二层头为携带有下行的逻辑线卡所需的邻接表索引和出接口索引、以及通用VLAN ID和通用源MAC的伪二层头;
步骤b1、逻辑芯片从背板收到报文时,该逻辑芯片根据报文的跨板转发头中的源模块SMOD识别上行的转发线卡的类型、并去除报文的跨板转发头;
步骤b2、当逻辑线卡的逻辑芯片识别出报文来自上行的交换线卡时,该逻辑芯片根据报文的伪二层头中携带的邻接表索引和出接口索引在自身的邻接表和出接口表中分别查询对应的邻接表项和出接口表项、并去除报文的伪二层头;
步骤b3、该逻辑芯片根据查询到的邻接表项和出接口表项为去除跨板转发头和伪二层头的报文重新封装相应接口类型的二层头、并将封装后的报文从本板对应的外部接口发出。
2.根据权利要求1所述的方法,其特征在于,伪邻接表项中包含的下行的逻辑线卡所需的的邻接表索引和出接口索引,被封装在伪二层头的目的MAC字段中;伪出接口表项中包含专用于交换线卡向逻辑线卡转发报文的通用VLAN ID和通用源MAC,被分别封装在伪二层头的VLAN ID字段和源MAC字段中。
3.根据权利要求2所述的方法,其特征在于,专用于交换线卡向逻辑线卡转发报文的通用VLAN ID和通用源MAC分别为保留VLAN资源中的VLAN ID和源MAC。
4.根据权利要求1所述的方法,其特征在于,该方法进一步包括:
步骤a4、当交换线卡的交换芯片在未查询到对应的FIB表项时,该交换芯片将报文上报至本板的CPU;
若本板的CPU中存在对应的FIB表项,则由本板的CPU对该报文进行处理并通过背板向下行转发线卡的CPU转发;
若本板的CPU中不存在对应的FIB表项,则丢弃该报文。
5.根据权利要求1所述的方法,其特征在于,跨板转发头中携带有用于指示上行的转发线卡所在槽位的源模块号,逻辑芯片在从背板收到报文时依据跨板转发头中携带的源模块号识别上行的转发线卡的类型。
6.根据权利要求1所述的方法,其特征在于,该方法进一步包括:
步骤c1、当逻辑线卡的逻辑芯片从本板的外部接口接收到报文时,该逻辑芯片在自身的FIB表中查询对应的FIB表项;
步骤c2、当逻辑线卡的逻辑芯片查询到对应的FIB表项时,依据出接口索引与DMOD的对应关系识别出获取的出接口索引所对应的DMOD、并依据DMOD与线卡类型的对应关系来识别下行的转发线卡的类型;
步骤c3、当逻辑线卡的逻辑芯片识别出下行的转发线卡为交换线卡时,该逻辑芯片根据对应的FIB表项在自身的邻接表和出接口表中分别查询对应的邻接表项和出接口表项;
步骤c4、该逻辑芯片根据查询到的邻接表项和出接口表项为报文封装跨板转发头和以太二层头、并将封装后的报文通过背板向下行转发线卡转发;
步骤d1、当交换线卡的交换芯片从背板接收到报文时,该交换芯片去除报文的跨板转发头、并将带有以太二层头的报文从本板对应的外部接口发出。
7.根据权利要求6所述的方法,其特征在于,逻辑芯片在查询到对应的FIB表项时依据FIB表项查询下行的转发线卡所在槽位的模块号、并依据逻辑线卡中的CPU预先配置的模块号与线卡类型的对应关系来识别下行的转发线卡的类型,以及,跨板转发头中携带有下行的转发线卡所在槽位的模块号。
8.根据权利要求6所述的方法,其特征在于,该方法进一步包括:
步骤c5、当逻辑线卡的逻辑芯片未查询到对应的FIB表项时,该逻辑芯片将报文上报至本板的CPU;
若本板的CPU中存在对应的FIB表项,则由本板的CPU对该报文进行处理并通过背板向下行转发线卡的CPU转发;
若本板的CPU中不存在对应的FIB表项,则丢弃该报文。
9.一种报文转发设备,其特征在于,包括背板、以及插接于背板的转发线卡,转发线卡包括具有交换芯片的交换线卡和具有逻辑芯片的逻辑线卡,其中:
交换线卡具有交换芯片,用于在从本板的外部接口接收到报文时,在自身的FIB表中查询对应的FIB表项;在查询到对应的FIB表项时,根据对应的FIB表项在自身的邻接表和出接口表中分别查询对应的邻接表项和出接口表项,其中,若下行转发线卡为逻辑线卡,则交换线卡的交换芯片查询到的邻接表项和出接口表项分别为伪邻接表项和伪出接口表项,且伪邻接表项中包含有下行的逻辑线卡所需的邻接表索引和出接口索引、伪出接口表项中包含有专用于交换线卡向逻辑线卡转发报文的通用VLAN ID和通用源MAC;以及,根据查询到的邻接表项和出接口表项为报文封装跨板转发头和以太二层头、并将封装后的报文通过背板向下行的转发线卡转发,其中,若下行的转发线卡为逻辑线卡,则根据伪邻接表项和伪出接口表项对报文封装的以太二层头为携带有下行的逻辑线卡所需的邻接表索引和出接口索引、以及通用VLAN ID和通用源MAC的伪二层头;
逻辑芯片从背板收到报文时,根据报文的跨板转发头中的源模块SMOD识别上行的转发线卡的类型、并去除报文的跨板转发头;在识别出报文来自上行的交换线卡时,根据报文的伪二层头中携带的邻接表索引和出接口索引在自身的邻接表和出接口表中分别查询对应的邻接表项和出接口表项、并去除报文的伪二层头;以及,根据查询到的邻接表项和出接口表项为去除跨板转发头和伪二层头的报文重新封装相应接口类型的二层头、并将封装后的报文从本板对应的外部接口发出。
10.根据权利要求9所述的报文转发设备,其特征在于,伪邻接表项中包含的下行的逻辑线卡所需的的邻接表索引和出接口索引,被封装在伪二层头的目的MAC字段中;伪出接口表项中包含专用于交换线卡向逻辑线卡转发报文的通用VLAN ID和通用源MAC,被分别封装在伪二层头的VLAN ID字段和源MAC字段中。
11.根据权利要求10所述的报文转发设备,其特征在于,专用于交换线卡向逻辑线卡转发报文的通用VLAN ID和通用源MAC分别为保留VLAN资源中的VLAN ID和源MAC。
12.根据权利要求9所述的报文转发设备,其特征在于,
交换线卡的交换芯片进一步用于在未查询到对应的FIB表项时,将报文上报至本板的CPU;
若本板的CPU中存在对应的FIB表项,则由本板的CPU对该报文进行处理并通过背板向下行转发线卡的CPU转发;
若本板的CPU中不存在对应的FIB表项,则丢弃该报文。
13.根据权利要求9所述的报文转发设备,其特征在于,跨板转发头中携带有用于指示上行的转发线卡所在槽位的源模块号,逻辑芯片在从背板收到报文时依据跨板转发头中携带的源模块号识别上行的转发线卡的类型。
14.根据权利要求9所述的报文转发设备,其特征在于,
逻辑线卡的逻辑芯片进一步用于在从本板的外部接口接收到报文时,在自身的FIB表中查询对应的FIB表项;在查询到对应的FIB表项时,依据出接口索引与DMOD的对应关系识别出获取的出接口索引所对应的DMOD、并依据DMOD与线卡类型的对应关系来识别下行的转发线卡的类型;在识别出下行的转发线卡为交换线卡时,根据对应的FIB表项在自身的邻接表和出接口表中分别查询对应的邻接表项和出接口表项;以及,根据查询到的邻接表项和出接口表项为报文封装跨板转发头和以太二层头、并将封装后的报文通过背板向下行转发线卡转发;
交换线卡的交换芯片进一步用于在从背板接收到报文时,去除报文的跨板转发头、并将带有以太二层头的报文从本板对应的外部接口发出。
15.根据权利要求14所述的报文转发设备,其特征在于,逻辑芯片在查询到对应的FIB表项时依据FIB表项查询下行的转发线卡所在槽位的模块号、并依据逻辑线卡中的CPU预先配置的模块号与线卡类型的对应关系来识别下行的转发线卡的类型,以及,跨板转发头中携带有下行的转发线卡所在槽位的模块号。
16.根据权利要求15所述的报文转发设备,其特征在于,
逻辑线卡的逻辑芯片进一步用于在未查询到对应的FIB表项时,将报文上报至本板的CPU;
若本板的CPU中存在对应的FIB表项,则由本板的CPU对该报文进行处理并通过背板向下行转发线卡的CPU转发;
若本板的CPU中不存在对应的FIB表项,则丢弃该报文。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310278404.2A CN104283817B (zh) | 2013-07-03 | 2013-07-03 | 用于实现交换线卡与逻辑线卡互通的方法及报文转发设备 |
US14/893,431 US9692716B2 (en) | 2013-07-03 | 2014-04-23 | Interoperation of switch line card and programmable line card |
PCT/CN2014/076011 WO2015000329A1 (en) | 2013-07-03 | 2014-04-23 | Interoperation of switch line card and programmable line card |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310278404.2A CN104283817B (zh) | 2013-07-03 | 2013-07-03 | 用于实现交换线卡与逻辑线卡互通的方法及报文转发设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104283817A CN104283817A (zh) | 2015-01-14 |
CN104283817B true CN104283817B (zh) | 2017-10-27 |
Family
ID=52143078
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310278404.2A Active CN104283817B (zh) | 2013-07-03 | 2013-07-03 | 用于实现交换线卡与逻辑线卡互通的方法及报文转发设备 |
Country Status (3)
Country | Link |
---|---|
US (1) | US9692716B2 (zh) |
CN (1) | CN104283817B (zh) |
WO (1) | WO2015000329A1 (zh) |
Families Citing this family (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106209554B (zh) | 2015-05-04 | 2019-12-13 | 新华三技术有限公司 | 跨虚拟可扩展局域网的报文转发方法和设备 |
CN106209638B (zh) * | 2015-05-04 | 2019-07-12 | 新华三技术有限公司 | 从虚拟局域网至虚拟可扩展局域网的报文转发方法和设备 |
CN106209637B (zh) | 2015-05-04 | 2019-07-05 | 新华三技术有限公司 | 从虚拟可扩展局域网至虚拟局域网的报文转发方法和设备 |
CN106302264B (zh) * | 2015-06-08 | 2019-06-14 | 新华三技术有限公司 | Dune交换线卡板与灵活线卡板间的单播报文互通方法及装置 |
CN106330715A (zh) * | 2015-06-30 | 2017-01-11 | 杭州华三通信技术有限公司 | 报文处理方法及装置 |
CN107547397B (zh) * | 2017-05-19 | 2020-05-12 | 新华三技术有限公司 | 表项管理方法和装置 |
US10505899B1 (en) * | 2017-08-14 | 2019-12-10 | Juniper Networks, Inc | Apparatus, system, and method for applying firewall rules on packets in kernel space on network devices |
CN109995681B (zh) * | 2019-03-07 | 2021-03-23 | 盛科网络(苏州)有限公司 | 一种单芯片实现双主控主备切换的装置及方法 |
US11212375B2 (en) * | 2019-08-14 | 2021-12-28 | Dell Products L.P. | System and method to provide heterogeneous protocols on network interface devices |
US11223574B2 (en) | 2019-12-27 | 2022-01-11 | Google Llc | Multi-stage switching topology |
CN112235212B (zh) * | 2020-09-11 | 2022-04-26 | 新华三信息安全技术有限公司 | 一种报文转发方法及可编程框式交换设备 |
CN113271266B (zh) * | 2021-04-21 | 2024-03-22 | 锐捷网络股份有限公司 | 异构交换芯片的报文转发方法及设备 |
CN114157533B (zh) * | 2021-12-06 | 2023-05-26 | 北京锐安科技有限公司 | 一种基于clos架构的报文跨板组播复制转发方法和系统 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101296186A (zh) * | 2008-06-13 | 2008-10-29 | 杭州华三通信技术有限公司 | 一种路由交换设备、方法和交换线卡板 |
CN101488862A (zh) * | 2009-02-23 | 2009-07-22 | 中兴通讯股份有限公司 | 分布式以太网交换机及其内部的mac地址维护方法 |
CN103236992A (zh) * | 2013-04-03 | 2013-08-07 | 武汉烽火网络有限责任公司 | 实现机架式系统背板互联的方法 |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7609689B1 (en) | 2001-09-27 | 2009-10-27 | Cisco Technology, Inc. | System and method for mapping an index into an IPv6 address |
US7606241B1 (en) * | 2005-08-12 | 2009-10-20 | Juniper Networks, Inc. | Extending standalone router syntax to multi-chassis routers |
CN101335685B (zh) * | 2007-06-27 | 2012-03-07 | 上海博达数据通信有限公司 | 一种利用重定向技术实现特定报文优先处理的方法 |
US8862706B2 (en) * | 2007-12-14 | 2014-10-14 | Nant Holdings Ip, Llc | Hybrid transport—application network fabric apparatus |
US8077726B1 (en) * | 2008-12-10 | 2011-12-13 | Juniper Networks, Inc. | Fast reroute for multiple label switched paths sharing a single interface |
CN101931546B (zh) | 2009-06-25 | 2012-07-25 | 大唐移动通信设备有限公司 | 保护单板间以太接口的装置 |
US20110310736A1 (en) | 2010-06-16 | 2011-12-22 | Alcatel-Lucent Usa Inc. | Method And System For Handling Traffic In A Data Communication Network |
CN102137005B (zh) * | 2010-12-31 | 2014-04-02 | 华为技术有限公司 | 一种通信系统中的数据转发方法、装置和系统 |
US9379906B2 (en) | 2011-03-04 | 2016-06-28 | Cisco Technology, Inc. | Network appliance with integrated local area network and storage area network extension services |
JP5787061B2 (ja) * | 2011-03-30 | 2015-09-30 | 日本電気株式会社 | スイッチシステム、ラインカード、fdb情報の学習方法及びプログラム |
CN102740402B (zh) * | 2011-04-02 | 2015-12-02 | 华为技术有限公司 | 上行接入的方法和终端设备 |
CN102291294B (zh) | 2011-05-12 | 2016-03-30 | 中兴通讯股份有限公司 | 一种实现pos/eth线卡互通的方法及装置 |
US9473424B2 (en) | 2011-09-19 | 2016-10-18 | Fujitsu Limited | Address table flushing in distributed switching systems |
-
2013
- 2013-07-03 CN CN201310278404.2A patent/CN104283817B/zh active Active
-
2014
- 2014-04-23 US US14/893,431 patent/US9692716B2/en active Active
- 2014-04-23 WO PCT/CN2014/076011 patent/WO2015000329A1/en active Application Filing
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101296186A (zh) * | 2008-06-13 | 2008-10-29 | 杭州华三通信技术有限公司 | 一种路由交换设备、方法和交换线卡板 |
CN101488862A (zh) * | 2009-02-23 | 2009-07-22 | 中兴通讯股份有限公司 | 分布式以太网交换机及其内部的mac地址维护方法 |
CN103236992A (zh) * | 2013-04-03 | 2013-08-07 | 武汉烽火网络有限责任公司 | 实现机架式系统背板互联的方法 |
Also Published As
Publication number | Publication date |
---|---|
WO2015000329A1 (en) | 2015-01-08 |
US20160112348A1 (en) | 2016-04-21 |
CN104283817A (zh) | 2015-01-14 |
US9692716B2 (en) | 2017-06-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104283817B (zh) | 用于实现交换线卡与逻辑线卡互通的方法及报文转发设备 | |
CN109660443B (zh) | 基于sdn的物理设备与虚拟网络通信方法和系统 | |
CN105553849B (zh) | 一种传统ip网络与sptn网络互通方法与系统 | |
CN104380667B (zh) | 一种数据报文的路由方法和设备 | |
CN102255903B (zh) | 一种云计算虚拟网络与物理网络隔离安全方法 | |
CN107181663A (zh) | 一种报文处理方法、相关设备及计算机可读存储介质 | |
CN106685826B (zh) | 交换机堆叠系统、从设备、交换芯片及处理协议报文方法 | |
CN105812340B (zh) | 一种虚拟网络访问外网的方法和装置 | |
CN106341330A (zh) | 一种sdn控制器的拓扑发现方法及系统 | |
CN103490961B (zh) | 一种网络设备 | |
CN105634986A (zh) | 一种交换机实现方法与系统 | |
CN102468899B (zh) | 通道化stm-1接入分发方法与系统 | |
CN105323137B (zh) | 业务数据传输方法及装置 | |
CN105162674A (zh) | 一种物理机访问虚拟网络的方法及网卡 | |
CN107465764A (zh) | 基于星型拓扑结构的物联网通信系统、网关设备及方法 | |
CN105450520B (zh) | 报文处理方法和装置、建立聚合隧道的方法和装置 | |
CN109905321A (zh) | 一种用于自定义高速接口与以太网交互的路由控制系统 | |
CN114338274A (zh) | 一种异构工业现场总线融合方法及系统 | |
CN109587060A (zh) | 一种vpws报文穿越三层ip网络的方法及设备 | |
CN105814852A (zh) | 降低端到端网络报文传输延迟的传输和接收设备 | |
WO2014032574A1 (zh) | 报文处理的装置、方法及系统 | |
CN103731345B (zh) | 一种网络报文处理方法及设备 | |
CN103346950A (zh) | 一种机架式无线控制器用户业务板间负载均摊方法及装置 | |
CN107040963A (zh) | 一种应用于工业通信的业务逻辑管道管理方法 | |
CN106656656A (zh) | 一种网络设备抓包方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
CB02 | Change of applicant information |
Address after: 310052 Binjiang District Changhe Road, Zhejiang, China, No. 466, No. Applicant after: Xinhua three Technology Co., Ltd. Address before: 310053 Hangzhou hi tech Industrial Development Zone, Zhejiang province science and Technology Industrial Park, No. 310 and No. six road, HUAWEI, Hangzhou production base Applicant before: Huasan Communication Technology Co., Ltd. |
|
CB02 | Change of applicant information | ||
GR01 | Patent grant | ||
GR01 | Patent grant |