五月天视频苹果下载最新地址 -五月天app官网无限观看
0731-84728105
15116127200
FAST软件编程基础 (1)Fast_packet数据结构
宣布时间 :2019-4-18
     FAST的焦点低贱 是支持软硬协同的分组处置赏罚 。在FAST架构中,用户在Linux用户空间编写的历程 称为UA(User Application)。在FAST硬件流水线确定后,用户可经过 UA编程完成 对硬件流水线的控制,从硬件流水线吸收 分组,或将分组发往硬件流水线举行 处置赏罚 和转发。
一、Fast_packet数据结构
     Fast_packet是UA编程必需 运用 的焦点数据结构 ,UA经过 FAST编程API收发的分组均运用 Fast_packet结构 界说。fast_packet主要 由用户模块(UM)头标志 ,对齐记号 以及完整 的以太网报文三局限 组成,如下所示。
     Fast报文分为数据报文和控制报文两种类 型。数据报文的data中存储完整 以太网报文,用于UA和FAST流水线之间,以及UA之间分组的交流;Fast控制报文用于UA 和Fast流水线之间的控制通讯 ,如UA对流水线中照应 模块中寄存 器、计数器和控制表的读写等职掌 。控制报文的data值为空。
     Flag字段为2字节,主要 有两个作用。一是将14字节的以太网头补齐为16字节,将IP分组的头对齐到16字节界限 ,便于软硬件的处置赏罚 。二是FAST内核软件运用 该记号 来记号 FAST报文。用户可以不初始化和运用 该字段。
二、um_metadata结构 界说
     FAST数据报文中的um_metadata结构 仔细 在软硬件模块之间转达 分组的元数据信息,主要 征求 报文时间 戳,序号,源目的MID,报文长度,端口号等,详细界说如下:
     UA编程时,需求 对um_metadata结构 体中的discard、pktdst、pktsrc、outport、dstmid、srcmid、inport、flowID、len等字段举行 初始化。
     discard表现 报文能否 扬弃 ,默以为 0,表现 不扬弃 ,置1时表现 扬弃 ,如执行ddos进攻 战略时,异常报文流要扬弃 ,此时discard必需 设置为1;
     pktdst、pktsrc标志 报文的输入 输入 倾向 ,0表现 输入 到网络端口,1表现 输入 到CPU。如UA处置赏罚 后的报文需求 发送到网络中,则应当 设置pktsrc为1,pktdst为0;
     inport、outport标志 报文从装备 的物理端口输入 输入 ,一样往常 是勾搭 流表规则一同 运用 ;
     dstmid、srcmid标志 报文下次处置赏罚 的目的模块编号和上次处置赏罚 时的模块编号。如UA处置赏罚 后的报文需求 发送到网络中,则dstmid设置为5;
     flowID字段由FAST UM填充,标志 着报文掷中 了哪一条流表;
     len表现 整个FAST报文长度(征求 UM头,对齐记号 和完整 以太网报文)。FAST平台报文缓存区最大为2048,完整 以太网报文的MTU不凌驾1518。
     Pkttype字段表现 报文类型,0为数据报文,1为控制报文。
三、ctl_metadata结构 界说
     FAST平台控制报文对应的控制信息为ctl_metadata,征求 值、掩码、地址、源目的MID、类型、报文类型等,详细界说如下。
      需求 注重 的是,用户在UA编程时不需求 自己 结构 Fast控制报文,而是经过 挪用 FAST编程API提供的fast_ua_hw_rd()函数来完成 对硬件流水线的管理 。FAST 编程API的运用 说明 将在后续文章中先容 。