当前位置 博文首页 > 积水成渊:IPMC 测试

    积水成渊:IPMC 测试

    作者:[db:作者] 时间:2021-07-13 21:53

    ?

    拓扑图
    ?????????????????????????? ?|-----|--------P2
    ????? vlan 2? P1-----| dut |--------P3??? vlan 3
    ??????????????????????????? |-----|--------P4

    测试步骤
    1.创建vlan2 并加入端口P1.
    2.创建vlan3 并加入端口P2,P3,P4.
    3.创建IPMC ENTRY, sip=src ip, multicast ip=dst ip
    4.配置P2 P3 P4 为vlan 3 的 IPMC egress 端口
    5.创建vlan 3 对应的L3 interface 和IPMC replication entry
    6.enable IPMC. 向P1 口发送sip=src ip, dip=mcast, dmac= int vlan3 的MAC地址
    期望结果
    P2 P3 P4 能够收到组播报文。

    src_ip? =?? 192.168.1.11
    dst_ip? =?? 224.0.1.2
    src_mac = 00:00:01:00:00:02
    dst_mac = 01:00:5E:00:01:02
    router_mac = 00:00:01:00:00:01
    ipmc_index = 0x1
    1,2 省略
    3 创建组播组 bcm_multicast_create(unit, BCM_MULTICAST_TYPE_L3, &new_group)
    ? 初始化IPMC结构体并加入到IPMC ENTRY
    ?? bcm_ipmc_addr_t ipmc_addr
    ?? ipmc_addr.v 0x1
    ??????????? .ts 0x0
    ??????????? .vid 2
    ??????????? .port_tgid 1
    ??????????? .flags 0
    ??????????? .s_ip_addr src_mac
    ??????????? .mc_ip_addr dst_mac
    ?????????? .group? new_group

    ?bcm_ipmc_add(unit, &ipmc_addr)

    4. for (port = P2 to P4) {
    ???? bcm_ipmc_egress_port_set(unit, port, src_mac, 0, 3, ttl)
    ?? }
    5. bcm_l3_intf_t intf_vlan3
    ???? intf_vlan3.l3a_mac_addr router_mac
    ?????????????? .l3a_vid? 3
    ?? bcm_l3_intf_create(unit,intf_vlan3)
    ?? 得到intf_id = intf_vlan3.l3a_intf_id
    ???
    ?? 配置replication entry
    ?? for(port = P2 to P4) {
    ???? bcm_multicast_egress_add(unit, new_group, port, intf_id)
    ?? }

    6. bcm_ipmc_enable (true) 向P1 口发送
    ?? da = dst_mac
    ?? sa = src_mac
    ?? vid = 2
    ?? src ip = src_ip
    ?? dst ip = dst_ip
    ? 的IP 报文。

    cs
    下一篇:没有了