利索能及
我要发布
收藏
专利号: 2024117687698
申请人: 重庆邮电大学
专利类型:发明专利
专利状态:已下证
更新日期:2026-06-16
缴费截止日期: 暂无
联系人

摘要:

权利要求书:

1.一种应用于星载路由的FPGA高性能包解析方法,其特征在于,包括:

S1、接收当前AOS数据帧At,AOS数据帧包括MPDU数据域,AOS数据帧由多个长度为位宽W的字段构成;计算MPDU数据域的一级头指针PBegin‑1,t、一级尾指针PEnd‑1,t、二级头指针PBegin‑2,t以及二级尾指针PEnd‑2,t;根据指针PBegin‑1,t、PEnd‑1,t在AOS数据帧中提取MPDU数据域;

指针PBegin‑1,t、PEnd‑1,t分别指向MPDU数据域的起始字节和结束字节所在的字段,指针PBegin‑2,t、PEnd‑2,t分别指向MPDU数据域的起始字节和结束字节在对应字段中的字节位置;其中,t为时间;

S2、根据指针PBegin‑1,t、PEnd‑1,t、PBegin‑2,t、PEnd‑2,t采用多指针方法从MPDU数据域中提取IPv6数据包。

2.根据权利要求1所述的一种应用于星载路由的FPGA高性能包解析方法,其特征在于,星载路由包括MPDU缓存和IPv6数据缓存;采用多指针方法从MPDU数据域中提取IPv6数据包包括:根据二级头指针PBegin‑2,t对MPDU数据域进行头部重新对齐,得到对齐数据,将对齐数据按照位宽W存入MPDU缓存,根据指针PBegin‑1,t、PEnd‑1,t、PBegin‑2,t、PEnd‑2,t采用多指针方法从MPDU缓存中取出数据存入IPv6数据缓存,并根据IPv6数据缓存输出IPv6数据包。

3.根据权利要求2所述的一种应用于星载路由的FPGA高性能包解析方法,其特征在于,MPDU数据域包括:多个长度为位宽W的字段Mc,i;对MPDU数据域进行头部重新对齐包括:获取MPDU数据域Mc延时一个时钟后的数据Mc+1,数据Mc+1包括多个长度为位宽W的字段Mc+1,i;根据MPDU数据域的二级头指针PBegin‑2,t分别对每个字段Mc,i和每个字段Mc+1,i进行划分,得到字段Mc,i的前N位数据 和后W‑N位数据 以及字段Mc+1的前N位数据 和后W‑N位数据依次将每个字段Mc+1,i的后W‑N位数据 与字段Mc,i+1的前N位数据 进行拼

接,得到对齐数据;其中,c表示时钟,i为字段的索引。

4.根据权利要求2所述的一种应用于星载路由的FPGA高性能包解析方法,其特征在于,采用多指针方法从MPDU缓存中取出数据存入IPv6数据缓存包括:S21、获取IPv6数据包的长度,根据MPDU缓存当前存储的MPDU数据域的一级头指针、二级头指针和IPv6数据包的长度设置IPv6数据包的头指针和尾指针以及地址指针;

S22、按照位宽W依次从MPDU缓存中取出数据,按照位宽W将取出的数据存入IPv6数据缓存并同时对地址指针依次递增,当地址指针到达IPv6数据包的尾指针而未到达MPDU缓存当前存储的MPDU数据域的二级尾指针时,IPv6数据缓存存储了一个完整的IPv6数据包,并执行步骤S23;当地址指针到达MPDU缓存当前存储的MPDU数据域的二级尾指针而未到达IPv6数据包的尾指针时,IPv6数据缓存存储了一个不完整的IP数据包,并执行步骤S24;当地址指针到达IPv6数据包的尾指针且同时到达MPDU缓存当前存储的MPDU数据域的二级尾指针时,执行步骤S26;

S23、将IPv6数据缓存存储的完整的IPv6数据包输出,当完整的IPv6数据包输出完毕时,更新地址指针以及IPv6数据包的头指针和尾指针,并回到步骤S22;

