基于交换芯片的五元组过滤功能

本文介绍了基于Marvell 98DX51xx/81xx交换芯片的PCL(策略控制列表)功能,详细阐述了PCL如何在报文处理流程中的Ingress阶段进行五元组过滤,并通过PCL-ID、VID、IP协议等条件实现报文筛选。PCL是交换芯片的高级功能,常见于网络安全设备中,文中还解析了PCL规则的底层实现和数据结构。
摘要由CSDN通过智能技术生成
基于交换芯片的五元组的PCL规则过滤功能


作者: 韩大卫@吉林师范大学

2012.12.10

Not Approved by Document Control
Review Copy Only


基于Marvell 98DX51xx/81xx交换芯片的五元组等的策略规则(PCL)过滤功能.现将部分的功能的底层实现予以简单介绍.

Contact author for detailed information: handawei@jusontech.com


Forward:

Marvell对PCL概念的定义是:

The Policy engine performs per-flow processing of packets received and  transmitted by the device.A packet can be bound to one or more sets of policy rules, which we call Policy Control Lists (PCL).

PCL:策略控制列表.可以理解为在交换芯片上实现的过滤规则列表.有一种类似的概念叫ACL.

ACL:Access Control List . 访问控制列表

一般来讲,ACL是用户层上下发的规则, 最终通过交换芯片或CPU来实现的,是一种用户层上定义的规则.PCL是底层的概念, 是交换芯片内部对此功能的定义,驱动工程师在操作系统底层软件提取出此交换芯片的PCL过滤功能(比如根据五元组,根据VLAN-ID, 根据是否ARP报文等等),封装成API类库供用户层使用, 用户层就可以综合使用这些API做成一条条过滤规则.

PCL是交换芯片较高级的功能,一般普通的二层/三层交换机的使用的低端交换芯片是没有的此功能的.很多网络安全设备(如防火墙,分流器等)的一部分实现也是基于此机制.


根据Marvell的datasheet, PCL对报文的处理是在L2/L3/L4之前,即

 		      Ingress 									Egress
Packet	   -------------->    PCL     ----->  L2    ------> L3 -------> L4 ...-------------->  


报文 首先经过IPCL(Ingress PCL) Engine  处理, 根据报文的类型和PCL-ID生成一张IPCL Table , 此表的数据结构大致为:

9bit---0bit  PCL-ID
..
29bit---18bit   VID
..
49bit---42bit  Ip Protocol
..
130bit---99bit  SIP[4]
162bit---131bit  DIP[4]

...


完成此IPCL table后, 拿此表在TCAM中进行查找匹配, 匹配成功的条件是: 首先要PCL-ID相同, 如果规则制定了过滤条件, 那么依次匹配自定义的成员, 例如: 如想过滤出报文中VID为100的,那么只有IPCL table中VID位置为100 的数据结构(即相应的报文)可以被筛选出来, 进而执行TCAM中此表对对应的ACTION.从而完成了一次PCL过滤.

根据以上描述, 可以这样定义一个数据结构用来作为函数参数, 传递用户层的PCL指定规则

以下是PCL动作部分的定义, 关于IPCL Table等部分的制作略.

typedef struct  sw_pcl_action {
    BOOL_T              		        enable;
    uin
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值