DSP网络子系统

1.  基本架构

网络协处理器(NETCP)有四个主要的模块,分别是PKTDMA控制器、包加速器(PA)、安全加速器(SA)、GbE交换子系统。这些模块通过包数据流交换部件连接。如图 1.1所示:

图 1.1  网络协处理器功能块图

1.1  时钟控制

网络协处理器有三个主时钟域,分别是PA、SA、GbE交换子系统。这三个时钟域都共享一个公共的时钟源,通常为350MHz。在使用PA、SA或GbE交换模块之前,必须启用各自的时钟域。在某些设备中,这个时钟可以由锁相环产生。

NETCP也有辅助时钟,专门用于GbE交换机子系统的时间同步、MDIO和SGMII SerDes接口。

1.2  包数据流交换部件的结构(Packet Streaming Switch)

包数据流交换部件,主要是为NETCP的各模块间的数据传输提供了一个方式。

通常,SA、PA、GbE模块只能通过QMSS进行通信。因为系统中的缓冲大小有限,所以这些模块不可以直接通信,否则会造成性能下降。

1.3  包DMA接口(PKTDMA)

NETCP的PKTDMA主要负责NETCP与主机之间的数据传输。NETCP中的各模块,可以经由包数据流交换部件,通过PKTDMA,与主机进行数据通信。

1.4  分布式中断控制器结构

NETCP中的分布式中断控制器能够聚合来自多个源的中断,并将这些中断合并为一个中断后发送给主机。

2. NETCP初始化

NETCP依赖于队列管理器子系统(QMSS)和PKTDMA与主机通信,这需要在配置网络协处理器之前配置这两个系统。用户应该对包数据流交换部件的CPSW配置寄存器进行编程,以便将来自千兆以太网(GbE)交换机子系统的数据包发往所需的模块。如果同时使用包加速器(PA)和安全加速器(SA),那么必须在初始化SA之前初始化PA。否则,PA、SA和GbE交换机子系统可以按任何顺序初始化。NETCP初始化过程如下:

(1)打开NETCP电源域;

(2)打开所有使用到的模块的电源门阀;

(3)配置队列管理器;

(4)配置PKTDMA;

a、配置连接RAM

b、初始化描述符

c、配置接收流

d、使能发送通道

e、使能接收通道

(5)配置包数据流交换部件;

(6)配置GbE交换子系统

(7)配置PA

(8)配置SA

3. GbE交换子系统

NETCP的网络交换子系统的主要目的是提供一个在主设备和其他连接设备间进行数据传输的接口。对于KeyStone I,网络交换子系统的结构如图 3.1所示:

图 3.1  KeyStoneI 网络交换子系统框图

网络交换子系统主要包括网络交换机、MDIO、以及SGMII模块。具体原理参考《TN0236_DSP网络子系统之交换子系统》

4. PA子系统

包加速器(PA)是网络协处理器(NETCP)的主要部件之一,主要有如下硬件模块:

(1) 2层分类引擎

(2) 3层分类引擎

(3) 4层分类引擎

(4) 修改/多路由引擎

(5) 包ID管理

(6) PA统计模块

如图 4.1所示:

图 4.1  PA功能块图

PA主要是执行数据包处理操作,如包头分类、产生校验和、以及多队列路由。具体原理参考《TN0237_DSP网络子系统之包加速器(PA)》。

5. SA子系统

安全加速器(SA)的作用是协助主机执行与安全相关的事务。SA为通常支持的协议(包括IPsec ESP和AH、SRTP和Air Cipher)对数据包执行加密、解密和身份验证操作提供硬件引擎。SA还提供硬件模块来帮助主机生成公钥和随机数。具体原理参考《TN0238_DSP网络子系统之安全加速器(SA)》。

原文地址:http://blog.51cto.com/7183031/2132003

时间: 2024-08-29 21:57:37

DSP网络子系统的相关文章

DSP6678网络子系统之交换子系统

1 基本介绍 网络交换子系统由EMAC模块.SGMII模块.PHY设备.MDIO模块.网络交换机.以及系统集成的其他相关的子模块. NETCP的网络交换子系统的主要作用是提供一个在主设备和其他连接设备间进行数据传输的接口. 网络交换子系统主要包括如下三个模块: ?  网络交换部件 ?  MDIO模块 ?  两个SGMII模块(KeyStone I设备两个:KeyStone II设备四个) 网络交换子系统的交换机有三个端口,以及可以给主机的一组中断.可以通过配置总线进行配置.如图 1.1所示: 图

