在交换机中使用的协议访问方法及装置与流程

文档序号:13912458阅读:292来源:国知局

本发明涉及通信领域,具体地,涉及一种在交换机中使用的协议访问方法及装置。



背景技术:

在支持三层交换甚至四层交换的以太网交换asic(applicationspecificintegratedcircuit,专用集成电路)芯片中,一般会有多条协议流水线并行来进行以太网报文的三层及四层协议处理。每条流水线上有多个访问端口,需要同时读写协议表。

每个协议表是一组协议数据结构的集合,其对外有1个或多个读写访问接口,内部由1块或多块ram(random-accessmemory,随机存取存储器)组成,并在其中按照一定的地址顺序存放这组协议数据结构。协议流水线部件通过协议表的读写端口对各表项进行读写访问。

在实际芯片中,在某些应用场景下,可能有部分协议表要求使用的容量较大;而在另外一些应用场景下,可能另外一部分协议表要求使用较大的表项容量。如果所有的协议表都按照其最大容量进行设计,当其所处的场景不需要使用这么大的表项容量时,可能会造成硬件资源的浪费。而如果不按照最大容量进行设计,那么在一些特定场景下,将不能达到系统设计需求。

为了解决这个设计上的矛盾,很多现有的以太网交换芯片中,都设计了一种多协议共享的协议表。在这种共享协议表中,将各个协议处理模块所需要的表项组织起来,形成一个表项资源池。这样,在不同的应用场景下,根据各协议处理过程中对于表项容量需求的不同,分别为其分配不同容量的表项资源供其使用。这样可以优化表项资源配置,在不降低设计指标的情况下,提高硬件资源使用效率。

具体地,以一个支持三层交换的以太网交换芯片为例对共享协议表进行说明,在一个支持三层交换的以太网交换芯片中,有l2处理部件、l3处理部件以及lpm(longestprefixmatching,最长前缀匹配)处理部件,每个处理部件有若干个访问端口,需要对表项数据进行读写。其中l2处理部件有8个访问端口,l3处理部件有4个访问端口,lpm处理部件有4个访问端口。另外,还有1个csr访问端口,用于外部用户监控和管理模块对表项进行配置和读取。l2处理部件的8个访问端口中,有2个端口是写端口,其余6个端口是读端口;l3处理部件的4个端口都是读端口,lpm处理部件的4个端口也都是读端口,csr端口既可以写入表项也可以读出表项。同时,按照协议处理的要求,需要对表项进行定时老化,即长时间没有使用的表项,将会从表中删除,以便新加入的表项能够有空间存放。因此,还会有一个执行定时老化处理的部件,这个处理部件有1个访问端口,可以对表项进行读出和写入操作。综上,所有表项将会有18个访问端口,其中只读端口14个,只写端口2个,既读又写端口2个,这18个端口共同访问表项资源池。

在表项资源池中,每个访问端口在同一时刻,只能进行读操作,或者进行写操作,不能同时进行读写,即每个端口在同一时刻只能进行一种操作。而且,表项资源池中用于表项数据存储的ram容量很大,占用了较大的芯片面积。为了尽量减小芯片面积,以降低成本和功耗,一般会采用单端口ram作为表项数据的实际存储空间。这是因为在容量相等的情况下,单端口ram的面积和功耗会比多端口ram的面积和功耗小。

本申请发明人在实现本发明的过程中发现,现有技术的上述方案具有以下缺陷:当以太网交换芯片处于满负载运行的情况下,每个端口都要读取表项,同时还要标记其所读取的表项刚才已经被使用过,以便确保老化功能部件不会在最近一段时间对其进行老化;同时还有老化部件定时对所有表项进行扫描并删除最近一段时间内未被使用的表项。在使用单端口ram的情形下,读操作和写操作都通过单端口来执行,表项资源池将很难做到及时响应各个端口对表项ram的读写请求,造成实际查表效率降低。



技术实现要素:

本发明实施例的目的是提供一种在交换机中使用的协议访问方法及装置,用于解决或至少部分解决上述技术问题。

