其他测试脚本

来源:互联网 发布:linux动态打印日志 编辑:程序博客网 时间:2024/05/01 10:50


transit脚本实现

# P device : SWAP 

# MPLS Packets ingressed at GE1 with tunnel labels 0x1111 and VC label 0x2222 0x3333
# 00 00 00 00 02 22 00 00 00 00 00 BB 81 00 00 0B 88 47 01 11 10 40 02 22 21 40 03 33 30 40 45 00 00 62 00 00 00 00 40 72 E2 00 C6 13 0B 02 C6 13 01 01
#------------------------------------------------------------------------------------------------------------


sdk 6.6 版本的,需要vpn_id>=0x3000, 之前5.5 的配置为0x2000就可以   20140918


2014.11.22
输入报文格式 mpls报文,没有携带vlanid=1的tag  
目的mac 
源mac
8847
标签1
标签2
目的mac
源mac


继续结论 : 这个脚本使用于以下两种情况
    
    输入 1 : 携带8100 0001 的mpls报文交换,输出报文不带8100 0001 的mpls报文
    输入2 :  不携带 8100 0001的mpls报文交换,输出报文不携带8100 0001 的mpls报文。


   关键在于这里没有重新创建tag模式的vlan 1 相关端口没有以tag的方式加入


cint
cint_reset();
int unit=0;
bcm_port_t port_1 = 11 ;
bcm_port_t port_2 = 12;  
bcm_gport_t gport_1, gport_2;
    
bcm_port_gport_get(unit, port_1, &gport_1);
printf("gport_1=0x%x\n", gport_1);
bcm_port_gport_get(unit, port_2, &gport_2);
printf("gport_2=0x%x\n", gport_2);
 
bcm_switch_control_set(0, bcmSwitchL3EgressMode, 1);
bcm_vlan_control_set(0, bcmVlanTranslate, 1);
bcm_switch_control_set(0, bcmSwitchL2StaticMoveToCpu, 1);


exit;


l3 intf add vlan=1 mac=0x10 intf=10


l3 egress add mac=0x110 intf=10 port=0x800000c


因为到第二块板子没有洪范,更换地址 2014.11.22

l3 intf add vlan=1 mac=0x01 intf=10

l3 egress add mac=0x1616 intf=10 port=0x800000c


/*switch 操作*/
mpls tunnel switch add action=0   IngLabel=0x999 EgrLabel=0xabcde   EgrObject=100002
mpls tunnel l2 add mac=0x10 vlan=1

/*注意要设置下satation*/
ApiSetDefaultMplsStation

 看看创建vlan 1 的情况


如果创建vlan1 ,且将相关端口加入vlan1 ,那么输出的经过mpls交换后的报文,携带vlan tag
报文格式为
目的mac
源mac
8100
0001
8847
标签1
标签2


此种情况对端口1进来的mpls报文是否携带vlan=1的tag 适用。


cint
cint_reset();
int unit=0;
bcm_port_t port_1 = 11 ;
bcm_port_t port_2 = 12;  
bcm_gport_t gport_1, gport_2;
    
bcm_port_gport_get(unit, port_1, &gport_1);
printf("gport_1=0x%x\n", gport_1);
bcm_port_gport_get(unit, port_2, &gport_2);
printf("gport_2=0x%x\n", gport_2);
 
bcm_switch_control_set(0, bcmSwitchL3EgressMode, 1);
bcm_vlan_control_set(0, bcmVlanTranslate, 1);
bcm_switch_control_set(0, bcmSwitchL2StaticMoveToCpu, 1);

bcm_vlan_create(0,1);
print bcm_vlan_gport_add(0, 1, gport_1, 0);
print bcm_vlan_gport_add(0, 1, gport_2, 0);

exit;


l3 intf add vlan=1 mac=0x10 intf=10

l3 egress add mac=0x110 intf=10 port=0x800000c

action: 0 swap 2 pop
/*POP  操作*/
mpls tunnel switch add action=0   IngLabel=0x11 EgrLabel=0xabcde   EgrObject=100002
mpls tunnel l2 add mac=0x10 vlan=1

/*注意要设置下satation*/

ApiSetDefaultMplsStation


port+vlan egress

# P device : SWAP 
# MPLS Packets ingressed at GE1 with tunnel labels 0x1111 and VC label 0x2222 0x3333
# 00 00 00 00 02 22 00 00 00 00 00 BB 81 00 00 0B 88 47 01 11 10 40 02 22 21 40 03 33 30 40 45 00 00 62 00 00 00 00 40 72 E2 00 C6 13 0B 02 C6 13 01 01
#------------------------------------------------------------------------------------------------------------


sdk 6.6 版本的,需要vpn_id>=0x3000, 之前5.5 的配置为0x2000就可以   20140918

cint
cint_reset();
int unit=0;
bcm_port_t port_1 = 11 ;
bcm_port_t port_2 = 12;  
bcm_gport_t gport_1, gport_2;
    
bcm_port_gport_get(unit, port_1, &gport_1);
printf("gport_1=0x%x\n", gport_1);
bcm_port_gport_get(unit, port_2, &gport_2);
printf("gport_2=0x%x\n", gport_2);
 
bcm_switch_control_set(0, bcmSwitchL3EgressMode, 1);
bcm_vlan_control_set(0, bcmVlanTranslate, 1);
bcm_switch_control_set(0, bcmSwitchL2StaticMoveToCpu, 1);

