logo资料库

XLP平台NAE引擎的egress.doc

第1页 / 共30页
第2页 / 共30页
第3页 / 共30页
第4页 / 共30页
第5页 / 共30页
第6页 / 共30页
第7页 / 共30页
第8页 / 共30页
资料共30页,剩余部分请下载后查看
Egress 详细
egress packet path with register mapping
support for descriptor guest ID
stage1 descriptor FIFO
stage2 descriptor FIFO
exit hold FIFO
free-out FIFO
egress processor
transmit FIFO
TX packet length queue
TX active list
TX scheduler
packet transmint completion event
hardware-based TCP segmentation offload
how TSO works in XLP processornxCPU通过reference(引用
transmit scheduler
transmit performance counter managment
egress NetIOR calendar
Egress 详细 NAE 的 egress side 接收 descriptor(包含 packet information),处理他们,从内存读取 transmit packets。 Tx descriptor 广义分类成3类:P2D、P2P、MSC。  P2D 直接指向 packet data;  P2P 指向一个包含 P2D descriptor 和 MS C 的 list。  MSC(Micro-struct)descriptor 是一个命令结构,它会告诉 egress processor what operation to perform on the packet associated with the next P2D descriptor。
一般情况 POE block 会使用 enqueue POE 模式 通过 FMN 发送 Tx descriptor 给 NAE, 不过 nxCPU 也可以自己生成一个 transmit packet 通过 POE bypass 模式发送。micro-core 也可以直接转发一个接收 packet 给 egress。 这些 descriptor 保存在一个 message queue area,该 area caved for upto 64 context。 每个 context 代表一个 sub-interface,或者在 system 意义上的 interface。 在 egress path, TX_SCHED_MAP_CMD0(transmit context scheduling and mapping setup) 寄存器设置 context 向 base interface 或者 interlaken channel(如果使用的话)的映 射。 egress context 类似于/相当于 NAE egress 的 FMN mailbox destination。 egress path contexts 不 必 像 ingress path contexts 那 样 做 映 射 , 它 根 据 egress configuration 来做映射。 寄存器 transmit packet point memory setup 0(TX_PKT_PMEM_CMD0) 和 transmit packet point memory setup 1(TX_PKT_PMEM_CMD1) 定义了 TX FIFO length 和 TX FIFO buffer size。
如上图所示,egress path 由一些 FIFOs 和相关 logic、DMA lookup logic、还有 egress processor 组成。
egress packet path with register mapping support for descriptor guest ID 为了允许不同的操作系统能分享 NAE-Egress 硬件资源,NAE-Egress 支持每个 descriptor 一个 guest ID。 guest ID 是一个8位 标识符,该标识符会在 FMN 中跟随每个 message entry(成为 FMN MsgSnd 命令的一部分)。当 FMN 发送 egress message 到 POE 时,POE 会记录该 message 的 guestID, 并把它传给 NAE egress。 guest ID 会在 descriptor pipeline 过程中(stg1->stg2->...->freefifo)一直随 descriptor 保存,并通过 DMA 读 命令转发到内存子系统中。
guest ID 也可以插入到 每个 freeback descriptor 的 Guest_ID field。在 freeback path 中,所有的 message 是 single-entry messages。 如果一个 pakcet 包含 p2p descriptor,该 p2p descriptor 的 guest ID 会被附到该 p2p 指向的列表中每个 descriptor。注意,同一个 packet 的所有 descriptor 有相同的 guestID。 stage1 descriptor FIFO egress path 通过 FMN 来接收 nxCPU 发送的 transmit descriptor。该 descriptor 被送到 stage1 descriptor FIFO,收到后会返回 message credit 给 FMN。本 stage fifo 中的 logic 会 direct p2p descriptor to a DMA engine,DMA engine 会通过 I/O DI 从内存中获取该 p2p descriptor 指向的 P2D 和 MSC descriptor 的 list,并把他们插入到 descriptor stream at the position of the P2P descriptor。 xlp9xx/7xx 新增了一种“deep FIFO”模式。在这种模式下,如果需要,可以把两个相邻 context 合并。TX_STG1_DEEPFIFO_CFG 和 TX_DSBLD_CTXT_ARRVL_STATUS 寄存器用于该模式。
stage2 descriptor FIFO 为了 enable FMN to stage1 to stage2 transfer,必须 establish credits。credits 应 该等于 the size of respective stage2 context FIFO register STG1_STG2CRDT_CMD when used。stage2的 FIFO 使用 STG2_PMEM_PROG 寄存器内划分 context。 stage2 descriptor FIFO direct P2D descriptors to DMA blocks,DMA block 从内存取 出 packet data 并发送到 egress processor。 P2D 和 P2P descriptor 被发送到 exit hold FIFO,他们会在 exit hold FIFO 里呆到 packet data 被送到 network interface 为止。 在 early freeout 模式,一旦相关的 data 被 DMA 取走,非 EOP descriptor 被 free back。 credits 必须被 established from STG2->Exit hold 、STG2->FreeFIFO to enbale stage2 to send further packets。stage2会使用 STG2->EH、STG2->FREE credits 的最小值来决 定 STG2 transmission。 credits 的设置使用 STG2_EHCRDT_CMD 和 STG2_FREECRDT_CMD。
stage2 descriptor FIFO 的 output logic 会 转 发 microstruct descriptor 到 microstruct FIFO。该 FIFO 保存 microstruct,包含最多2个 MSC descriptors,直到相关 的 packet data(MSC 后面的 packet descriptor 指向的)被送到 egress processor。 MSC 提供对 packet data 要做什么处理。
分享到:
收藏