ACL mask 和data的位置关系
fp init
fp data create OffsetBase=PacketStart offset=19 length=2
fp data format add QualId=1 RelativeOffset=0 L2=any VlanTag=any OuterIp=any InnerIp=any Tunnel=any mpls=any
fp qset add data 1
fp group create 0 1
fp entry create 1 1
fp qual 1 data 1 0x2220 0xffff
fp action add 1 drop
fp entry install 1
BCM.0> fp show entry 1
EID 1: gid=1,
slice=0, slice_idx=0, part =0 prio=0, flags=0x202, Installed
tcam: color_indep=0,
Stage
_bcmFieldQualifyData
Offset: 189 Width: 32
DATA=0x00222000
MASK=0x00ffff00
action={act=Drop, param0=0(0), param1=0(0)}, param2=0(0), param3=0(0),
policer= statistics=NULL
匹配三字节
BCM.0> fp init
BCM.0> fp data create OffsetBase=PacketStart offset=18 length=3
Data qualifier created with id: 1
BCM.0> fp data format add QualId=1 RelativeOffset=0 L2=any VlanTag=any OuterIp=any InnerIp=any Tunnel=Any mpls=any
BCM.0> fp qset add data 1
BCM.0> fp qset add inports
BCM_FIELD_QSET_ADD(InPorts) okay
BCM.0> fp group create 0 0
BCM.0> fp entry create 0 0
BCM.0> fp qual 0 inports 0x800 0x3ffffffd
BCM.0> fp qual 0 data 1 0x123456 0xffffff
BCM.0> fp show entry 1
BCM.0>
BCM.0> fp show entry 0
EID 0: gid=0,
slice=0, slice_idx=0, part =0 prio=0, flags=0x3, Not installed
tcam: color_indep=0,
InPorts
DATA=0x000000000000000000000800
MASK=0x00000000000000003ffffffd
Stage
_bcmFieldQualifyData
Offset: 189 Width: 32
DATA=0x12345600 【data 三字节】
MASK=0xffffff00 【mask 三字节】
policer= statistics=NULL
BCM.0>
掩码20bit
BCM.0> fp init
BCM.0> fp data create OffsetBase=PacketStart offset=18 length=3
Data qualifier created with id: 1
BCM.0> fp data format add QualId=1 RelativeOffset=0 L2=any VlanTag=any OuterIp=any InnerIp=any Tunnel=Any mpls=any
BCM.0> fp qset add data 1
BCM.0> fp qset add inports
BCM_FIELD_QSET_ADD(InPorts) okay
BCM.0> fp group create 0 0
BCM.0> fp entry create 0 0
BCM.0> fp qual 0 inports 0x800 0x3ffffffd
BCM.0> fp qual 0 data 1 0x123456 0xfffff0
BCM.0>
BCM.0>
BCM.0>
BCM.0> fp show entry 0
EID 0: gid=0,
slice=0, slice_idx=0, part =0 prio=0, flags=0x3, Not installed
tcam: color_indep=0,
InPorts
DATA=0x000000000000000000000800
MASK=0x00000000000000003ffffffd
Stage
_bcmFieldQualifyData
Offset: 189 Width: 32
DATA=0x12345600
MASK=0xfffff000
policer= statistics=NULL
执行正确的入口映像状态
-> fp_ethertype_mirror 0x8847,4,11
0x87b21c70 (tShell): entry = 1
value = 0 = 0x0
BCM.0> fp show entry 1
EID 1: gid=1,
slice=0, slice_idx=0, part =0 prio=0, flags=0x202, Installed
tcam: color_indep=0,
Stage
InPorts
DATA=0x000000000000000000000800 【ge9的portBitMap】
MASK=0x00000000000000003ffffffd
slice=0, slice_idx=0x80, part =1 prio=0, flags=0x302, Installed
tcam: color_indep=0,
slice=1, slice_idx=0, part =2 prio=0, flags=0x204, Installed
tcam: color_indep=0,
EtherType
Offset: 77 Width: 16
DATA=0x00008847
MASK=0x0000ffff
slice=1, slice_idx=0x80, part =3 prio=0, flags=0x304, Installed
tcam: color_indep=0,
action={act=MirrorIngress, param0=0(0), param1=4(0x4)}, param2=0(0), p aram3=0(0),
policer= statistics=NULL
BCM.0>
BCM.0>
BCM.0>
BCM.0> pbmp ge9
0x000000000000000000000800 ==> ge9
BCM.0>
删除FP 规则
switch_delete_stream_item_by_entry
0,1
两层标签的情况
packet receive from portno 11 send to cpu,length = 68
00 22 33 44 55 66 00 00 00 00 00 01
81 00 00 15
88 47
00 01 10 40 00 01 01 40 45 00 00 62 d9 8a
00 00 40 72 12 76 c6 13 01 02 c6 13 01 01 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00
packet forward mpls label 0x11
packet forward port 12 , dst_vid : 21
三层标签的情况
packet receive from portno 11 send to cpu,length = 68
00 22 33 44 55 66 00 00 00 00 00 01 81 00 00 15
88 47 00 01 20 40 00 01 10 40 00 01 01 40 45 00
00 5e 25 21 00 00 40 72 c6 e3 c6 13 01 02 c6 13
01 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00
packet forward mpls label1 0x12
packet mpls label1 ttl1 0x40
label_stack_bit1 : 0
this is the first label ,another label followed
packet forward mpls label2 0x11
packet mpls label1 ttl1 0x40
label_stack_bit2 : 0
this is the second label ,another label followed
packet forward mpls label3 0x10
packet mpls label1 ttl1 0x40
label_stack_bit3 : 1
three label here
FAE udf 使用
UDF可以匹配从包第一个字节到128字节的任意4个字节,你这种应用当然可以用UDF。
下面是UDF的参考脚本,你可以参考并修改:
/*ICMP CODE*/
/*指定从包开头开始计算*/
fp init
fp qset clear
//指定从包头开始,偏移35个字节
fp data create OffsetBase=PacketStart offset=1 length=1
fp data format add QualId=1 RelativeOffset=0 L2=Any VlanTag=Any OuterIp=Any InnerIp=Any Tunnel=None Mpls=Any
fp qset add data 1
fp group create 0 0
fp entry create 0 0
//匹配字段为0x1,掩码0xff
fp qual 0 data 1 0x22 0xff
//重定向的端口bitmap
fp action add 0 redirectpbmp 0x4
// 满足条件的报文丢弃
fp action add 0 Drop
fp entry install 0
执行fp init 是恢复FP 相关配置,之前配置的FP 规则都没有了。
测试用例1 OK
BCM.0> fp init
BCM.0> fp qset clear
BCM.0> fp data create OffsetBase=PacketStart offset=1 length=1
Data qualifier created with id: 1
BCM.0> fp data format add QualId=1 RelativeOffset=0 L2=Any VlanTag=Any OuterIp=Any InnerIp=Any Tunnel=None Mpls=Any
BCM.0> fp qset add data 1
BCM.0> fp group create 0 0
BCM.0> fp entry create 0 0
BCM.0> fp qual 0 data 1 0x22 0xff
BCM.0> fp action add 0 Drop
BCM.0> fp entry install 0
BCM.0>
OK
fp init
fp qset clear
fp data create OffsetBase=PacketStart offset=1 length=1
fp data format add QualId=1 RelativeOffset=0 L2=Any VlanTag=Any OuterIp=Any InnerIp=Any Tunnel=None Mpls=Any
fp qset add data 1
fp group create 0 0
fp entry create 0 0
fp qual 0 data 1 0x88 0xFF
fp action add 0 Drop
fp entry install 0
OK
fp init
fp qset clear
fp data create OffsetBase=PacketStart offset=0 length=1
fp data format add QualId=1 RelativeOffset=0 L2=Any VlanTag=Any OuterIp=Any InnerIp=Any Tunnel=None Mpls=Any
fp qset add data 1
fp group create 0 0
fp entry create 0 0
fp qual 0 data 1 0x99 0xFF
fp action add 0 Drop
fp entry install 0
OK
fp init
fp qset clear
fp data create OffsetBase=PacketStart offset=0 length=2
fp data format add QualId=1 RelativeOffset=0 L2=Any VlanTag=Any OuterIp=Any InnerIp=Any Tunnel=None Mpls=Any
fp qset add data 1
fp group create 0 0
fp entry create 0 0
fp qual 0 data 1 0x9988 0xFFFF
fp action add 0 Drop
fp entry install 0
OK
fp init
fp qset clear
fp data create OffsetBase=PacketStart offset=0 length=4
fp data format add QualId=1 RelativeOffset=0 L2=Any VlanTag=Any OuterIp=Any InnerIp=Any Tunnel=None Mpls=Any
fp qset add data 1
fp group create 0 0
fp entry create 0 0
fp qual 0 data 1 0x12345678 0xFFFF
fp action add 0 Drop
fp entry install 0
OK
fp init
fp qset clear
fp data create OffsetBase=PacketStart offset=0 length=2
fp data format add QualId=1 RelativeOffset=0 L2=Any VlanTag=Any OuterIp=Any InnerIp=Any Tunnel=None Mpls=Any
fp qset add data 1
fp group create 0 0
fp entry create 0 0
fp qual 0 data 1 0x1234 0xFFFF
fp action add 0 Drop
fp entry install 0
failed
fp init
fp qset clear
fp data create OffsetBase=PacketStart offset=2 length=4
fp data format add QualId=1 RelativeOffset=0 L2=Any VlanTag=Any OuterIp=Any InnerIp=Any Tunnel=None Mpls=Any
fp qset add data 1
fp group create 0 0
fp entry create 0 0
fp qual 0 data 1 0x00001610 0xFFFFFFFF
fp action add 0 Drop
fp entry install 0
ok
fp init
fp qset clear
fp data create OffsetBase=PacketStart offset=0 length=2
fp data format add QualId=1 RelativeOffset=0 L2=Any VlanTag=Any OuterIp=Any InnerIp=Any Tunnel=None Mpls=Any
fp qset add data 1
fp group create 0 0
fp entry create 0 0
fp qual 0 data 1 0x1122 0xFFFF
fp action add 0 Drop
fp entry install 0
OK
fp init
fp qset clear
fp data create OffsetBase=PacketStart offset=0 length=1
fp data format add QualId=1 RelativeOffset=0 L2=Any VlanTag=Any OuterIp=Any InnerIp=Any Tunnel=None Mpls=Any
fp qset add data 1
fp group create 0 0
fp entry create 0 0
fp qual 0 data 1 0x11 0xFF
fp action add 0 Drop
fp entry install 0
error
fp init
fp qset clear
fp data create OffsetBase=PacketStart offset=8 length=2
fp data format add QualId=1 RelativeOffset=0 L2=Any VlanTag=Any OuterIp=Any InnerIp=Any Tunnel=None Mpls=Any
fp qset add data 1
fp group create 0 0
fp entry create 0 0
fp qual 0 data 1 0x1610 0xFFFF
fp action add 0 Drop
fp entry install 0
fp qual 0 InPorts 0x11 0x1f
Sdsd fp entry creat 0 2
VLAN CREAT 21
fp entry creat 0 7
fp init
fp qset clear
fp data create OffsetBase=PacketStart offset=1 length=2
fp data format add QualId=1 RelativeOffset=0 L2=Any VlanTag=Any OuterIp=Any InnerIp=Any Tunnel=None Mpls=Any
fp qset add data 1
fp group create 0 0
fp entry create 0 0
fp qual 0 data 1 0x3456 0xFFFF
fp action add 0 Drop
fp entry install 0
.//
fp init
fp qset clear
fp data create offset=0 length=4
fp qset add data 1
fp group create 0 0
fp entry create 0 1
fp qual 1 data 1 0x12345678 0xFFFFFFFF
fp action add 1 Drop
fp entry install 1
fp init
fp qset clear
fp data create OffsetBase=PacketStart offset=0 length=4
fp data format add QualId=1 RelativeOffset=0 L2=Any VlanTag=Any OuterIp=Any InnerIp=Any Tunnel=None Mpls=Any
fp qset add data 1
fp group create 0 0
fp entry create 0 0
fp qual 0 data 1 0x99887766 0xFFFFFFFF
fp action add 0 Drop
fp entry install 0
fp init
fp qset clear
fp data create OffsetBase=PacketStart offset=6 length=1
fp data format add QualId=1 RelativeOffset=0 L2=Any VlanTag=Any OuterIp=Any InnerIp=Any Tunnel=None Mpls=Any
fp qset add data 1
fp group create 0 0
fp entry create 0 0
fp qual 0 data 1 0x12 0xFF
fp action add 0 Drop
fp entry install 0
fp init
fp qset clear
fp data create OffsetBase=PacketStart offset=2 length=4
fp data format add QualId=2 RelativeOffset=0 L2=Any VlanTag=Any OuterIp=Any InnerIp=Any Tunnel=None Mpls=Any
fp qset add data 2
fp group create 0 3
fp entry create 3 4
fp qual 4 data 2 0x77 0xFF
fp action add 4 Drop
fp entry install 4
fp init
fp qset clear
fp data create OffsetBase=PacketStart offset=5 length=1
fp data format add QualId=1 RelativeOffset=0 L2=Any VlanTag=Any OuterIp=Any InnerIp=Any Tunnel=None Mpls=Any
fp qset add data 1
fp group create 0 0
fp entry create 0 0
fp qual 0 data 1 0x66 0xFF
fp action add 0 Drop
fp entry install 0
测试用例2
BCM.0> fp init
BCM.0> fp qset clear
BCM.0> fp data create OffsetBase=PacketStart offset=6 length=6
BCM.0> fp data format add QualId=1 RelativeOffset=0 L2=Any VlanTag=Any OuterIp=Any InnerIp=Any Tunnel=None Mpls=Any
BCM.0> fp qset add data 1
BCM.0> fp group create 0 0
BCM.0> fp entry create 0 0
BCM.0> fp qual 0 data 1 0x222222222222 0xFFFFFFFF
BCM.0> fp action add 0 Drop
BCM.0> fp entry install 0
BCM.0>
测试用例3 ok 命令可以同时执行
fp init
fp qset clear
fp data create OffsetBase=PacketStart offset=6 length=6
fp data format add QualId=1 RelativeOffset=0 L2=Any VlanTag=Any OuterIp=Any InnerIp=Any Tunnel=None Mpls=Any
fp qset add data 1
fp group create 0 0
fp entry create 0 0
fp qual 0 data 1 0x121212121212 0xFFFFFFFFFFFF
fp action add 0 Drop
fp entry install 0
1 switch_rx_debug=0
测试用例4过滤0x8100
fp init
fp qset clear
fp data create OffsetBase=PacketStart offset=12 length=2
fp data format add QualId=1 RelativeOffset=0 L2=Any VlanTag=Any OuterIp=Any InnerIp=Any Tunnel=None Mpls=Any
fp qset add data 1
fp group create 0 0
fp entry create 0 0
fp qual 0 data 1 0x8100 0xFFFF
fp action add 0 Drop
fp entry install 0
测试用例5过滤 0x0800
fp init
fp qset clear
fp data create OffsetBase=PacketStart offset=12 length=2
fp data format add QualId=1 RelativeOffset=0 L2=Any VlanTag=Any OuterIp=Any InnerIp=Any Tunnel=None Mpls=Any
fp qset add data 1
fp group create 0 0
fp entry create 0 0
fp qual 0 data 1 0x0800 0xFFFF
fp action add 0 Drop
fp entry install 0
经过测试用例4.5 实验 ,报文过滤不考虑默认的pvid tag 0x8100 00 01 ,虽然上送到CPU的数据打印显示有这个,但是在使用ACL时,不考虑这个tag
测试用例6 过滤 MPLS 报文
fp init
fp qset clear
fp data create OffsetBase=PacketStart offset=16 length=2
fp data format add QualId=1 RelativeOffset=0 L2=Any VlanTag=Any OuterIp=Any InnerIp=Any Tunnel=None Mpls=Any
fp qset add data 1
fp group create 0 0
fp entry create 0 0
fp qual 0 data 1 0x8847 0xFFFF
fp action add 0 Drop
fp entry install 0
命令中几个参数的修改
包的起始格式有要求
Invalid selection: 0
PacketStart
OuterL3Header
InnerL3Header
OuterL4Header
InnerL4Header
HigigHeader
Higig2Header
BCM.0> fp data format add QualId=1 RelativeOffset=0 L2=3
Invalid selection: 3
Any
Ethernet2
Snap
Llc
FieldProcessor: Error: Unknown option: L2=3
BCM.0> fp data format add QualId=1 RelativeOffset=0 L2=Any VlanTag=5
Invalid selection: 5
Any
NoTag
SingleTagged
DoubleTagged
FieldProcessor: Error: Unknown option: VlanTag=5
BCM.0> fp data format add QualId=1 RelativeOffset=0 L2=Any VlanTag=Any OuterIp=3
Invalid selection: 3
Any
None
Ip4
Ip6
FieldProcessor: Error: Unknown option: OuterIp=3
BCM.0> fp data format add QualId=1 RelativeOffset=0 L2=Any VlanTag=Any OuterIp=Any InnerIp=8
Invalid selection: 8
Any
None
Ip4
Ip6
FieldProcessor: Error: Unknown option: InnerIp=8
BCM.0> fp data format add QualId=1 RelativeOffset=0 L2=Any VlanTag=Any OuterIp=Any InnerIp=Any Tunnel=4
Invalid selection: 4
Any
None
IpInIp
Gre
Mpls
FieldProcessor: Error: Unknown option: Tunnel=4
BCM.0> fp data format add QualId=1 RelativeOffset=0 L2=Any VlanTag=Any OuterIp=Any InnerIp=Any Tunnel=None Mpls=4
Invalid selection: 4
Any
OneLabel
TwoLabels
FieldProcessor: Error: Unknown option: Mpls=4
BCM.0>
fp init
fp qset clear
fp data create OffsetBase=PacketStart offset=12 length=2
fp data format add QualId=1 RelativeOffset=0 L2=Ethernet2 VlanTag=SingleTagged OuterIp=Any InnerIp=Any Tunnel=None Mpls=Any
fp qset add data 1
fp group create 0 0
fp entry create 0 0
fp qual 0 data 1 0x8100 0xFFFF
fp action add 0 Drop
fp entry install 0
ACL 相关数据结构,函数
/* DATA qualifier object, used for creation of custom data qualifiers. */
typedef struct bcm_field_data_qualifier_s {
int qual_id; /* Data qualifier id. */
uint32 flags; /* Data qualifier flags
BCM_FIELD_DATA_QUALIFIER_XXX. */
bcm_field_data_offset_base_t offset_base; /* Offset base adjustment. */
uint16 offset; /* Packet byte offset. */
int length; /* Matched data byte length. */
bcm_field_qualify_t qualifier; /* Data qualifier based on a predefined
qualifier. Used when
BCM_FIELD_DATA_QUALIFIER_OFFSET_PREDEFINED
is set. */
bcm_field_stage_t stage; /* Data qualifier stage (e.g. when based
on predefined qualifiers). */
} bcm_field_data_qualifier_t;
选项
const char *offsetbase_text[] = {"PacketStart", "OuterL3Header", "InnerL3Header",
"OuterL4Header", "InnerL4Header", "HigigHeader", "Higig2Header", NULL};
const char *data_vlan_text[] = {"Any", "NoTag", "SingleTagged",
"DoubleTagged", NULL };
const char *data_l2_text[] = {"Any", "Ethernet2", "Snap", "Llc", NULL};
const char *data_ip_text[] = {"Any", "None", "Ip4", "Ip6", NULL};
const char *data_tunnel_text[] = {"Any", "None", "IpInIp", "Gre", "Mpls", NULL};
const char *data_mpls_text[] = {"Any", "OneLabel", "TwoLabels", NULL};
与ACL 有关,看field.c
Dispatch.h 包含了bcm提供的所有的解析函数,实现函数接口
ACL 重定向含义
ACL 命令与函数的对应关系
fp init
fp data create OffsetBase=PacketStart offset=16 length=2
fp data format add QualId=1 RelativeOffset=0 L2=any VlanTag=any OuterIp=any InnerIp=any Tunnel=Any mpls=any
fp qset add data 1
fp group create 0 1
fp entry create 1 1
fp qual 1 data 1 0x8847 0xffff
fp action add 1 drop
fp entry install 1
fp data create OffsetBase=PacketStart offset=16 length=2
/* Create an data/offset based qualifier. */
extern int bcm_field_data_qualifier_create(
int unit,
bcm_field_data_qualifier_t *data_qualifier);
fp data format add QualId=1 RelativeOffset=0 L2=any VlanTag=any OuterIp=any InnerIp=any Tunnel=Any mpls=any
/* Add packet format based offset/s to data qualifier object. */
extern int bcm_field_data_qualifier_packet_format_add(
int unit,
int qual_id,
bcm_field_data_packet_format_t *packet_format);
fp qset add data 1
/* Add field data qualifier to group qset. */
extern int bcm_field_qset_data_qualifier_add(
int unit,
bcm_field_qset_t *qset,
int qual_id);
fp group create 0 1
fp entry create 1 1
/* Create a blank field entry. */
extern int bcm_field_entry_create(
int unit,
bcm_field_group_t group,
bcm_field_entry_t *entry);
/* Create a blank field entry. */
extern int bcm_field_entry_create_id(
int unit,
bcm_field_group_t group,
bcm_field_entry_t entry);
fp entry install 1
/* Install a field entry into the hardware tables. */
extern int bcm_field_entry_install(
int unit,
bcm_field_entry_t entry);
fp qual 1 data 1 0x8847 0xffff
/* Add data field that the packet must match to trigger qualifier. */
extern int bcm_field_qualify_data(
int unit,
bcm_field_entry_t eid,
int qual_id,
uint8 *data,
uint8 *mask,
uint16 length);
fp action add 1 drop
/* Add an action to a field entry. */
extern int bcm_field_action_add(
int unit,
bcm_field_entry_t entry,
bcm_field_action_t action,
uint32 param0,
uint32 param1);
VLAN 命令行创建,添加 移除
BCM.0> vlan create 9
BCM.0> vlan add 9 PortBitMap=ge9
BCM.0> vlan add 10 portBitMap=ge10
VLAN: ERROR: Entry not found
BCM.0> vlan add 9 portBitMap=ge10
BCM.0> vlan show
vlan 1 ports cpu,ge,hg (0x00000000000000003ffffffd), untagged ge (0x000000000000000003fffffc) MCAST_FLOOD_UNKNOWN
vlan 4 ports ge9 (0x000000000000000000000800), untagged none (0x000000000000000000000000) MCAST_FLOOD_UNKNOWN
vlan 9 ports ge9-ge10 (0x000000000000000000001800), untagged none (0x000000000000000000000000) MCAST_FLOOD_UNKNOWN
BCM.0>
BCM.0> vlan remove 9 portBitMap=ge9
BCM.0> vlan show
vlan 1 ports cpu,ge,hg (0x00000000000000003ffffffd), untagged ge (0x000000000000000003fffffc) MCAST_FLOOD_UNKNOWN
vlan 4 ports ge9 (0x000000000000000000000800), untagged none (0x000000000000000000000000) MCAST_FLOOD_UNKNOWN
vlan 9 ports ge10 (0x000000000000000000001000), untagged none (0x000000000000000000000000) MCAST_FLOOD_UNKNOWN
BCM.0> vlan destroy 4
BCM.0> vlan show
vlan 1 ports cpu,ge,hg (0x00000000000000003ffffffd), untagged ge (0x000000000000000003fffffc) MCAST_FLOOD_UNKNOWN
vlan 9 ports ge10 (0x000000000000000000001000), untagged none (0x000000000000000000000000) MCAST_FLOOD_UNKNOWN
BCM.0> vlan remove 9 portBitMap=ge10
BCM.0> vlan show
vlan 1 ports cpu,ge,hg (0x00000000000000003ffffffd), untagged ge (0x000000000000000003fffffc) MCAST_FLOOD_UNKNOWN
vlan 9 ports none (0x000000000000000000000000), untagged none (0x000000000000000000000000) MCAST_FLOOD_UNKNOWN
BCM.0>
标准的ACL
对目的MAC 为16 10 的报文进行过滤
-> fp_dstmac 0x4fffa4c0 ,1,11
0x87b21c70 (tShell): entry = 1
value = 0 = 0x0
->
-> test_diag_shell
[tShell]
Broadcom Command Monitor: Copyright (c) 1998-2010 Broadcom Corporation
Release: sdk-5.11.0 built 20140108 (Wed Jan 8 19:55:57 2014)
From Administrator@SPGHKUD98SU5TSG:E:/sdk-xgs-robo-5.11.0
Platform: KEYSTONE
OS: VxWorks 5.5.1
BCM.0>
BCM.0> fp show entry 1
EID 1: gid=1,
slice=0, slice_idx=0, part =0 prio=0, flags=0x202, Installed
tcam: color_indep=0,
Stage
InPorts
DATA=0x000000000000000000000800 【这个是bitmap,就是ge9】
MASK=0x00000000000000003ffffffd
slice=0, slice_idx=0x80, part =1 prio=0, flags=0x302, Installed
tcam: color_indep=0,
slice=1, slice_idx=0, part =2 prio=0, flags=0x204, Installed
tcam: color_indep=0,
DstMac
Offset: 141【这个是怎么来的?】 Width: 48 【这里是bit数】
DATA=0x00000000 00001610
MASK=0x0000ffff ffffffff
slice=1, slice_idx=0x80, part =3 prio=0, flags=0x304, Installed
tcam: color_indep=0,
action={act=Drop, param0=0(0), param1=0(0)}, param2=0(0), param3=0(0),
policer= statistics=NULL
关于上CPU 的测试
目前板子不知道怎么配置的,只要是没有学习到MAC地址的,就默认上CPU ,开启switch_rx_debug=1,就能打印到发包的信息。
解决办法
1.端口1 往端口2 发包,源MAC 为 01,
2.端口2 往端口1 发包,源MAC 为02
3.两个端口都发包后,就能学习到MAC地
可以理解为 ge9相连的MAC地址为01 ,与ge10 相连的MAC地址为02.
测试 : 从ge9 发往 ge10 的报文,目的mac为 02,源mac为01 ,这个报文只有ge10 能收到,其他端口无法收到,因为已经完成MAC地址学习
从ge10 发往ge9的报文,目的mac为01,源mac为02 ,这个报文只有ge9 能收到,因为完成了MAC地址学习