/*egress AC 侧的VLAN必须创建和添加 
l3 intf add vlan=21 mac=0x10 intf=10 否则在这句会提示参数不对2015 020*/
bcm_vlan_create(0,21);
print bcm_vlan_gport_add(0, 21, gport_1, 0);
bcm_vlan_create(0, 23);
print bcm_vlan_gport_add(0, 23, gport_2, 0);
exit;


//l3 intf add vlan=21 mac=0x10 intf=10    这个参数传21 也没问题。 2015 0203
l3 intf add vlan=23 mac=0x10 intf=10  
l3 egress add mac=0x110 intf=10 port=0x800000c
mpls vpn create vpws VPN=0x3000
mpls vpn port add vpn=0x3000  portmatch=portvlan  port=0x800000b vlan=21  IntfFlaGs=CouNTed
mpls vpn port add vpn=0x3000  portmatch=Label port=0x800000c  \
egrobj=100002  IntfFlaGs=Network,ControlWord,EgressTunnel  VCTermLabel=0x777  VCInitLabel=0x777

/*POP  操作*/
mpls tunnel switch add action=2   IngLabel=0x888  vpn=0x3000

/*下面这条命令可有可无 2015 0205*/
mpls tunnel l2 add mac=0x10 vlan=21

执行完之后加一条这个命令,可以放在任何位置 20150205
ApiSetDefaultMplsStation
 2015 0205 再次test success!!!!! 已经支持控制字 controlword

vpls 一条AC两条PW输出

测试用例2 

从ge9输入用户报文,从ge10,ge11 同时输出mpls报文,实现点到多点的通信 vpls实现

cint
cint_reset();
int unit=0;
bcm_port_t port_1 = 11 ;
bcm_port_t port_2 = 12;  
bcm_port_t port_3 = 13;  
bcm_gport_t gport_1, gport_2,gport_3;
    
bcm_port_gport_get(unit, port_1, &gport_1);
printf("gport_1=0x%x\n", gport_1);
bcm_port_gport_get(unit, port_2, &gport_2);
printf("gport_2=0x%x\n", gport_2);
bcm_port_gport_get(unit, port_3, &gport_3);
printf("gport_3=0x%x\n", gport_3);
 
bcm_switch_control_set(0, bcmSwitchL3EgressMode, 1);
bcm_vlan_control_set(0, bcmVlanTranslate, 1);
bcm_switch_control_set(0, bcmSwitchL2StaticMoveToCpu, 1);
bcm_vlan_create(0,21);
print bcm_vlan_gport_add(0, 21, gport_1, 0);
bcm_vlan_create(0, 23);
print bcm_vlan_gport_add(0, 23, gport_2, 0);
bcm_vlan_create(0, 24);
print bcm_vlan_gport_add(0, 24, gport_3, 0);
exit;

l3 intf add vlan=23 mac=0x10 intf=10
l3 egress add mac=0x010000000010 intf=10 port=0x800000c
l3 intf add vlan=24 mac=0x10 intf=11
l3 egress add mac=0x010000000010 intf=11 port=0x800000d 
mpls tunnel init set EgrTunnelLabel=0x555  EgrLabelOptions=1  EgrTTL=44 intf=10 
mpls tunnel init set EgrTunnelLabel=0x555  EgrLabelOptions=1  EgrTTL=44 intf=11 
mpls vpn create vpls vpn=0x7014   BcastGroup=7
mpls mcast group create vpls McastGroup=6
mpls vpn port add vpn=0x7014  portmatch=portvlan  port=0x800000b  vlan=21  IntfFlaGs=CouNTed
mpls mcast group port add McastGroup=0x03000006  MplsPort=0x18000001 
mpls vpn port add vpn=0x7014  portmatch=Label port=0x800000c  \
egrobj=100002  IntfFlaGs=Network,EgressTunnel  VCTermLabel=0x777  VCInitLabel=0x666
mpls vpn port add vpn=0x7014  portmatch=Label port=0x800000d  \
egrobj=100003  IntfFlaGs=Network,EgressTunnel  VCTermLabel=0x777  VCInitLabel=0x666
mpls mcast group port add McastGroup=0x03000006  MplsPort=0x18000002 
mpls mcast group port add McastGroup=0x03000006  MplsPort=0x18000003 

多播MAC添加到多播组中,这里的MAC 其实是用户报文的目的MAC
 mpls mcast group addr McastGroup=0x03000006  Mac=0x010000000066 vpn=0x7014

想实现单播报文通过,下面这个命令式不行的
 mpls mcast group addr McastGroup=0x03000006  Mac=0x000000000066 vpn=0x7014   

/*
mpls mcast group port add McastGroup=0x03000003  MplsPort=0x18000001 
mpls mcast group port add McastGroup=0x03000003  MplsPort=0x18000002 
mpls mcast group port add McastGroup=0x03000003  MplsPort=0x18000003
 mpls mcast group addr McastGroup=0x03000003  Mac=0x010000000066 vpn=0x7001
*/


/*POP 标签有关*/

/*VPN 必须要有,否则提示参数失败
BCM.0> mpls tunnel switch add action=2   IngLabel=0x888
MPLS_CLI: Error: bcm_mpls_tunnel_switch_add failed, Invalid parameter
*/

mpls tunnel switch add action=2   IngLabel=0x888  vpn=0x7014

/*这一条不是必须的 10.13*/
mpls tunnel l2 add mac=0x10 vlan=23
 
ApiSetDefaultMplsStation

注意最后要设置下default station










0 0