cisco-system-traffic-generator / trex-core

trex-core site
https://trex-tgn.cisco.com/
Other
1.26k stars 457 forks source link

turn on multicast with linux native interface #1094

Open tianhengzhou opened 6 months ago

tianhengzhou commented 6 months ago

I run my Trex server in stateless mode and with interfaces defined with Linux interface names.

This is what's shown in the TRex book under low-end machines sections.

3.5 Linux interfaces Another interesting low-end use case is using native Linux interfaces.

- version         : 2
#List of interfaces. Change to suit your setup. Use ./dpdk_setup_ports.py -s to see available options

  interfaces    : ["private100","private0", "private1", "dummy"]
  port_info     :
      - dest_mac: xx:xx:xx:xx:xx:xx
        src_mac: xx:xx:xx:xx:xx:xx

With that, I'm trying to turn on multicast mode for the port in the trex-console via portattr -p 0 --mult on

trex>portattr -p 0 1 2 --mult on

Applying attributes on port(s) [0, 1, 2]:                    [SUCCESS]

trex>portattr
Port Status

     port       |          0           |          1           |          2
----------------+----------------------+----------------------+---------------------
driver          |    net_af_packet     |    net_af_packet     |    net_af_packet
description     |       Unknown        |       Unknown        |       Unknown
link status     |          UP          |          UP          |          UP
link speed      |       10 Gb/s        |       10 Gb/s        |       10 Gb/s
port status     |         IDLE         |         IDLE         |         IDLE
promiscuous     |         off          |         off          |         off
multicast       |         off          |         off          |         off
flow ctrl       |         N/A          |         N/A          |         N/A
vxlan fs        |          -           |          -           |          -
--              |                      |                      |
layer mode      |       Ethernet       |       Ethernet       |       Ethernet
src IPv4        |          -           |          -           |          -
IPv6            |         off          |         off          |         off

The port multicast mode won't turn on, keep at off. I have a similar setup with PCID in the interface like the following interfaces: ['01:00.0', '05:00.0'] I can switch on multicast for a port without a problem. I wonder if this Linux interface's low-end mode won't work with multicast There isn't anything mentioned in the doc that multicast doesn't work for this low-end use case.

tzhoutarana commented 2 months ago

It seems promiscuous mode can let all package go through

hhaim commented 2 months ago

@tianhengzhou the multicast enable is per driver, the net_af_packet is not the common case of dpdk driver