为了实现上述目的,本发明实施例提供一种在交换机中使用的协议访问方法,所述方法包括:接收来自端口的访问请求,该访问请求包括关键码值;根据所述关键码值计算对应的查找地址;根据所述查找地址并行执行以下步骤:从协议存储库中读取与所述查找地址相对应的多个协议项;以及从标志位存储库中读取与所述多个协议项中的每一个协议项相对应的标志位,所述标志位包括有效位和命中位;根据所述有效位来确定所述多个协议项中的有效协议项;以及根据所述关键码值从所述有效协议项中查找匹配协议项。

可选地,如果所述访问请求为读访问请求,所述方法还包括:在查找到所述匹配协议项的情况下,并行执行以下步骤:将所述匹配协议项发送至所述端口;以及更新与所述匹配协议项相对应的命中位的值;以及在未查找到所述匹配协议项的情况下,向所述端口发送查找失败的提示。

可选地,如果所述访问请求为写访问请求,所述方法还包括:在查找到所述匹配协议项的情况下,并行执行以下步骤:将待写入的数据写入所述匹配协议项;以及更新与所述匹配协议项相对应的命中位的值;在未查找到所述匹配协议项的情况下,执行以下步骤:从所述多个协议项的空闲协议项中选择一个空闲协议项;以及将所述待写入的数据写入所选择的空闲协议项。

可选地,在未查找到所述匹配协议项的情况下,所述方法还包括:在所述多个协议项中没有空闲协议项的情况下,从所述多个协议项中选择一个协议项;以及使用所述待写入的数据覆盖所选择的协议项。

可选地,所述方法还包括:根据所述标志位存储库中存储的标志位对所述协议存储库中存储的协议项进行老化处理。

可选地,所述协议存储库和所述标志位存储库均包括8个存储体。

可选地,所述协议存储库所包括的存储体为单端口存储体,所述标志位存储库所包括的存储体为双端口存储体。

相应地,本发明实施例还提供一种在交换机中使用的协议访问装置,所述装置包括:接收模块,用于接收来自端口的访问请求,该访问请求包括关键码值;计算模块,用于根据所述关键码值计算对应的查找地址;执行模块,用于根据所述查找地址并行执行以下步骤:从协议存储库中读取与所述查找地址相对应的多个协议项;以及从标志位存储库中读取与所述多个协议项中的每一个协议项相对应的标志位,所述标志位包括有效位和命中位;确定模块,用于根据所述有效位来确定所述多个协议项中的有效协议项;以及查找模块,用于根据所述关键码值从所述有效协议项中查找匹配协议项。

可选地,如果所述访问请求为读访问请求,在查找到所述匹配协议项的情况下,所述执行模块还用于并行执行以下步骤:将所述匹配协议项发送至所述端口;以及更新与所述匹配协议项相对应的命中位的值;以及在未查找到所述匹配协议项的情况下,所述执行模块还用于向所述端口发送查找失败的提示。

可选地,如果所述访问请求为写访问请求,在查找到所述匹配协议项的情况下,所述执行模块还用于并行执行以下步骤:将待写入的数据写入所述匹配协议项;以及更新与所述匹配协议项相对应的命中位的值;在未查找到所述匹配协议项的情况下,所述执行模块还用于执行以下步骤:从所述多个协议项的空闲协议项中选择一个空闲协议项;以及将所述待写入的数据写入所选择的空闲协议项。

可选地,在未查找到所述匹配协议项的情况下,所述执行模块还用于:在所述多个协议项中没有空闲协议项的情况下,从所述多个协议项中选择一个协议项;以及使用所述待写入的数据覆盖所选择的协议项。

可选地,所述装置还包括:老化处理模块,用于根据所述标志位存储库中存储的标志位对所述协议存储库中存储的协议项进行老化处理。

可选地,所述协议存储库和所述标志位存储库均包括8个存储体。

可选地,所述协议存储库所包括的存储体为单端口存储体,所述标志位存储库所包括的存储体为双端口存储体。

相应地,本发明实施例还提供一种机器可读存储介质,该机器可读存储介质上存储有指令,该指令用于使得机器执行上述的在交换机中使用的协议访问方法。

通过上述技术方案,使用协议存储库存储协议项,使用标志位存储库存储标志位,由协议存储库和标志位存储库共同组成表项资源池,在端口请求访问协议项时,可以从协议存储库读取协议项,并且同时从标志位存储库中读取对应标志位,从而可以及时响应各个端口对协议项的访问请求,提高查表效率。

