五月天视频app下载连接 -五月天app官网无限观看
0731-84728105
15116127200
FAST软件编程基础 (2)FAST编程API
宣布时间 :2019-04-19
     FAST编程库Libua.a和linreg.a为Fast软件编程提供尺度编程API。Fast编程API主要 分为三类。一是用户UA编程API,用户可在UA历程 中直接挪用 这些API函数完成 与FAST平台的通讯 ,征求 UA管理 、分组收发和FAST流水线管理 三类;二是Fast平台管理 API,完成 对Fast硬件平台中FPGA OS的管理 ;三是扩展API,即面向FAST流水线中特定硬件模块特定成效 而设计的API。
一、UA编程API
      UA编程运用 的基本 API如下表所示。若是 用户没有向硬件流水线中添加自界说的模块,那么用户UA只运用 以下6个函数就可以 完成 与Fast平台的交互。若是 用户向Fast流水线中添加了定制的模块,则需求 凭证 所添加硬件模块的成效 对编程API举行 扩大 。
     为了简化UA对硬件流水线模块的管理 ,Fast编程API提供了读写硬件模块的函数。在Fast编程库函数完成 时,上述读写函数均被转换成控制类的Fast分组发往硬件流水线,并经过 流水线的Cin/Cout控制环职掌 完成 对分组的读写。
上表中的6个API函数的原型和参数说明 如下。
   (1)int fast_ua_init(int mid, fast_ua_recv_callbackcallback);
     输入 参数mid为用户为UA设置的模块号,该模块号是FAST平台对软硬件模块的独一 标志 。凭证 FAST规范 ,软件UA的mid规模是128-255,因为 128默以为 内核协议栈,是以 用户UA的mid规模可设置为129-255。用户需保险 mid参数不与系统 中其他UA的参数抵触 ,若是 发作 抵触 ,函数前往 值为1,批注 注册失败。输入 参数callback为Fast平台在吸收 到发往用户UA的分组时的回调函数,用户需求 在法式中对callback函数举行 界说。若是 UA注册乐成,函数前往 值为0,否则前往 非0值。
   (2)void fast_ua_destroy(void);
     用户UA在参与 时需执行的职掌 ,主要 是通知 FAST平台释放向UA分配的mid编号。
   (3)int fast_ua_send(struct fast_packet *pkt,int pkt_len);
     用户UA挪用 该函数向Fast平台发送分组。其中pkt是指向fast_packet数据结构 的指针。该数据结构 征求 了指向分组缓冲区的指针以及分组的目的mid等参数。执行乐成返报答 文长度,执行失败前往 -1。用户在挪用 该函数时,需求 注重 以下两点。一是若是 UA想直接将分组从Fast平台的网络接口收回 ,需求 将dmid设置为5,即将目的模块设置为Fast硬件流水线中的通用输入 模块(GOE),同时设置Outport和Outtype字段,指明输入 的类型(单播/组播/广播 )以及输入 端口号或组播ID;二是若是 UA想将分组发送给其他的UA,则需求 将dmid设置为UA的mid编号。一个用户UA怎样 获取其他UA的mid不是Fast规范 思量 的效果 。
   (4)void fast_ua_recv();
     UA启动吸收 FAST报文。每当Fast内核吸收 到目的mid为用户UAmid的分组后,会经过 Netlink机制将分组拷贝到用户空间,并挪用 UA初始化时设置好的callback回调函数对报文举行 处置赏罚 。
   (5)u32 fast_ua_hw_rd(u8 dmid, u32addr, u32 mask);
     其中dmid为读职掌 的硬件流水线模块号,addr为模块外部 的读地址偏移量。mask为读数据的掩码,如今 未运用 ,用户应将mask设置为0。
   (6)void fast_ua_hw_wr(u8dmid,u32 addr,u32 value,u32 mask);
     其中dmid为写职掌 的硬件流水线模块号,addr为模块外部 的写地址偏移量,value为写数据的值。mask为写数据的掩码,如今 未运用 ,用户需设置为0。
三、扩展API
     凭证 Fast流水线的规范 ,用户可以凭证 分组处置赏罚 的需求对Fast硬件流水线中的模块举行 扩展和定制。是以 关于 分别 硬件流水线模块也会发作 分别 的扩展API。
     典型的例子是基于Fast的SDN交流完成 中,硬件流水线征求 了GPP,GKE,GME,GAC和GOE5个成效 模块。用户UA能够 需求 对这些成效 模块举行 管理 。例如设置 GME模块的规则表和GAC模块中的举动 表等。虽然规则表和举动 表在模块中具有牢靠 的偏移地址,UA可运用 fast_ua_hw_rd()和fast_ua_hw_wr()函数对其管理 ,但这样十分 严重 。为此,可基于基础 的fast_ua_hw_rd()和fast_ua_hw_wr()函数,再封装成fast_rule_add()和fast_rule_del()等扩展的API,简化用户UA编程的严重 性。
      关于Fast通用模块的扩展API五月天app官网无限观看将在后续文章中先容 。