S24、发送接收下一AOS数据帧的请求并等待下一AOS数据帧输入,当检测到下一AOS数据帧At+1输入时,计算数据帧At+1的MPDU数据域的一级头指针 一级尾指针

二级头指针PBegin‑2,t+1以及二级尾指针PEnd‑2,t+1;根据指针 在数据帧At+1中提取MPDU数据域,对数据帧At+1的MPDU数据域进行头部重新对齐,得到对齐数据,将对齐数据存入MPDU缓存;

S25、判断下一AOS数据帧与不完整的IP数据包是否匹配,若不匹配,将不完整的IP数据包丢弃,并执行步骤S21;若匹配,根据AOS数据帧At的一级尾指针PEnd‑1,t更新指针得到MPDU数据域最终的一级头指针PBegin‑1,t+1、一级尾指针PEnd‑1,t+1,并执行步骤S22;

S26、将MPDU缓存、IPv6数据缓存、地址指针以及MPDU数据域和IP数据包的头指针和尾指针重置。

5.根据权利要求4所述的一种应用于星载路由的FPGA高性能包解析方法,其特征在于,设置IPv6数据包的头指针和尾指针以及地址指针包括:Hdr_begin=W×PBegin‑1,t+PBegin‑2,t

Hdr_end=Hdr_begin+len

pos=Hdr_begin

其中,Hdr_begin、Hdr_end分别为IPv6数据包的头指针和尾指针,pos为地址指针,len为IPv6数据包的长度。

6.根据权利要求4所述的一种应用于星载路由的FPGA高性能包解析方法,其特征在于,更新地址指针以及IPv6数据包的头指针和尾指针包括:Hdr_begin=Hdr_end

Hdr_end=Hdr_begin+len

pos=Hdr_begin

其中,Hdr_begin、Hdr_end分别为IPv6数据包的头指针和尾指针,pos为地址指针,len为IPv6数据包的长度。

7.根据权利要求1所述的一种应用于星载路由的FPGA高性能包解析方法,其特征在于,MPDU数据域包括:MPDU头和MPDU包域;MPDU头包括首导头指针;MPDU包域包括前一个CCSDS包的尾部;判断下一AOS数据帧与不完整的IP数据包是否匹配包括:根据下一AOS数据帧的MPDU数据域的首导头指针提取下一AOS数据帧的MPDU数据域存储的前一个CCSDS包的尾部,得到尾部长度LTail,获取不完整的IP数据包长度LExist,当不完整的IP数据包长度LExist和尾部长度LTail之和等于完整的IPv6数据包长度len时,下一AOS数据帧与不完整的IP数据包匹配;否则,不匹配;其中,CCSDS为标准化的数据传输格式。

8.根据权利要求1所述的一种应用于星载路由的FPGA高性能包解析方法,其特征在于,AOS数据帧的结构还包括:主导头、插入域以及尾部;从AOS数据帧中提取MPDU数据域包括:S11、根据AOS数据帧的主导头长度Lhead、插入域长度LInsert以及MPDU数据域长度LMpdu计算MPDU数据域的起始字节位置Lbegin和结束字节位置Lend;

S12、根据起始字节位置Lbegin和结束字节位置Lend计算一级头指针、一级尾指针、二级头指针以及二级尾指针。

9.根据权利要求8所述的一种应用于星载路由的FPGA高性能包解析方法,其特征在于,计算MPDU数据域的起始字节位置Lbegin和结束字节位置Lend包括:将AOS数据帧的主导头长度Lhead、插入域长度LInsert相加,得到起始字节位置Lbegin,将AOS数据帧的主导头长度Lhead、插入域长度LInsert以及MPDU数据域长度LMpdu相加,得到结束字节位置Lend。

10.根据权利要求8所述的一种应用于星载路由的FPGA高性能包解析方法,其特征在

于,计算首尾一级指针和首尾二级指针包括:将起始字节位置Lbegin和结束字节位置Lend分别除以W,得到一级头指针PBegin‑1和一级尾指针PEnd‑1;将起始字节位置Lbegin和结束字节位置Lend分别对W取余,得到二级头指针PBegin‑2和二级尾指针PEnd‑2。