本发明实施例的其它特征和优点将在随后的具体实施方式部分予以详细说明。

附图说明

附图是用来提供对本发明实施例的进一步理解,并且构成说明书的一部分,与下面的具体实施方式一起用于解释本发明实施例,但并不构成对本发明实施例的限制。在附图中:

图1示出了一实施例中在交换机中使用的协议访问方法的流程图;

图2示出了l2端口所访问的协议项的存储格式示意图;

图3示出了l3端口所访问的协议项的存储格式示意图;

图4示出了lpm端口所访问的协议项的存储格式示意图;

图5示出了交换机中各端口和存储库的布置示意图;以及

图6示出了一实施例中在交换机中使用的协议访问装置的框图。

具体实施方式

以下结合附图对本发明实施例的具体实施方式进行详细说明。应当理解的是,此处所描述的具体实施方式仅用于说明和解释本发明实施例,并不用于限制本发明实施例。

图1示出了一实施例中在交换机中使用的协议访问方法的流程图。如图1所示,本发明实施例提供一种在交换机中使用的协议访问方法,所述方法包括以下步骤:

步骤s11,接收来自端口的访问请求,该访问请求包括关键码值。

步骤s12,根据所述关键码值计算对应的查找地址。

根据所述查找地址并行执行以下步骤:步骤s13,从协议存储库中读取与所述查找地址相对应的多个协议项;以及步骤s14,从标志位存储库中读取与所述多个协议项中的每一个协议项相对应的标志位,所述标志位包括有效位和命中位。

由协议存储库和标志位存储库共同组成表项资源池。协议存储库可以哈希表的方式存储协议项,哈希表的基本原理是,采用一个映射函数(称为哈希函数),将一个较大地址空间的索引地址,映射到一个较小的地址空间。通过这样的方式,就可以用较小的表实现对整个大的地址空间的索引。执行时,可以采用哈希函数将关键码值换算成所需要访问的查找地址。

当然,这种映射方式有可能会将多个地址映射到同一个表中,这将引起访问冲突。为了解决这种访问冲突,可以将多个协议项组合成一个桶(bucket),协议存储库中可以包括有多个桶,每个桶内包含多个协议项。然后使用哈希函数将桶地址与关键码值进行映射,将桶地址作为查找地址来读取协议项。具体地,在接收到访问请求后,使用哈希函数将访问请求中的关键码值映射到桶地址,然后读取相应桶内的所有的协议项。

可以采用与协议存储库相同的方式来建立标志位存储库,协议存储库和标志位存储库中可以在相同地址处,存储相对应的协议项和标志位。也就是说,在计算出上述桶地址之后,可以根据桶地址从标志位存储库的相应桶内读取所有的标志位,所读取的标志位与所述协议项一一对应。

标志位的值可以反映对应的协议项的状态。标志位可以包括有效位和命中位。有效位的值表示对应的协议项是否有效,本发明实施例中使用值“1”表示有效,值“0”表示无效。命中位可以包括读命中位,在对协议项进行读取操作之后,可以更新协议项相对应的读命中位的值,例如,将读命中位的值更新为1。对于既可以读取也可以访问的协议项,命中位还可以包括写命中位,在对协议项进行写入操作之后,可以更新协议项相对应的写命中位的值,例如,将写命中位的值更新为1。

步骤s15,根据所述有效位来确定所述多个协议项中的有效协议项。

例如,如果与协议项对应的有效位的值为1,则说明该协议项为有效协议项。如果与协议项对应的有效位的值为0,则说明该协议项不是有效协议项

步骤s16,根据所述关键码值从所述有效协议项中查找匹配协议项。

每一协议项均包括有一个关键码字段,将访问请求中的关键码值与协议项中的关键码字段进行匹配,以确定所述匹配协议项。

使用协议存储库存储协议项,使用标志位存储库存储标志位,由协议存储库和标志位存储库共同组成表项资源池,在端口请求访问协议项时,可以从协议存储库读取协议项,并且同时从标志位存储库中读取对应标志位,从而可以及时响应各个端口对协议项的访问请求,提高查表效率。

