MPLS调试笔记之FP用法

来源:互联网 发布:建筑工程优化设计方案 编辑:程序博客网 时间:2024/05/22 00:46


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  ge9portBitMap

    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地址学习

1 0
原创粉丝点击