Linux内核分析(四)----进程管理|网络子系统|虚拟文件系统|驱动简介

Linux内核分析(四) 两天没有更新了,上次博文我们分析了linux的内存管理子系统,本来我不想对接下来的进程管理子系统.网络子系统.虚拟文件系统在这个阶段进行分析的,但是为了让大家对内核有个整体的把握,今天还是简单的介绍一下剩余的几个子系统,我们对这几个子系统的分析,只要了解其作用和部分内容即可,不必深究,等我们写上几个驱动,到时候按照驱动再来分析这几个子系统我们就清晰多了. 在http://www.cnblogs.com/wrjvszq/p/4257164.html一文我们提到过linux

Atitit.软件开发概念(11)--网络子系统--url编码 空格问题URLEncoder java js php

Atitit.软件开发概念(11)--网络子系统--url编码 空格问题URLEncoder java js php 1. RFC2396标准 including HTML 4.01 section 17.13.4, and also RFC 1866 (which is supercededby the W3C HTML recommendations). 在form的ContextType是[x-www-form-urlencoded]的时候会对form中的键/值对进行编码,空格被转义成+,

网络子系统87_veth实现

//使用veth //1.创建两块虚拟网卡veth1.veth2,然后点对点连接,此后两块网卡的数据会互相发送到对方 $ ip link add veth1 type veth peer name veth2 //2.创建网络命名空间t1 $ ip netns add t1 //3.将veth0加入t1,此时veth0便看不到了,因为被加入到其他命名空间中了 $ ip link set veth0 netns t1 //4.配置veth0的ip地址 $ ip netns exec t1 ifco

浅析Linux网络子系统(三)

继续分享陈铁飞老师在华为北研所讲座时的讲稿.这次内容有Qos子系统.默认排队规则.网络设备驱动程序和驱动实例.最后陈老师为大家推荐了基本参考书籍以供参考. Linux网络子系统系列课程连接: 本文最后会提供完整的下载版. Qos子系统的简要介绍 默认排队规则 设备无关层的输入流程图 网络设备驱动程序的介绍 一个具体的设备驱动实例 一个具体的设备驱动示例 AF_PACKET协议族的简要介绍 数据包的截获流程图 网络子系统更多内容提要,推荐参考书籍 一些网络编程问题诊断实例 陈老师从宏观的角度分析了

[国嵌攻略][135][网络子系统深度分析]

网络发包模型 1.选择路由 2.交给邻居子系统(路由中紧挨着发送方的网关).如果没有邻居信息,那么由Linux中的邻居子系统来建立邻居信息. 发送数据过程 //系统调用层和协议无关层 1.发送入口sock_aio_write 2.调用do_sock_write 3.调用__sock_sendmsg //网络协议栈 4.调用udp_sendmsg 5.调用ip_route_output_flow(选择路由) 6.调用udp_push_pending_frames 7.调用ip_push_pendi

Linux网络子系统安全性模块详细分析之文件xfrm_state.c函数介绍

2.4.4.4 外部函数 1. tasklet_hrtimer_start ( ) 函数原型: static inline int tasklet_hrtimer_start(struct tasklet_hrtimer *ttimer, ktime_t time, const enum hrtimer_mode mode) 函数参数:ttimer为含有定时器的小任务,time表示时间结构,mode表示时间的模式是相对时间还是绝对时间. 函数功能:设置带有定时器的小任务. 返回值:定时器如果在队

网络子系统在链路层的收发过程剖析(一)【转】

转自:http://linux.chinaunix.net/techdoc/net/2007/01/30/949381.shtml R.wen ([email protected]) 1),Skb_buff /* To allow 64K frame to be packed as single skb without frag_list */#define MAX_SKB_FRAGS (65536/PAGE_SIZE + 2) typedef struct skb_frag_struct sk

Linux网络子系统之---- PHY 配置

MII即媒体独立接口,也叫介质无关接口. 它包括一个数据接口,以及一个MAC和PHY之间的管理接口(图1). 数据接口包括分别用于发送器和接收器的两条独立信道.每条信道都有自己的数据.时钟和控制信号.MII数据接口总共需16个信号. 管理接口是个双信号接口:一个是时钟信号,另一个是数据信号.通过管理接口,上层能监视和控制PHY. RMII口是用两根线来传输数据的, MII口是用4根线来传输数据的, GMII是用8根线来传输数据的. GMII (Gigabit MII) GMII是8bit并行同步