进一步地,协议存储库可以由多个存储体组成,优选地,可以由8个存储体组成,存储体可以是单端ram,这里单端ram的意思是同一时间只允许对ram进行读或写的操作。每个存储体的深度可以为5k,宽度可以为864位,用来存储协议项数据。以支持三层交换的以太网交换芯片为例,由于共有18个访问端口,当多个端口同时访问表项时,经常会发生访问冲突,导致查表效率较低。增加存储体的数量可以降低不同访问端口之间的冲突概率,提高查表性能。然而,存储体的数量如果太多,则导致芯片中分散的ram块较多,这不利于后端布局布线,并增加芯片面积和流片成本。因此,经过评估,8个存储体是一个较为合理的值,每个存储体可以被划分成多个桶。

在协议存储库中,协议项的格式可以不同。具体地,对于l2端口所访问的协议项来说,每个协议项的宽度固定为103位,其占用105位的字段,因此每个840位宽的桶中可以包含8个协议项,如图2所示。

对于l3端口所访问的协议项来说,其协议项具有4种类型,若为ipv4单播类型,每个协议项的宽度为86位,占用105位字段;若为ipv4多播类型,每个协议项的宽度为190位,占用210位字段;若为ipv6单播类型,每个协议项的宽度为190位,占用210位字段;若为ipv6多播类型,每个协议项的宽度为347位,占用420位字段。对于lpm表来说,其entry有6种类型,若为ipv4类型,每个entry的宽度为70位;若为ipv4_1类型,每个协议项的宽度为105位;若为ipv6_64类型,每个协议项的宽度为105位;若为ipv6_64_1类型,每个协议项的宽度为140位;若为ipv6_128类型,每个协议项的宽度为210位;若为ipv6_128_1类型,每个协议项的宽度为210位。

对于l3端口所访问的协议项来说,每个桶中可以包括多种不同类型的协议项,因此若某个桶中包含的协议项为l3端口所要访问的协议项,则其具体存储格式有25种,如图3所示。

对于lpm端口所访问的协议项来说,每个桶中只能包含一种类型的协议项,因此若某个桶中包含的协议项为lpm端口所要访问的协议项,则其具体存储格式有4种,如图4所示。图2至图4中的各个数字表示协议项占用多少位宽的字段。

与协议存储库相同,标志位存储库也可以由多个存储体组成,并且对应地,可以优选地由8个存储体组成,每个存储体的深度可以为5k,宽度可以为24位,用来对应地存储协议项的有效位及命中位。存储体可以是具有读取端和写入端的双端口ram。相应地,每个存储体可以被划分成多个桶。

对于协议存储库中存储的l2端口所访问的每一协议项来说,在标志位存储库的对应位置存储有1个有效位和2个命中位,这2个命中位分别是读命中位和写命中位。对于协议存储库中存储的l3端口和lpm端口所访问的每一协议项来说,在标志位存储库的对应位置存储有1个有效位和1个命中位,该1个命中位为读命中位。

在某个端口发出读访问请求时,首先根据访问请求中的关键码值采用哈希函数换算出所需要访问的桶地址,然后根据该桶地址计算出相应桶所处的存储体的号及相应桶在存储体内的偏移后,从协议存储库的相应存储体内读取相应桶内的各协议项,并同时从标志位存储库的相应存储体内读取相应桶内的与所述各协议项的每一个协议项相对应的有效位和命中位,并根据有效位来判断所述各协议项是否有效。之后根据关键码值来对有效协议项逐个进行匹配以确定匹配协议项,并向端口返回匹配协议项。在对有效协议项进行匹配时,如果查找到匹配协议项,则不再对之后的有效协议项进行匹配。在未查找到匹配协议项的情况下,可以向端口发出查找失败的提示,例如可以向端口返回一未命中的标志,以表示本次查询或访问失败。

在将匹配协议项返回至端口的同时,可以更新该协议项的命中位。如果所述匹配协议项是l2端口所访问的协议项,则从标志位存储库的双端口ram的写端口将协议项的读标志位的值进行更新,例如,可以将读标志位的值写为1。如果所匹配的协议项是l3端口或lpm端口所访问的协议项,则从双端口ram的写端口将该协议项的标志位的值进行更新,例如将标志位的值写为1。

