MultiCast

Manage multicast operation

MultiCast

Shortest form: mc.

Manage multicast groups: create and delete them, look up the encapsulation IDs that identify a replication, and add or remove group members (port plus encapsulation ID). Sub-commands are case-insensitive but must be typed in full. A group ID is the full group number including its type, for example 0x1000001.

The …encap sub-commands only look up and print an encapsulation ID as Encap ID <n>; they change nothing. On Trident 3 the VPLS, MiM, WLAN and subport forms may not be supported.

show and the …encap forms only read. create, destroy, add and delete change multicast state. SONiC creates its multicast groups through the SAI, and destroying one of them breaks forwarding for that group.

SONiC’s generate_dump collects multicast show (scripts/generate_dump (show techsupport collector)).

multicast show [Group=<group>]

Print every group, or one, as Group 0x<id> (<type>) followed by one port <name>, encap id <n> line per member. Read-only.

A SONiC switch has a few groups that the SAI created, for example a FLOW and an L3 group (the high bits of the ID give the type). Leave them alone.

Hardware-validated

drivshell> multicast show
Group 0xf000004 (FLOW)
  port xe3, encap id 432770
Group 0x2000005 (L3)
  port xe3, encap id 432771
multicast create Type=<type> [Group=<group>]

Create a group and print group id 0x<id>. Type is L2, L3, VPLS, SUBPORT, MIM, WLAN or TRILL. Other type names fail without a message. The built-in help shows MIN; the real name is MIM. With Group, that number is used. A plain index is combined with the type. Changes switch state.

Unvalidated

drivshell> multicast create Type=L3
multicast destroy Group=<group>

Delete a group. Changes switch state.

Unvalidated

drivshell> multicast destroy Group=0x2000001
multicast l3encap Group=<group> Port=<port> Intf=<l3_intf>

Print the encapsulation ID for sending a group’s traffic out of a port on an L3 interface. vplsencap (MplsPortId), subportencap (SubPort), mimencap (MimPortId) and wlanencap (WlanPortId) work the same way. Read-only.

Unvalidated

drivshell> multicast l3encap Group=0x2000001 Port=xe1 Intf=2
multicast l2encap Group=<group> Port=<port> Vlan=<vid>

Print the encapsulation ID for an L2 replication on a port and VLAN. Read-only.

Unvalidated

drivshell> multicast l2encap Group=0x1000001 Port=xe1 Vlan=100
multicast add Group=<group> Port=<port> EncapId=<encap>

Add a member to a group. Take EncapId from one of the …encap forms. Changes switch state.

Unvalidated

drivshell> multicast add Group=0x2000001 Port=xe1 EncapId=8193
multicast delete Group=<group> [Port=<port> EncapId=<encap>]

Remove one member, or every member if no Port/EncapId is given. Changes switch state.

Unvalidated

drivshell> multicast delete Group=0x2000001 Port=xe1 EncapId=8193

Built-in help

Usages:
    create Type=L2|L3|VPLS|SUBPORT|MIN|WLAN|TRILL [Group=<num>]
    destroy Group=<num>
    l3encap Group=<num> Port=<num> Intf=<num>
    l2encap Group=<num> Port=<num> Vlan=<num>
    vplsencap Group=<num> Port=<num> MplsPortId=<num>
    subportencap Group=<num> Port=<num> SubPort=<num>
    mimencap Group=<num> Port=<num> MimPortId=<num>
    wlanencap Group=<num> Port=<num> WlanPortId=<num>
    add Group=<num> Port=<num> EncapId=<num>
    delete Group=<num> [Port=<num> EncapId=<num>]
    show [Group=<num>]

Further reading

SDK-6.5.20 HSDK Getting Started Guide (GS-SDK6520-R), plus SDK-6.5.20/21/22 Release Notes (RN-SDK65xx-R), scripts/generate_dump (show techsupport collector).