如果访问请求是来自l2端口或csr端口的写访问请求,首先根据访问请求中的关键码值采用哈希函数换算出所需要访问的桶地址,然后根据该桶地址计算出相应桶所处的存储体的号及相应桶在存储体内的偏移后,从协议存储库的相应存储体内读取相应桶内的各协议项,并同时从标志位存储库的相应存储体内读取相应桶内的与所述各协议项的每一个协议项相对应的有效位和命中位,并根据有效位来判断所述各协议项是否有效。之后根据关键码值来对有效协议项逐个进行匹配以确定匹配协议项,在对有效协议项进行匹配时,如果查找到匹配协议项,则不再对之后的有效协议项进行匹配。然后将待写入的数据通过协议存储库的端口写入所确定的匹配协议项,并且同时从标志位存储库的双端口ram的写端口将协议项的写标志位的值进行更新,例如,可以将写标志位的值写为1,其中所述待写入的数据可以是从端口的写访问请求中解析的。来自csr端口的待写入的数据是配置数据,来自l2端口的待写入数据为协议数据,在待写入的数据为协议数据时,可以使用该协议数据覆盖所确定的匹配协议项。

在没有查找到所述匹配协议项的情况下,则从相应桶内的所述各协议项中选择一个空闲协议项,该空闲协议项是指有效位为0的协议项,协议项的有效位为0,表示对应的协议项已经无效或者对应的协议项的数据已经被删除。然后将待写入的数据写入所选择的空闲协议项的位置中。如果相应桶内的所述各协议项均为有效协议项,则从所述各协议项中选择一个协议项,例如,可以随机选择一个协议项,然后使用待写入的数据覆盖所选择的协议项。

通过上述过程,可以实现通过l2端口写端口向协议存储库写入新的协议项,然而协议存储库的总容量是有限的,如果一直向协议存储库中写入新的协议项,则最终会将协议存储库写满。因此需要对协议存储库中存储的协议项进行老化处理,可以根据标志位存储库中存储的标志位对协议存储库中存储的协议项进行老化处理。

具体地,可以定时对标志位存储库中存储的所有标志位进行定时扫描,如果某一存储位置的命中位的值为1,则将该命中位的值写为0。对于仅具有读命中位的位置来说,如果读命中位的值为1,则将该读命中位的值写为0。对于具有读命中位和写命中位的位置来说,如果读命中位或写命中位的值为1,则将其置0。

如果某一存储位置的命中位的值为0,则将该位置处的有效位的值写为0,相当于将对应的协议存储库中的协议项设置为空闲协议项。这样,如果某个协议项在一段时间(例如,一个定时扫描周期)没有被访问的话,首先将其命中位置为0。如果又经过一段时间(例如,一个定时扫描周期)该协议项还是没有被访问(标志位的值为0),则将其对应的有效位的值置为0,如果在该一段时间(例如,上述的一个定时扫描周期)内,该协议项被访问了,则其命中位的值为1(读命中位的值为1,或者写命中位的值为1,或者读命中位和写命中位的值均为1),那么在这个扫描周期不需要将其对应的有效位的值置为0。写入新的协议项时,可以对有效位的值为0的对应协议项进行覆盖。

举例来说,在进行老化处理时,可以设置一个定时脉冲发生器,间隔预设时间产生一个脉冲,每次脉冲产生后,老化端口开始对协议存储库进行扫描访问,以进行老化处理。

因为l2端口具有两个写端口来写入协议项,因此在一实施例中,可以优化老化处理,例如可以仅对l2端口访问的协议项进行老化处理为例,每次脉冲产生后,可以从标志位存储库中读取一个桶内所有的标志位,遍历桶内的各标志位。如果某一位置处,读标志位和写标志位的值都为0,则将该位置处的有效位的值置为0。否则,如果某一位置处,读标志位和/或写标志位的值为1,则将读标志位和写标志位的值置为0,有效位的值保持为1不变。

图5示出了交换机中各端口和存储库的布置示意图。如图5所示,以太网交换asic芯片51可以从l2端口52、l3端口53、lpm端口54和/或csr端口55接收访问,然后根据访问请求中的关键码值计算查找地址,然后根据查找地址从协议存储库57中读取协议,并同时从标志位存储库58中读取标志位,从而确定端口所访问的协议项。老化端口56仅需访问标志位存储库58就可以实现对协议项的老化处理。其具体过程已在上文描述,这里不再赘述。

图6示出了一实施例中在交换机中使用的协议访问装置的框图。如图6所示,本发明实施例还提供一种在交换机中使用的协议访问装置,所述装置包括:接收模块61,用于接收来自端口的访问请求,该访问请求包括关键码值;计算模块62,用于根据所述关键码值计算对应的查找地址;执行模块63,用于根据所述查找地址并行执行以下步骤:从协议存储库中读取与所述查找地址相对应的多个协议项;以及从标志位存储库中读取与所述多个协议项中的每一个协议项相对应的标志位,所述标志位包括有效位和命中位;确定模块64,用于根据所述有效位来确定所述多个协议项中的有效协议项;以及查找模块65,用于根据所述关键码值从所述有效协议项中查找匹配协议项。通过设置协议存储库和标志位存储库,可以提高协议存储库的查找效率。

可选地,协议存储库和标志位存储库可以均包括8个存储体。协议存储库所包括的存储体为单端口存储体,所述标志位存储库所包括的存储体为双端口存储体,每个存储体可以从物理上被划分成多个桶。

接收模块所接收的访问请求可以是读访问请求或写访问请求。如果所述访问请求为读访问请求,在查找到所述匹配协议项的情况下,所述执行模块还用于并行执行以下步骤:将所述匹配协议项发送至所述端口;以及更新与所述匹配协议项相对应的命中位的值;以及在未查找到所述匹配协议项的情况下,所述执行模块还用于向所述端口发送查找失败的提示。如果所述访问请求为写访问请求,在查找到所述匹配协议项的情况下,所述执行模块还用于并行执行以下步骤:将待写入的数据写入所述匹配协议项;以及更新与所述匹配协议项相对应的命中位的值;在未查找到所述匹配协议项的情况下,所述执行模块还用于执行以下步骤:从所述多个协议项的空闲协议项中选择一个空闲协议项;以及将所述待写入的数据写入所选择的空闲协议项。所述执行模块还用于:在所述多个协议项中没有空闲协议项的情况下,从所述多个协议项中选择一个协议项;以及使用所述待写入的数据覆盖所选择的协议项。

进一步地,所述装置还可以包括老化处理模块,用于根据所述标志位存储库中存储的标志位对所述协议存储库中存储的协议项进行老化处理,进而可以对一段时间不使用的协议项进行老化处理,从而优化协议存储库的存储空间。

本发明实施例提供的在交换机中使用的协议访问装置的具体工作原理及益处与上述的本发明实施例提供的在交换机中使用的协议访问方法的具体工作原理及益处相似,这里将不再赘述。

相应地,本发明实施例还提供一种机器可读存储介质,该机器可读存储介质上存储有指令,该指令用于使得机器执行本申请所述的在交换机中使用的协议访问方法。

本发明实施例提供的在交换机中使用的协议访问方法及装置,使用协议存储库存储协议项,使用标志位存储库存储标志位,由协议存储库和标志位存储库共同组成表项资源池,在端口请求访问协议项时,可以从协议存储库读取协议项,并且同时从标志位存储库中读取对应标志位,将协议读取和标志位更新分开处理,并且,老化处理也仅在标志位存储库中进行处理,从而极大的提高了协议存储库的查找效率,可以实现在支持多个端口并行访问表项资源池的同时执行协议项老化处理,并仍然能够保持性能不受影响。

以上结合附图详细描述了本发明实施例的可选实施方式,但是,本发明实施例并不限于上述实施方式中的具体细节,在本发明实施例的技术构思范围内,可以对本发明实施例的技术方案进行多种简单变型,这些简单变型均属于本发明实施例的保护范围。

另外需要说明的是,在上述具体实施方式中所描述的各个具体技术特征,在不矛盾的情况下,可以通过任何合适的方式进行组合。为了避免不必要的重复,本发明实施例对各种可能的组合方式不再另行说明。

本领域技术人员可以理解实现上述实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序存储在一个存储介质中,包括若干指令用以使得单片机、芯片或处理器(processor)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储程序代码的介质。

此外,本发明实施例的各种不同的实施方式之间也可以进行任意组合,只要其不违背本发明实施例的思想,其同样应当视为本发明实施例所公开的内容。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1