DRA829J: CPSW9G behaving like a hub

Part Number: DRA829J
Other Parts Discussed in Thread: TDA4VH-Q1, TDA4VH

Tool/software:

Hi,

We run CPSW9G in native ethernet configuration with SDK 11.

Two (or more) external switch ports belong to the same VLAN. On A72 we also use this VLAN to receive/send packets.

When sending unicast packets from an external system to A72 via one switch port we see these packets duplicated on the other switch ports. Making the switch behave like a hub. The replies from A72 to the external system are not duplicated.

We see this behavior in switch mode and mac mode.

Switch:

10: switch: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP mode DEFAULT group default qlen 1000
    link/ether fe:d2:b8:9a:b6:12 brd ff:ff:ff:ff:ff:ff promiscuity 1  allmulti 0 minmtu 68 maxmtu 65535
    bridge forward_delay 1500 
    hello_time 200 
    max_age 2000 
    ageing_time 100000 
    stp_state 0 
    priority 32768 
    vlan_filtering 1 
    vlan_protocol 802.1Q 
    bridge_id 8000.fe:d2:b8:9a:b6:12 
    designated_root 8000.fe:d2:b8:9a:b6:12 
    root_port 0 
    root_path_cost 0 
    topology_change 0 
    topology_change_detected 0 
    hello_timer    0.00 
    tcn_timer    0.00 
    topology_change_timer    0.00 
    gc_timer  160.16 
    vlan_default_pvid 0 
    vlan_stats_enabled 0 
    vlan_stats_per_port 0 
    group_fwd_mask 0 
    group_address 01:80:c2:00:00:00 
    mcast_snooping 1 
    no_linklocal_learn 0 
    0 mcast_router 1 
    mcast_query_use_ifaddr 0 
    mcast_querier 0 
    mcast_hash_elasticity 16 
    mcast_hash_max 4096 
    mcast_last_member_count 2 
    mcast_startup_query_count 2 
    mcast_last_member_interval 100 
    mcast_membership_interval 26000 
    mcast_querier_interval 25500 
    mcast_query_interval 12500 
    mcast_query_response_interval 1000 
    mcast_startup_query_interval 3124 
    mcast_stats_enabled 0 
    mcast_igmp_version 2 
    mcast_mld_version 1 
    nf_call_iptables 0 
    nf_call_ip6tables 0 
    nf_call_arptables 0 
    addrgenmode none 
    numtxqueues 1 
    numrxqueues 1 
    gso_max_size 65536 
    gso_max_segs 65535 
    tso_max_size 65536 
    tso_max_segs 65535 
    gro_max_size 65536

Switch ports:

7: xf2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mqprio master switch state UP mode DEFAULT group default qlen 1000
    link/ether 00:60:c8:63:07:95 brd ff:ff:ff:ff:ff:ff permaddr 02:60:c8:00:00:04 promiscuity 1  allmulti 1 minmtu 64 maxmtu 2002
    bridge_slave state forwarding 
    priority 32 
    cost 5 
    hairpin off 
    guard off 
    root_block off 
    fastleave off 
    learning on 
    flood on 
    port_id 0x8002 
    port_no 0x2 
    designated_port 32770 
    designated_cost 0 
    designated_bridge 8000.fe:d2:b8:9a:b6:12 
    designated_root 8000.fe:d2:b8:9a:b6:12 
    hold_timer    0.00 
    message_age_timer    0.00 
    forward_delay_timer    0.00 
    topology_change_ack 0 
    config_pending 0 
    proxy_arp off 
    proxy_arp_wifi off 
    mcast_router 1 
    mcast_fast_leave off 
    mcast_flood on 
    bcast_flood on 
    mcast_to_unicast off 
    neigh_suppress off 
    group_fwd_mask 0 
    group_fwd_mask_str 0x0 
    vlan_tunnel off 
    isolated off 
    locked off 
    addrgenmode none 
    numtxqueues 8 
    numrxqueues 8 
    gso_max_size 65536 
    gso_max_segs 65535 
    tso_max_size 65536 
    tso_max_segs 65535 
    gro_max_size 65536 
    portname p5 
    switchid 000000000c000000 
    parentbus platform 
    parentdev c000000.ethernet

8: xf4: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mqprio master switch state UP mode DEFAULT group default qlen 1000
    link/ether 00:60:c8:63:07:94 brd ff:ff:ff:ff:ff:ff permaddr 02:60:c8:00:00:05 promiscuity 1  allmulti 1 minmtu 64 maxmtu 2002
    bridge_slave state forwarding 
    priority 32 
    cost 5 
    hairpin off 
    guard off 
    root_block off 
    fastleave off 
    learning on 
    flood on 
    port_id 0x8001 
    port_no 0x1 
    designated_port 32769 
    designated_cost 0 
    designated_bridge 8000.fe:d2:b8:9a:b6:12 
    designated_root 8000.fe:d2:b8:9a:b6:12 
    hold_timer    0.00 
    message_age_timer    0.00 
    forward_delay_timer    0.00 
    topology_change_ack 0 
    config_pending 0 
    proxy_arp off 
    proxy_arp_wifi off 
    mcast_router 1 
    mcast_fast_leave off 
    mcast_flood on 
    bcast_flood on 
    mcast_to_unicast off 
    neigh_suppress off 
    group_fwd_mask 0 
    group_fwd_mask_str 0x0 
    vlan_tunnel off 
    isolated off 
    locked off 
    addrgenmode none 
    numtxqueues 8 
    numrxqueues 8 
    gso_max_size 65536 
    gso_max_segs 65535 
    tso_max_size 65536 
    tso_max_segs 65535 
    gro_max_size 65536 
    portname p6 
    switchid 000000000c000000 
    parentbus platform 
    parentdev c000000.ethernet

We already tested more or less every available setting. Do you have any idea what we are missing?

Regards,

Matthias

  • Hi,

    I just realized. The actual part number is "TDA4VH-Q1".

  • Hi Matthias,

    I am assuming here that you have created a bridge interface and added all the required interfaces as its daughter interfaces. That is an important step for enabling switch mode in TDA4VH.

    Please see here for more details on switch mode : https://software-dl.ti.com/jacinto7/esd/processor-sdk-linux-j784s4/11_00_00_08/exports/docs/linux/Foundational_Components/Kernel/Kernel_Drivers/Network/CPSWng-Native-Ethernet.html#cpswng-native-ethernet

    If this is done, can you share the output of "ip -a" on linux.

    I am suspecting that bridge is registered with its own separate MAC address and its not using the constituent MAC address of its daughter interfaces.

    If eth1 is part of br0, can you try running the following command and see if it resolves the issue:

    ip link set dev br0 address `ip link show dev eth2 | tail -1 | awk '{print $2}'`

    Regards,
    Tanmay

  • Hi Tanmay,

    Your assumption is correct. We joined the switch ports to a bridge interface and configured everything accordingly (VLANs etc.). The bridge also had it's own MAC address.

    Using a MAC address of one of the switch ports did not resolve our issue. However, using the MAC of one of the VLAN interfaces seems to fix it (i.e. the MAC of an interface added with "ip link add link br0 name if2 type vlan id 2").

    Thanks for pointing us in the right direction.

    Regards,

    Matthias

  • It seems this didn't fix the issue. Somehow it's just temporarily. I'm still looking into it.

  • After setting the MAC address of the switch to a MAC address of our VLAN interfaces, the duplication stops for about one minute. After that the duplication is back again.

  • Hi Tanmay,

    The duplication is still happening and I analyzed it a bit further. 

    - Without any changes to the MAC address of the bridge interface the duplication is happening for 240s and then stops for 60s and the cycle repeats.

    - After changing the MAC address of our bridge interface the duplication stops for about 1min. This has no effect on the overall cycle of 240s duplication and 60s no duplication

    - "bridge fdb show" shows no difference between the duplication and no duplication. 

    - xf2 is the port on which the duplicated packets leave our board. "ethtool -d xf2" shows no entry for any of the affected MAC addresses.

    I reduced our network configuration to better analyze the issue. 

    - xf4 is the port on which the packets, addressed to kli, arrive

    - The packets are duplicated onto xf2

    - kli is a VLAN interface with VID 2

    - koni is a VLAN interface with VID 3

    - I check the duplication on another device connected to xf2

    $ ip a
    1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
        link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
        inet 127.0.0.1/8 scope host lo
           valid_lft forever preferred_lft forever
        inet6 ::1/128 scope host noprefixroute
           valid_lft forever preferred_lft forever
    2: dummy0: <BROADCAST,NOARP> mtu 1500 qdisc noop state DOWN group default qlen 1000
        link/ether 6e:47:99:a1:e2:2a brd ff:ff:ff:ff:ff:ff
    3: eth0: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1000
        link/ether 02:60:c8:00:00:00 brd ff:ff:ff:ff:ff:ff
    4: xf1: <BROADCAST,MULTICAST> mtu 1500 qdisc noop master switch state DOWN group default qlen 1000
        link/ether 02:60:c8:00:00:01 brd ff:ff:ff:ff:ff:ff
    5: xg19: <BROADCAST,MULTICAST> mtu 1500 qdisc mqprio master switch state DOWN group default qlen 1000
        link/ether 02:60:c8:00:00:02 brd ff:ff:ff:ff:ff:ff
    6: cn9300: <BROADCAST,MULTICAST> mtu 1500 qdisc noop master switch state DOWN group default qlen 1000
        link/ether 02:60:c8:00:00:03 brd ff:ff:ff:ff:ff:ff
    7: xf2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mqprio master switch state UP group default qlen 1000
        link/ether 00:60:c8:63:07:95 brd ff:ff:ff:ff:ff:ff permaddr 02:60:c8:00:00:04
    8: xf4: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mqprio master switch state UP group default qlen 1000
        link/ether 00:60:c8:63:07:94 brd ff:ff:ff:ff:ff:ff permaddr 02:60:c8:00:00:05
    9: eexb_ai: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc pfifo_fast state DOWN group default qlen 1000
        link/ether 02:60:c8:00:00:09 brd ff:ff:ff:ff:ff:ff
        altname enp1s0
    10: switch: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
        link/ether 02:60:c8:00:00:01 brd ff:ff:ff:ff:ff:ff
    11: kli@switch: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
        link/ether 00:60:c8:63:07:96 brd ff:ff:ff:ff:ff:ff
        inet 10.49.115.185/23 metric 1024 brd 10.49.115.255 scope global dynamic kli
           valid_lft 79858sec preferred_lft 79858sec
    12: koni@switch: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
        link/ether 00:60:c8:63:07:97 brd ff:ff:ff:ff:ff:ff
        inet 172.30.0.1/16 brd 172.30.255.255 scope global koni
           valid_lft forever preferred_lft forever

    $ bridge vlan show
    port              vlan-id
    xf2               2 Egress Untagged
                      3 PVID Egress Untagged
    xf4               2 PVID Egress Untagged
    switch            2
                      3

    $ bridge fdb show
    33:33:00:00:00:01 dev dummy0 self permanent
    33:33:00:00:00:01 dev eth0 self permanent
    02:60:c8:00:00:01 dev xf1 master switch permanent
    33:33:00:00:00:01 dev xf1 self permanent
    02:60:c8:00:00:02 dev xg19 master switch permanent
    33:33:00:00:00:01 dev xg19 self permanent
    02:60:c8:00:00:03 dev cn9300 master switch permanent
    33:33:00:00:00:01 dev cn9300 self permanent
    8a:9d:84:8a:15:3d dev xf2 vlan 3 master switch 
    00:60:c8:63:07:95 dev xf2 vlan 3 master switch permanent
    00:60:c8:63:07:95 dev xf2 vlan 2 master switch permanent
    00:60:c8:63:07:95 dev xf2 master switch permanent
    33:33:00:00:00:01 dev xf2 self permanent
    01:00:5e:00:00:01 dev xf2 self permanent
    01:80:c2:00:00:00 dev xf2 self permanent
    01:80:c2:00:00:03 dev xf2 self permanent
    01:80:c2:00:00:0e dev xf2 self permanent
    00:60:c8:05:f9:aa dev xf4 vlan 2 master switch 
    00:60:c8:63:09:99 dev xf4 vlan 2 master switch 
    00:60:c8:fe:89:51 dev xf4 vlan 2 master switch 
    00:60:c8:63:07:19 dev xf4 vlan 2 master switch 
    00:60:c8:fe:89:f2 dev xf4 vlan 2 master switch 
    00:60:c8:63:06:3d dev xf4 vlan 2 master switch 
    00:60:c8:fe:89:d9 dev xf4 vlan 2 master switch 
    00:60:c8:fe:89:83 dev xf4 vlan 2 master switch 
    00:60:c8:63:08:54 dev xf4 vlan 2 master switch 
    00:60:c8:fe:89:bb dev xf4 vlan 2 master switch 
    00:60:c8:64:7c:0c dev xf4 vlan 2 master switch 
    00:60:c8:63:06:10 dev xf4 vlan 2 master switch 
    70:da:48:e2:a5:0e dev xf4 vlan 2 master switch 
    00:60:c8:63:06:d3 dev xf4 vlan 2 master switch 
    00:60:c8:63:06:b5 dev xf4 vlan 2 master switch 
    00:60:c8:63:06:a1 dev xf4 vlan 2 master switch 
    00:60:c8:63:06:dd dev xf4 vlan 2 master switch 
    f8:e9:4f:0b:ab:30 dev xf4 vlan 2 master switch 
    70:da:48:e2:bb:0e dev xf4 vlan 2 master switch 
    f8:e9:4f:0b:ae:b0 dev xf4 vlan 2 master switch 
    e8:d3:22:e2:58:b0 dev xf4 vlan 2 master switch 
    00:60:c8:06:e2:4f dev xf4 vlan 2 master switch 
    e8:d3:22:e0:18:30 dev xf4 vlan 2 master switch 
    00:09:0f:09:01:1a dev xf4 vlan 2 master switch 
    28:6b:5c:64:53:18 dev xf4 vlan 2 master switch 
    78:85:17:05:ef:8d dev xf4 vlan 2 master switch 
    00:60:c8:06:54:2c dev xf4 vlan 2 master switch 
    00:60:c8:07:a7:f2 dev xf4 vlan 2 master switch 
    90:1b:0e:ff:88:57 dev xf4 vlan 2 master switch 
    90:1b:0e:e3:61:e5 dev xf4 vlan 2 master switch 
    00:30:59:13:9a:09 dev xf4 vlan 2 master switch 
    90:1b:0e:e6:23:ad dev xf4 vlan 2 master switch 
    00:30:59:15:ba:a7 dev xf4 vlan 2 master switch 
    00:60:c8:06:24:bf dev xf4 vlan 2 master switch 
    00:60:c8:06:1d:42 dev xf4 vlan 2 master switch 
    00:60:c8:07:16:21 dev xf4 vlan 2 master switch 
    00:60:c8:06:31:4c dev xf4 vlan 2 master switch 
    00:60:c8:06:d2:e0 dev xf4 vlan 2 master switch 
    48:a1:70:85:8e:8d dev xf4 vlan 2 master switch 
    00:60:c8:06:e1:c8 dev xf4 vlan 2 master switch 
    00:60:c8:63:06:24 dev xf4 vlan 2 master switch 
    00:60:c8:08:0d:08 dev xf4 vlan 2 master switch 
    00:60:c8:06:16:9d dev xf4 vlan 2 master switch 
    00:60:c8:06:d0:6a dev xf4 vlan 2 master switch 
    00:60:c8:07:95:d7 dev xf4 vlan 2 master switch 
    00:60:c8:07:fe:83 dev xf4 vlan 2 master switch 
    00:60:c8:06:20:84 dev xf4 vlan 2 master switch 
    90:1b:0e:07:dd:32 dev xf4 vlan 2 master switch 
    e4:5f:01:37:83:4b dev xf4 vlan 2 master switch 
    00:60:c8:07:04:2a dev xf4 vlan 2 master switch 
    00:60:c8:07:01:8d dev xf4 vlan 2 master switch 
    00:60:c8:05:fa:28 dev xf4 vlan 2 master switch 
    00:60:c8:63:07:78 dev xf4 vlan 2 master switch 
    00:60:c8:07:12:a6 dev xf4 vlan 2 master switch 
    00:60:c8:06:e6:fc dev xf4 vlan 2 master switch 
    b8:27:eb:e1:64:20 dev xf4 vlan 2 master switch 
    00:60:c8:06:e3:30 dev xf4 vlan 2 master switch 
    00:60:c8:06:cc:b9 dev xf4 vlan 2 master switch 
    00:60:c8:07:1f:7b dev xf4 vlan 2 master switch 
    00:60:c8:06:1a:f9 dev xf4 vlan 2 master switch 
    00:60:c8:64:7c:02 dev xf4 vlan 2 master switch 
    00:60:c8:fe:89:a7 dev xf4 vlan 2 master switch 
    c8:60:8f:f4:5f:8d dev xf4 vlan 2 master switch 
    00:60:c8:06:19:fd dev xf4 vlan 2 master switch 
    00:60:c8:08:83:ac dev xf4 vlan 2 master switch 
    e4:5f:01:93:c1:36 dev xf4 vlan 2 master switch 
    00:50:56:98:d0:6a dev xf4 vlan 2 master switch 
    00:60:c8:05:fc:82 dev xf4 vlan 2 master switch 
    00:60:c8:63:06:b0 dev xf4 vlan 2 master switch 
    08:f4:f0:8d:76:0e dev xf4 vlan 2 master switch 
    00:60:c8:06:1d:9c dev xf4 vlan 2 master switch 
    00:60:c8:06:ff:a1 dev xf4 vlan 2 master switch 
    00:60:c8:08:c0:5d dev xf4 vlan 2 master switch 
    00:60:c8:05:fd:07 dev xf4 vlan 2 master switch 
    00:60:c8:08:3a:1a dev xf4 vlan 2 master switch 
    cc:d3:42:40:d9:30 dev xf4 vlan 2 master switch 
    00:60:c8:63:05:e3 dev xf4 vlan 2 master switch 
    00:50:56:98:80:cb dev xf4 vlan 2 master switch 
    00:08:32:56:61:18 dev xf4 vlan 2 master switch 
    bc:f1:f2:28:d5:8a dev xf4 vlan 2 master switch 
    20:db:ea:ef:55:8d dev xf4 vlan 2 master switch 
    00:60:c8:07:11:1a dev xf4 vlan 2 master switch 
    00:60:c8:08:9b:28 dev xf4 vlan 2 master switch 
    24:a4:2c:3a:6c:d7 dev xf4 vlan 2 master switch 
    00:50:56:98:71:cf dev xf4 vlan 2 master switch 
    00:60:c8:06:e1:2f dev xf4 vlan 2 master switch 
    c4:46:06:c3:96:b0 dev xf4 vlan 2 master switch 
    f8:39:18:0b:d4:30 dev xf4 vlan 2 master switch 
    34:1b:2d:2a:41:98 dev xf4 vlan 2 master switch 
    f8:e9:4f:05:0a:30 dev xf4 vlan 2 master switch 
    34:1b:2d:12:c6:98 dev xf4 vlan 2 master switch 
    f8:e5:7e:e8:46:18 dev xf4 vlan 2 master switch 
    d0:ec:35:3a:76:02 dev xf4 vlan 2 master switch 
    00:60:c8:63:07:94 dev xf4 vlan 2 master switch permanent
    00:60:c8:63:07:94 dev xf4 master switch permanent
    00:60:c8:63:05:e8 dev xf4 self permanent
    33:33:00:00:00:01 dev xf4 self permanent
    01:00:5e:00:00:01 dev xf4 self permanent
    01:80:c2:00:00:00 dev xf4 self permanent
    01:80:c2:00:00:03 dev xf4 self permanent
    01:80:c2:00:00:0e dev xf4 self permanent
    33:33:00:00:00:01 dev eexb_ai self permanent
    01:00:5e:00:00:01 dev eexb_ai self permanent
    00:60:c8:63:07:96 dev switch self permanent
    00:60:c8:63:07:97 dev switch self permanent
    33:33:00:00:00:01 dev switch self permanent
    01:00:5e:00:00:6a dev switch self permanent
    33:33:00:00:00:6a dev switch self permanent
    01:00:5e:00:00:01 dev switch self permanent
    01:80:c2:00:00:21 dev switch self permanent
    01:80:c2:00:00:00 dev switch self permanent
    01:80:c2:00:00:03 dev switch self permanent
    01:80:c2:00:00:0e dev switch self permanent
    01:00:5e:00:00:fc dev switch self permanent
    01:00:5e:7f:ff:13 dev switch self permanent
    00:60:c8:63:07:99 dev switch vlan 3 master switch permanent
    00:60:c8:63:07:99 dev switch vlan 2 master switch permanent
    00:60:c8:63:07:99 dev switch master switch permanent
    33:33:00:00:00:01 dev kli self permanent
    01:00:5e:00:00:01 dev kli self permanent
    01:80:c2:00:00:00 dev kli self permanent
    01:80:c2:00:00:03 dev kli self permanent
    01:80:c2:00:00:0e dev kli self permanent
    01:00:5e:00:00:fc dev kli self permanent
    01:00:5e:7f:ff:13 dev kli self permanent
    33:33:00:00:00:01 dev koni self permanent
    01:00:5e:00:00:01 dev koni self permanent
    01:80:c2:00:00:00 dev koni self permanent
    01:80:c2:00:00:03 dev koni self permanent
    01:80:c2:00:00:0e dev koni self permanent
    01:00:5e:00:00:fc dev koni self permanent
    01:00:5e:7f:ff:13 dev koni self permanent
    

    No duplication:

    $ ethtool -d xf2
    K3 CPSW dump version: 1, len: 11704
    (Missing registers in memory space can be considered as zero valued)
    --------------------------------------------------------------------
    cpsw-nuss regdump: number of Registers:(16)
    00000000:reg(6BA03102)
    00000010:reg(000000FF)
    cpsw-nuss-rgmii-status regdump: number of Registers:(16)
    cpsw-nuss-mdio regdump: number of Registers:(128)
    00000f00:reg(00070907)
    00000f04:reg(8100013F)
    00000f08:reg(00000F07)
    00000f0c:reg(00000007)
    00000f10:reg(00000003)
    00000f20:reg(00000001)
    00000f30:reg(00000001)
    00000f38:reg(FFFFFFFF)
    00000f80:reg(63E20A42)
    cpsw-nu regdump: number of Registers:(144)
    00020000:reg(6BA82902)
    00020004:reg(00006004)
    00020014:reg(0000007F)
    00020020:reg(00003001)
    00020024:reg(0000000B)
    00020028:reg(00000008)
    00020030:reg(FFFFFFFF)
    00020038:reg(FFFFFFFF)
    0002003c:reg(FFFFFFFF)
    00020050:reg(88A88100)
    00020100:reg(000007E8)
    00020104:reg(000007E8)
    00020108:reg(000007E8)
    0002010c:reg(000007E8)
    00020110:reg(000007E8)
    00020114:reg(000007E8)
    00020118:reg(000007E8)
    0002011c:reg(000007E8)
    cpsw-nu-p0 regdump: number of Registers:(402)
    00021004:reg(00010001)
    00021008:reg(00000052)
    00021010:reg(00000002)
    00021014:reg(00000001)
    00021018:reg(76543210)
    00021020:reg(76543210)
    00021024:reg(000007E8)
    00021028:reg(01245678)
    00021038:reg(00000060)
    00021180:reg(1F1F1F1F)
    00021184:reg(1F1F1F1F)
    00021190:reg(1F1F1F1F)
    00021194:reg(1F1F1F1F)
    00021300:reg(04030201)
    00021304:reg(08070605)
    cpsw-nu-pn regdump: number of Registers:(468)
    00022008:reg(00001004)
    00022010:reg(00000001)
    0002201c:reg(00009000)
    00022020:reg(76543210)
    00022024:reg(000005EE)
    00022028:reg(01245678)
    00022038:reg(00000062)
    00022040:reg(00000008)
    00022048:reg(001312D0)
    00022050:reg(0000FF00)
    00022180:reg(1F1F1F1F)
    00022184:reg(1F1F1F1F)
    00022190:reg(1F1F1F1F)
    00022194:reg(1F1F1F1F)
    00022314:reg(001E0000)
    00022320:reg(00040000)
    00022334:reg(E0000000)
    0002233c:reg(02BD0000)
    000223a4:reg(0000000C)
    cpsw-nu-cpts regdump: number of Registers:(38)
    0003d000:reg(4E8A010C)
    0003d004:reg(00020021)
    0003d010:reg(7DDD271D)
    0003d028:reg(00000001)
    0003d044:reg(1859231C)
    cpsw-nu-ale regdump: number of Registers:(160)
    0003e000:reg(00290105)
    0003e004:reg(80000C01)
    0003e008:reg(80000105)
    0003e010:reg(0004E200)
    0003e014:reg(00002580)
    0003e020:reg(000001FF)
    0003e040:reg(00000003)
    0003e054:reg(00000003)
    0003e058:reg(00000003)
    0003e100:reg(000F0000)
    0003e120:reg(00000007)
    0003e12c:reg(80000000)
    0003e134:reg(00008000)
    0003e138:reg(00000007)
    0003e13c:reg(00008000)
    --------------------------
    Number of ALE entries: 512
    0: Type: Inner VLAN
     	Nolearn Mask = 0x0, Ingress Check = 0
    	VLAN ID = 0, Registered Mask = 0x7f, No Frag = 0
    	Force Untagged Packet Egress = 0x7f, Limit Next Header Control = 0, Unregistered Mask = 0x7f, Members = 0x7f
    1: Type: Multicast
     	Address = 01:80:c2:00:00:00, Multicast_State = Blocking/Forwarding/Learning, Super, port_mask = 0x1
    2: Type: Unicast
     	VID = 1, Address = 00:60:c8:63:07:95, Unicast_type = Persistent, port_num = 0x0, Secure = 1, Blocked = 1, Touch = 0, Agable = 0
    3: Type: Inner VLAN
     	Nolearn Mask = 0x0, Ingress Check = 0
    	VLAN ID = 2, Registered Mask = 0x61, No Frag = 0
    	Force Untagged Packet Egress = 0x60, Limit Next Header Control = 0, Unregistered Mask = 0x1, Members = 0x61
    4: Type: Multicast
     	Address = 33:33:00:00:00:01, Multicast_State = Forwarding, No Super, port_mask = 0x1
    5: Type: Multicast
     	Address = 01:00:5e:00:00:01, Multicast_State = Forwarding, No Super, port_mask = 0x1
    6: Type: Inner VLAN
     	Nolearn Mask = 0x0, Ingress Check = 0
    	VLAN ID = 1, Registered Mask = 0x1, No Frag = 0
    	Force Untagged Packet Egress = 0x1, Limit Next Header Control = 0, Unregistered Mask = 0x1, Members = 0x1
    7: Type: Unicast
     	VID = 1, Address = 00:60:c8:63:07:94, Unicast_type = Persistent, port_num = 0x0, Secure = 1, Blocked = 1, Touch = 0, Agable = 0
    8: Type: Unicast
     	VID = 2, Address = 02:60:c8:00:00:04, Unicast_type = Persistent, port_num = 0x0, Secure = 1, Blocked = 0, Touch = 0, Agable = 0
    9: Type: Unicast
     	VID = 2, Address = 02:60:c8:00:00:05, Unicast_type = Persistent, port_num = 0x0, Secure = 1, Blocked = 0, Touch = 0, Agable = 0
    10: Type: Inner VLAN
     	Nolearn Mask = 0x0, Ingress Check = 0
    	VLAN ID = 3, Registered Mask = 0x21, No Frag = 0
    	Force Untagged Packet Egress = 0x20, Limit Next Header Control = 0, Unregistered Mask = 0x1, Members = 0x21
    11: Type: Unicast
     	VID = 3, Address = 02:60:c8:00:00:04, Unicast_type = Persistent, port_num = 0x0, Secure = 1, Blocked = 0, Touch = 0, Agable = 0
    12: Type: Unicast
     	VID = 3, Address = 02:60:c8:00:00:05, Unicast_type = Persistent, port_num = 0x0, Secure = 1, Blocked = 0, Touch = 0, Agable = 0
    23: Type: Unicast
     	VID = 2, Address = f8:39:18:0b:d4:30, Unicast_type = Untouched, port_num = 0x2, Secure = 0, Blocked = 0, Touch = 0, Agable = 1
    26: Type: Unicast
     	VID = 2, Address = 00:60:c8:08:3a:1a, Unicast_type = Untouched, port_num = 0x2, Secure = 0, Blocked = 0, Touch = 0, Agable = 1
    27: Type: Unicast
     	VID = 2, Address = 20:db:ea:ef:55:8d, Unicast_type = Untouched, port_num = 0x2, Secure = 0, Blocked = 0, Touch = 0, Agable = 1
    28: Type: Unicast
     	VID = 2, Address = 24:a4:2c:3a:6c:d7, Unicast_type = Untouched, port_num = 0x2, Secure = 0, Blocked = 0, Touch = 0, Agable = 1
    29: Type: Unicast
     	VID = 2, Address = 00:50:56:98:80:cb, Unicast_type = Untouched, port_num = 0x2, Secure = 0, Blocked = 0, Touch = 0, Agable = 1
    30: Type: Unicast
     	VID = 2, Address = c8:60:8f:f4:5f:8d, Unicast_type = Touched, port_num = 0x2, Secure = 0, Blocked = 0, Touch = 1, Agable = 1
    31: Type: Unicast
     	VID = 2, Address = 00:60:c8:05:fd:07, Unicast_type = Touched, port_num = 0x2, Secure = 0, Blocked = 0, Touch = 1, Agable = 1
    46: Type: Unicast
     	VID = 2, Address = bc:f1:f2:28:d5:8a, Unicast_type = Touched, port_num = 0x2, Secure = 0, Blocked = 0, Touch = 1, Agable = 1
    48: Type: Unicast
     	VID = 2, Address = d0:ec:35:3a:76:02, Unicast_type = Touched, port_num = 0x2, Secure = 0, Blocked = 0, Touch = 1, Agable = 1
    51: Type: Unicast
     	VID = 2, Address = 90:1b:0e:07:dd:32, Unicast_type = Touched, port_num = 0x2, Secure = 0, Blocked = 0, Touch = 1, Agable = 1
    54: Type: Unicast
     	VID = 2, Address = 00:60:c8:05:fc:82, Unicast_type = Untouched, port_num = 0x2, Secure = 0, Blocked = 0, Touch = 0, Agable = 1
    55: Type: Unicast
     	VID = 2, Address = 00:60:c8:63:06:a1, Unicast_type = Touched, port_num = 0x2, Secure = 0, Blocked = 0, Touch = 1, Agable = 1
    56: Type: Unicast
     	VID = 2, Address = 00:50:56:98:d0:6a, Unicast_type = Untouched, port_num = 0x2, Secure = 0, Blocked = 0, Touch = 0, Agable = 1
    57: Type: Unicast
     	VID = 2, Address = 00:60:c8:06:19:fd, Unicast_type = Untouched, port_num = 0x2, Secure = 0, Blocked = 0, Touch = 0, Agable = 1
    58: Type: Unicast
     	VID = 2, Address = 00:60:c8:07:fe:83, Unicast_type = Touched, port_num = 0x2, Secure = 0, Blocked = 0, Touch = 1, Agable = 1
    59: Type: Unicast
     	VID = 2, Address = 00:60:c8:06:e2:4f, Unicast_type = Touched, port_num = 0x2, Secure = 0, Blocked = 0, Touch = 1, Agable = 1
    60: Type: Unicast
     	VID = 2, Address = f8:e9:4f:05:0a:30, Unicast_type = Touched, port_num = 0x2, Secure = 0, Blocked = 0, Touch = 1, Agable = 1
    61: Type: Unicast
     	VID = 2, Address = 00:60:c8:08:c0:5d, Unicast_type = Touched, port_num = 0x2, Secure = 0, Blocked = 0, Touch = 1, Agable = 1
    62: Type: Unicast
     	VID = 2, Address = cc:d3:42:40:d9:30, Unicast_type = Touched, port_num = 0x2, Secure = 0, Blocked = 0, Touch = 1, Agable = 1
    68: Type: Unicast
     	VID = 2, Address = f8:e5:7e:e8:46:18, Unicast_type = Untouched, port_num = 0x2, Secure = 0, Blocked = 0, Touch = 0, Agable = 1
    71: Type: Unicast
     	VID = 2, Address = 48:a1:70:85:8e:8d, Unicast_type = Untouched, port_num = 0x2, Secure = 0, Blocked = 0, Touch = 0, Agable = 1
    72: Type: Unicast
     	VID = 2, Address = 00:08:32:56:61:18, Unicast_type = Touched, port_num = 0x2, Secure = 0, Blocked = 0, Touch = 1, Agable = 1
    73: Type: Unicast
     	VID = 2, Address = 00:60:c8:63:05:e3, Unicast_type = Touched, port_num = 0x2, Secure = 0, Blocked = 0, Touch = 1, Agable = 1
    74: Type: Unicast
     	VID = 2, Address = e4:5f:01:93:c1:36, Unicast_type = Untouched, port_num = 0x2, Secure = 0, Blocked = 0, Touch = 0, Agable = 1
    75: Type: Unicast
     	VID = 2, Address = e8:d3:22:e2:58:b0, Unicast_type = Touched, port_num = 0x2, Secure = 0, Blocked = 0, Touch = 1, Agable = 1
    76: Type: Unicast
     	VID = 2, Address = 00:09:0f:09:01:1a, Unicast_type = Touched, port_num = 0x2, Secure = 0, Blocked = 0, Touch = 1, Agable = 1
    91: Type: Unicast
     	VID = 2, Address = e8:d3:22:e0:18:30, Unicast_type = Untouched, port_num = 0x2, Secure = 0, Blocked = 0, Touch = 0, Agable = 1
    93: Type: Unicast
     	VID = 2, Address = 34:1b:2d:2a:41:98, Unicast_type = Touched, port_num = 0x2, Secure = 0, Blocked = 0, Touch = 1, Agable = 1
    126: Type: Unicast
     	VID = 2, Address = c4:46:06:c3:96:b0, Unicast_type = Touched, port_num = 0x2, Secure = 0, Blocked = 0, Touch = 1, Agable = 1
    

    Duplication:

    $ ethtool -d xf2
    K3 CPSW dump version: 1, len: 11704
    (Missing registers in memory space can be considered as zero valued)
    --------------------------------------------------------------------
    cpsw-nuss regdump: number of Registers:(16)
    00000000:reg(6BA03102)
    00000010:reg(000000FF)
    cpsw-nuss-rgmii-status regdump: number of Registers:(16)
    cpsw-nuss-mdio regdump: number of Registers:(128)
    00000f00:reg(00070907)
    00000f04:reg(4100013F)
    00000f08:reg(00000F07)
    00000f0c:reg(00000007)
    00000f10:reg(00000003)
    00000f20:reg(00000001)
    00000f30:reg(00000001)
    00000f38:reg(FFFFFFFF)
    00000f80:reg(63E10A42)
    cpsw-nu regdump: number of Registers:(144)
    00020000:reg(6BA82902)
    00020004:reg(00006004)
    00020014:reg(0000007F)
    00020020:reg(00003001)
    00020024:reg(0000000B)
    00020028:reg(00000008)
    00020030:reg(FFFFFFFF)
    00020038:reg(FFFFFFFF)
    0002003c:reg(FFFFFFFF)
    00020050:reg(88A88100)
    00020100:reg(000007E8)
    00020104:reg(000007E8)
    00020108:reg(000007E8)
    0002010c:reg(000007E8)
    00020110:reg(000007E8)
    00020114:reg(000007E8)
    00020118:reg(000007E8)
    0002011c:reg(000007E8)
    cpsw-nu-p0 regdump: number of Registers:(402)
    00021004:reg(00010001)
    00021008:reg(00000052)
    00021010:reg(00000002)
    00021014:reg(00000001)
    00021018:reg(76543210)
    00021020:reg(76543210)
    00021024:reg(000007E8)
    00021028:reg(01245678)
    00021038:reg(00000060)
    00021180:reg(1F1F1F1F)
    00021184:reg(1F1F1F1F)
    00021190:reg(1F1F1F1F)
    00021194:reg(1F1F1F1F)
    00021300:reg(04030201)
    00021304:reg(08070605)
    cpsw-nu-pn regdump: number of Registers:(468)
    00022008:reg(00001004)
    00022010:reg(00000001)
    0002201c:reg(00009000)
    00022020:reg(76543210)
    00022024:reg(000005EE)
    00022028:reg(01245678)
    00022038:reg(00000062)
    00022040:reg(00000008)
    00022048:reg(001312D0)
    00022050:reg(0000FF00)
    00022180:reg(1F1F1F1F)
    00022184:reg(1F1F1F1F)
    00022190:reg(1F1F1F1F)
    00022194:reg(1F1F1F1F)
    00022314:reg(001E0000)
    00022320:reg(00040000)
    00022334:reg(E0000000)
    0002233c:reg(01C30000)
    000223a4:reg(0000000C)
    cpsw-nu-cpts regdump: number of Registers:(38)
    0003d000:reg(4E8A010C)
    0003d004:reg(00020021)
    0003d010:reg(7DDD271D)
    0003d028:reg(00000001)
    0003d044:reg(1859231C)
    cpsw-nu-ale regdump: number of Registers:(160)
    0003e000:reg(00290105)
    0003e004:reg(80000C01)
    0003e008:reg(80000105)
    0003e010:reg(0004E200)
    0003e014:reg(00002580)
    0003e020:reg(000001FF)
    0003e040:reg(00000003)
    0003e054:reg(00000003)
    0003e058:reg(00000003)
    0003e100:reg(000F0000)
    0003e120:reg(00000007)
    0003e12c:reg(80000000)
    0003e134:reg(00008000)
    0003e138:reg(00000007)
    0003e13c:reg(00008000)
    --------------------------
    Number of ALE entries: 512
    0: Type: Inner VLAN
     	Nolearn Mask = 0x0, Ingress Check = 0
    	VLAN ID = 0, Registered Mask = 0x7f, No Frag = 0
    	Force Untagged Packet Egress = 0x7f, Limit Next Header Control = 0, Unregistered Mask = 0x7f, Members = 0x7f
    1: Type: Multicast
     	Address = 01:80:c2:00:00:00, Multicast_State = Blocking/Forwarding/Learning, Super, port_mask = 0x1
    2: Type: Unicast
     	VID = 1, Address = 00:60:c8:63:07:95, Unicast_type = Persistent, port_num = 0x0, Secure = 1, Blocked = 1, Touch = 0, Agable = 0
    3: Type: Inner VLAN
     	Nolearn Mask = 0x0, Ingress Check = 0
    	VLAN ID = 2, Registered Mask = 0x61, No Frag = 0
    	Force Untagged Packet Egress = 0x60, Limit Next Header Control = 0, Unregistered Mask = 0x1, Members = 0x61
    4: Type: Multicast
     	Address = 33:33:00:00:00:01, Multicast_State = Forwarding, No Super, port_mask = 0x1
    5: Type: Multicast
     	Address = 01:00:5e:00:00:01, Multicast_State = Forwarding, No Super, port_mask = 0x1
    6: Type: Inner VLAN
     	Nolearn Mask = 0x0, Ingress Check = 0
    	VLAN ID = 1, Registered Mask = 0x1, No Frag = 0
    	Force Untagged Packet Egress = 0x1, Limit Next Header Control = 0, Unregistered Mask = 0x1, Members = 0x1
    7: Type: Unicast
     	VID = 1, Address = 00:60:c8:63:07:94, Unicast_type = Persistent, port_num = 0x0, Secure = 1, Blocked = 1, Touch = 0, Agable = 0
    8: Type: Unicast
     	VID = 2, Address = 02:60:c8:00:00:04, Unicast_type = Persistent, port_num = 0x0, Secure = 1, Blocked = 0, Touch = 0, Agable = 0
    9: Type: Unicast
     	VID = 2, Address = 02:60:c8:00:00:05, Unicast_type = Persistent, port_num = 0x0, Secure = 1, Blocked = 0, Touch = 0, Agable = 0
    10: Type: Inner VLAN
     	Nolearn Mask = 0x0, Ingress Check = 0
    	VLAN ID = 3, Registered Mask = 0x21, No Frag = 0
    	Force Untagged Packet Egress = 0x20, Limit Next Header Control = 0, Unregistered Mask = 0x1, Members = 0x21
    11: Type: Unicast
     	VID = 3, Address = 02:60:c8:00:00:04, Unicast_type = Persistent, port_num = 0x0, Secure = 1, Blocked = 0, Touch = 0, Agable = 0
    12: Type: Unicast
     	VID = 3, Address = 02:60:c8:00:00:05, Unicast_type = Persistent, port_num = 0x0, Secure = 1, Blocked = 0, Touch = 0, Agable = 0
    30: Type: Unicast
     	VID = 2, Address = c8:60:8f:f4:5f:8d, Unicast_type = Untouched, port_num = 0x2, Secure = 0, Blocked = 0, Touch = 0, Agable = 1
    31: Type: Unicast
     	VID = 2, Address = 00:60:c8:05:fd:07, Unicast_type = Untouched, port_num = 0x2, Secure = 0, Blocked = 0, Touch = 0, Agable = 1
    46: Type: Unicast
     	VID = 2, Address = bc:f1:f2:28:d5:8a, Unicast_type = Touched, port_num = 0x2, Secure = 0, Blocked = 0, Touch = 1, Agable = 1
    48: Type: Unicast
     	VID = 2, Address = d0:ec:35:3a:76:02, Unicast_type = Touched, port_num = 0x2, Secure = 0, Blocked = 0, Touch = 1, Agable = 1
    51: Type: Unicast
     	VID = 2, Address = 90:1b:0e:07:dd:32, Unicast_type = Untouched, port_num = 0x2, Secure = 0, Blocked = 0, Touch = 0, Agable = 1
    55: Type: Unicast
     	VID = 2, Address = 00:60:c8:63:06:a1, Unicast_type = Untouched, port_num = 0x2, Secure = 0, Blocked = 0, Touch = 0, Agable = 1
    58: Type: Unicast
     	VID = 2, Address = 00:60:c8:07:fe:83, Unicast_type = Untouched, port_num = 0x2, Secure = 0, Blocked = 0, Touch = 0, Agable = 1
    59: Type: Unicast
     	VID = 2, Address = 00:60:c8:06:e2:4f, Unicast_type = Untouched, port_num = 0x2, Secure = 0, Blocked = 0, Touch = 0, Agable = 1
    60: Type: Unicast
     	VID = 2, Address = f8:e9:4f:05:0a:30, Unicast_type = Untouched, port_num = 0x2, Secure = 0, Blocked = 0, Touch = 0, Agable = 1
    61: Type: Unicast
     	VID = 2, Address = 00:60:c8:08:c0:5d, Unicast_type = Touched, port_num = 0x2, Secure = 0, Blocked = 0, Touch = 1, Agable = 1
    62: Type: Unicast
     	VID = 2, Address = cc:d3:42:40:d9:30, Unicast_type = Touched, port_num = 0x2, Secure = 0, Blocked = 0, Touch = 1, Agable = 1
    63: Type: Unicast
     	VID = 2, Address = 34:1b:2d:12:c6:98, Unicast_type = Touched, port_num = 0x2, Secure = 0, Blocked = 0, Touch = 1, Agable = 1
    72: Type: Unicast
     	VID = 2, Address = 00:08:32:56:61:18, Unicast_type = Touched, port_num = 0x2, Secure = 0, Blocked = 0, Touch = 1, Agable = 1
    73: Type: Unicast
     	VID = 2, Address = 00:60:c8:63:05:e3, Unicast_type = Untouched, port_num = 0x2, Secure = 0, Blocked = 0, Touch = 0, Agable = 1
    75: Type: Unicast
     	VID = 2, Address = e8:d3:22:e2:58:b0, Unicast_type = Untouched, port_num = 0x2, Secure = 0, Blocked = 0, Touch = 0, Agable = 1
    76: Type: Unicast
     	VID = 2, Address = 00:09:0f:09:01:1a, Unicast_type = Touched, port_num = 0x2, Secure = 0, Blocked = 0, Touch = 1, Agable = 1
    93: Type: Unicast
     	VID = 2, Address = 34:1b:2d:2a:41:98, Unicast_type = Untouched, port_num = 0x2, Secure = 0, Blocked = 0, Touch = 0, Agable = 1
    112: Type: Unicast
     	VID = 2, Address = 00:60:c8:63:06:3d, Unicast_type = Touched, port_num = 0x2, Secure = 0, Blocked = 0, Touch = 1, Agable = 1
    126: Type: Unicast
     	VID = 2, Address = c4:46:06:c3:96:b0, Unicast_type = Touched, port_num = 0x2, Secure = 0, Blocked = 0, Touch = 1, Agable = 1
    

    Regards,

    Matthias

  • Hi Matthias,

    Shouldn't the VLAN interfaces inherit the MAC address from switch interface. Their MAC addresses should be the same right.

    Regards,
    Tanmay

  • Hi Tanmay,

    I tried various combinations of MAC address assignments (even the impractical ones). The duplication still persists.

    $ ip a
    1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
        link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
        inet 127.0.0.1/8 scope host lo
           valid_lft forever preferred_lft forever
        inet6 ::1/128 scope host noprefixroute
           valid_lft forever preferred_lft forever
    2: dummy0: <BROADCAST,NOARP> mtu 1500 qdisc noop state DOWN group default qlen 1000
        link/ether 6e:47:99:a1:e2:2a brd ff:ff:ff:ff:ff:ff
    3: eth0: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1000
        link/ether 02:60:c8:00:00:00 brd ff:ff:ff:ff:ff:ff
    4: xf1: <BROADCAST,MULTICAST> mtu 1500 qdisc noop master switch state DOWN group default qlen 1000
        link/ether 02:60:c8:00:00:01 brd ff:ff:ff:ff:ff:ff
    5: xg19: <BROADCAST,MULTICAST> mtu 1500 qdisc mqprio master switch state DOWN group default qlen 1000
        link/ether 02:60:c8:00:00:02 brd ff:ff:ff:ff:ff:ff
    6: cn9300: <BROADCAST,MULTICAST> mtu 1500 qdisc noop master switch state DOWN group default qlen 1000
        link/ether 02:60:c8:00:00:03 brd ff:ff:ff:ff:ff:ff
    7: xf2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mqprio master switch state UP group default qlen 1000
        link/ether 00:60:c8:63:07:95 brd ff:ff:ff:ff:ff:ff permaddr 02:60:c8:00:00:04
    8: xf4: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mqprio master switch state UP group default qlen 1000
        link/ether 00:60:c8:63:07:94 brd ff:ff:ff:ff:ff:ff permaddr 02:60:c8:00:00:05
    9: eexb_ai: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc pfifo_fast state DOWN group default qlen 1000
        link/ether 02:60:c8:00:00:09 brd ff:ff:ff:ff:ff:ff
        altname enp1s0
    10: switch: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
        link/ether 00:60:c8:63:07:95 brd ff:ff:ff:ff:ff:ff
    11: kli@switch: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
        link/ether 00:60:c8:63:07:96 brd ff:ff:ff:ff:ff:ff
        inet 10.49.115.185/23 metric 1024 brd 10.49.115.255 scope global dynamic kli
           valid_lft 85254sec preferred_lft 85254sec
    12: koni@switch: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
        link/ether 00:60:c8:63:07:95 brd ff:ff:ff:ff:ff:ff
        inet 172.30.0.1/16 brd 172.30.255.255 scope global koni
           valid_lft forever preferred_lft forever

    $ ip a
    1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
        link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
        inet 127.0.0.1/8 scope host lo
           valid_lft forever preferred_lft forever
        inet6 ::1/128 scope host noprefixroute
           valid_lft forever preferred_lft forever
    2: dummy0: <BROADCAST,NOARP> mtu 1500 qdisc noop state DOWN group default qlen 1000
        link/ether 6e:47:99:a1:e2:2a brd ff:ff:ff:ff:ff:ff
    3: eth0: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1000
        link/ether 02:60:c8:00:00:00 brd ff:ff:ff:ff:ff:ff
    4: xf1: <BROADCAST,MULTICAST> mtu 1500 qdisc noop master switch state DOWN group default qlen 1000
        link/ether 02:60:c8:00:00:01 brd ff:ff:ff:ff:ff:ff
    5: xg19: <BROADCAST,MULTICAST> mtu 1500 qdisc mqprio master switch state DOWN group default qlen 1000
        link/ether 02:60:c8:00:00:02 brd ff:ff:ff:ff:ff:ff
    6: cn9300: <BROADCAST,MULTICAST> mtu 1500 qdisc noop master switch state DOWN group default qlen 1000
        link/ether 02:60:c8:00:00:03 brd ff:ff:ff:ff:ff:ff
    7: xf2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mqprio master switch state UP group default qlen 1000
        link/ether 00:60:c8:63:07:95 brd ff:ff:ff:ff:ff:ff permaddr 02:60:c8:00:00:04
    8: xf4: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mqprio master switch state UP group default qlen 1000
        link/ether 00:60:c8:63:07:94 brd ff:ff:ff:ff:ff:ff permaddr 02:60:c8:00:00:05
    9: eexb_ai: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc pfifo_fast state DOWN group default qlen 1000
        link/ether 02:60:c8:00:00:09 brd ff:ff:ff:ff:ff:ff
        altname enp1s0
    10: switch: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
        link/ether 00:60:c8:63:07:94 brd ff:ff:ff:ff:ff:ff
    11: kli@switch: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
        link/ether 00:60:c8:63:07:96 brd ff:ff:ff:ff:ff:ff
        inet 10.49.115.185/23 metric 1024 brd 10.49.115.255 scope global dynamic kli
           valid_lft 85369sec preferred_lft 85369sec
    12: koni@switch: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
        link/ether 00:60:c8:63:07:95 brd ff:ff:ff:ff:ff:ff
        inet 172.30.0.1/16 brd 172.30.255.255 scope global koni
           valid_lft forever preferred_lft forever

    $ ip a
    1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
        link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
        inet 127.0.0.1/8 scope host lo
           valid_lft forever preferred_lft forever
        inet6 ::1/128 scope host noprefixroute
           valid_lft forever preferred_lft forever
    2: dummy0: <BROADCAST,NOARP> mtu 1500 qdisc noop state DOWN group default qlen 1000
        link/ether 6e:47:99:a1:e2:2a brd ff:ff:ff:ff:ff:ff
    3: eth0: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1000
        link/ether 02:60:c8:00:00:00 brd ff:ff:ff:ff:ff:ff
    4: xf1: <BROADCAST,MULTICAST> mtu 1500 qdisc noop master switch state DOWN group default qlen 1000
        link/ether 02:60:c8:00:00:01 brd ff:ff:ff:ff:ff:ff
    5: xg19: <BROADCAST,MULTICAST> mtu 1500 qdisc mqprio master switch state DOWN group default qlen 1000
        link/ether 02:60:c8:00:00:02 brd ff:ff:ff:ff:ff:ff
    6: cn9300: <BROADCAST,MULTICAST> mtu 1500 qdisc noop master switch state DOWN group default qlen 1000
        link/ether 02:60:c8:00:00:03 brd ff:ff:ff:ff:ff:ff
    7: xf2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mqprio master switch state UP group default qlen 1000
        link/ether 00:60:c8:63:07:95 brd ff:ff:ff:ff:ff:ff permaddr 02:60:c8:00:00:04
    8: xf4: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mqprio master switch state UP group default qlen 1000
        link/ether 00:60:c8:63:07:94 brd ff:ff:ff:ff:ff:ff permaddr 02:60:c8:00:00:05
    9: eexb_ai: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc pfifo_fast state DOWN group default qlen 1000
        link/ether 02:60:c8:00:00:09 brd ff:ff:ff:ff:ff:ff
        altname enp1s0
    10: switch: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
        link/ether 00:60:c8:63:07:96 brd ff:ff:ff:ff:ff:ff
    11: kli@switch: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
        link/ether 00:60:c8:63:07:96 brd ff:ff:ff:ff:ff:ff
        inet 10.49.115.185/23 metric 1024 brd 10.49.115.255 scope global dynamic kli
           valid_lft 85495sec preferred_lft 85495sec
    12: koni@switch: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
        link/ether 00:60:c8:63:07:95 brd ff:ff:ff:ff:ff:ff
        inet 172.30.0.1/16 brd 172.30.255.255 scope global koni
           valid_lft forever preferred_lft forever

    $ ip a
    1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
        link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
        inet 127.0.0.1/8 scope host lo
           valid_lft forever preferred_lft forever
        inet6 ::1/128 scope host noprefixroute
           valid_lft forever preferred_lft forever
    2: dummy0: <BROADCAST,NOARP> mtu 1500 qdisc noop state DOWN group default qlen 1000
        link/ether 6e:47:99:a1:e2:2a brd ff:ff:ff:ff:ff:ff
    3: eth0: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1000
        link/ether 02:60:c8:00:00:00 brd ff:ff:ff:ff:ff:ff
    4: xf1: <BROADCAST,MULTICAST> mtu 1500 qdisc noop master switch state DOWN group default qlen 1000
        link/ether 02:60:c8:00:00:01 brd ff:ff:ff:ff:ff:ff
    5: xg19: <BROADCAST,MULTICAST> mtu 1500 qdisc mqprio master switch state DOWN group default qlen 1000
        link/ether 02:60:c8:00:00:02 brd ff:ff:ff:ff:ff:ff
    6: cn9300: <BROADCAST,MULTICAST> mtu 1500 qdisc noop master switch state DOWN group default qlen 1000
        link/ether 02:60:c8:00:00:03 brd ff:ff:ff:ff:ff:ff
    7: xf2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mqprio master switch state UP group default qlen 1000
        link/ether 00:60:c8:63:07:95 brd ff:ff:ff:ff:ff:ff permaddr 02:60:c8:00:00:04
    8: xf4: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mqprio master switch state UP group default qlen 1000
        link/ether 00:60:c8:63:07:94 brd ff:ff:ff:ff:ff:ff permaddr 02:60:c8:00:00:05
    9: eexb_ai: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc pfifo_fast state DOWN group default qlen 1000
        link/ether 02:60:c8:00:00:09 brd ff:ff:ff:ff:ff:ff
        altname enp1s0
    10: switch: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
        link/ether 00:60:c8:63:07:96 brd ff:ff:ff:ff:ff:ff
    11: kli@switch: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
        link/ether 00:60:c8:63:07:96 brd ff:ff:ff:ff:ff:ff
        inet 10.49.115.185/23 metric 1024 brd 10.49.115.255 scope global dynamic kli
           valid_lft 61428sec preferred_lft 61428sec
    12: koni@switch: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
        link/ether 00:60:c8:63:07:96 brd ff:ff:ff:ff:ff:ff
        inet 172.30.0.1/16 brd 172.30.255.255 scope global koni
           valid_lft forever preferred_lft forever

    Regards,

    Matthias

  • Hi Matthias,

    This is weird. I couldn't see anything which can also explain this in The ALE entries. Can we have a call to debug this issue further.

    Regards,
    Tanmay

  • Hi Tanmay,

    Sure. I have time for a call tomorrow. I guess you can see my e-mail address and send me an invitation?

    Regards,

    Matthias

  • Hi Tanmay,

    I found the source of the pauses in duplication.

    To check the duplications I used another Jacinto board with CPSW9G. After changing the MAC address the rx_port_mask_drop counter of the receiving board increases. So the duplication is still happening, I just can't see it with tcpdump.

    I now use another machine and the duplication persists.

    Regards,

    Matthias

  • Hi Matthias,

    I found the source of the pauses in duplication.

    But why would there be pauses for this. Are they coming when you change the MAC address?

    About the call, I think we will be able to tomorrow 3pm IST. I think you are in europe time-zone. So should also be feasible  for you. Let me send you an invite over email.

    Regards,
    Tanmay

  • Hi Tanmay,

    Yes, I have pauses when I change the MAC address. But I also have the pauses every 4 minutes. I don't really understand what's causing this. Since this is the receiving part for network packets, which are not addressed to this board, I'm not to concerned about it at the moment.

    I was able to debug the our problem a bit further.

    In MAC mode:

    - When I change the MAC address of the bridge interface to the MAC address used by our VLAN interface (kli), the duplications stop.

    In switch mode:

    - Changing the MAC address of the bridge interface doesn't stop the duplications.

    - However, if the MAC address of the bridge interface is different than that of the VLAN interface, I see every duplicated packet twice. Probably from the switch HW and linux settings. Changing the bridge MAC back to the same MAC as the VLAN interface, makes the second duplications disapear.

    My conclusion so far is, that your first suspicion was correct. The different MAC addresses cause the duplication. In software, I can disable this by setting the same MAC addresses. But somehow this doesn't apply to the HW in switch mode. There the duplications persist.

    Regards,

    Matthias

  • Hi Tanmay,

    I think the error is more or less clear to me now. 

    In switch mode the ALE table of the switch doesn't contain any entry for the MAC addresses of the host system. This leads to the packets, addressed to the host, being send out on every port with the same VLAN ID. Which includes the host port and the port connected to the other system.

    Host system network interfaces:

     $ ip a
    1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
        link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
        inet 127.0.0.1/8 scope host lo
           valid_lft forever preferred_lft forever
        inet6 ::1/128 scope host noprefixroute
           valid_lft forever preferred_lft forever
    2: dummy0: <BROADCAST,NOARP> mtu 1500 qdisc noop state DOWN group default qlen 1000
        link/ether 6e:47:99:a1:e2:2a brd ff:ff:ff:ff:ff:ff
    3: eth0: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1000
        link/ether 02:60:c8:00:00:00 brd ff:ff:ff:ff:ff:ff
    4: xf1: <BROADCAST,MULTICAST> mtu 1500 qdisc noop master switch state DOWN group default qlen 1000
        link/ether 00:60:c8:63:07:97 brd ff:ff:ff:ff:ff:ff permaddr 02:60:c8:00:00:01
    5: xg19: <BROADCAST,MULTICAST> mtu 1500 qdisc mqprio master switch state DOWN group default qlen 1000
        link/ether 02:60:c8:00:00:02 brd ff:ff:ff:ff:ff:ff
    6: cn9300: <BROADCAST,MULTICAST> mtu 1500 qdisc noop master switch state DOWN group default qlen 1000
        link/ether 02:60:c8:00:00:03 brd ff:ff:ff:ff:ff:ff
    7: xf2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mqprio master switch state UP group default qlen 1000
        link/ether 00:60:c8:63:07:95 brd ff:ff:ff:ff:ff:ff permaddr 02:60:c8:00:00:04
    8: xf4: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mqprio master switch state UP group default qlen 1000
        link/ether 00:60:c8:63:07:94 brd ff:ff:ff:ff:ff:ff permaddr 02:60:c8:00:00:05
    9: eexb_ai: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc pfifo_fast state DOWN group default qlen 1000
        link/ether 02:60:c8:00:00:09 brd ff:ff:ff:ff:ff:ff
        altname enp1s0
    10: switch: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
        link/ether 00:60:c8:63:07:97 brd ff:ff:ff:ff:ff:ff
    11: kli@switch: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
        link/ether 00:60:c8:63:07:96 brd ff:ff:ff:ff:ff:ff
        inet 10.49.115.185/23 metric 1024 brd 10.49.115.255 scope global dynamic kli
           valid_lft 85247sec preferred_lft 85247sec
    12: koni@switch: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
        link/ether 00:60:c8:63:07:97 brd ff:ff:ff:ff:ff:ff
        inet 172.30.0.1/16 brd 172.30.255.255 scope global koni
           valid_lft forever preferred_lft forever

    Host system ALE table:

     $ sudo ethtool -d xf2
    K3 CPSW dump version: 1, len: 11704
    (Missing registers in memory space can be considered as zero valued)
    --------------------------------------------------------------------
    cpsw-nuss regdump: number of Registers:(16)
    00000000:reg(6BA03102)
    00000010:reg(000000FF)
    cpsw-nuss-rgmii-status regdump: number of Registers:(16)
    cpsw-nuss-mdio regdump: number of Registers:(128)
    00000f00:reg(00070907)
    00000f04:reg(8100013F)
    00000f08:reg(00000F07)
    00000f0c:reg(00000007)
    00000f10:reg(00000003)
    00000f20:reg(00000001)
    00000f30:reg(00000001)
    00000f38:reg(FFFFFFFF)
    00000f80:reg(63E20A42)
    cpsw-nu regdump: number of Registers:(144)
    00020000:reg(6BA82902)
    00020004:reg(00006004)
    00020014:reg(0000007F)
    00020020:reg(00003001)
    00020024:reg(0000000B)
    00020028:reg(00000008)
    00020030:reg(FFFFFFFF)
    00020038:reg(FFFFFFFF)
    0002003c:reg(FFFFFFFF)
    00020050:reg(88A88100)
    00020100:reg(000007E8)
    00020104:reg(000007E8)
    00020108:reg(000007E8)
    0002010c:reg(000007E8)
    00020110:reg(000007E8)
    00020114:reg(000007E8)
    00020118:reg(000007E8)
    0002011c:reg(000007E8)
    cpsw-nu-p0 regdump: number of Registers:(402)
    00021004:reg(00010001)
    00021008:reg(00000052)
    00021010:reg(00000002)
    00021014:reg(00000001)
    00021018:reg(76543210)
    00021020:reg(76543210)
    00021024:reg(000007E8)
    00021028:reg(01245678)
    00021038:reg(00000060)
    00021180:reg(1F1F1F1F)
    00021184:reg(1F1F1F1F)
    00021190:reg(1F1F1F1F)
    00021194:reg(1F1F1F1F)
    00021300:reg(04030201)
    00021304:reg(08070605)
    cpsw-nu-pn regdump: number of Registers:(468)
    00022008:reg(00001004)
    00022010:reg(00000001)
    0002201c:reg(00009000)
    00022020:reg(76543210)
    00022024:reg(000005EE)
    00022028:reg(01245678)
    00022038:reg(00000062)
    00022040:reg(00000008)
    00022048:reg(001312D0)
    00022050:reg(0000FF00)
    00022180:reg(1F1F1F1F)
    00022184:reg(1F1F1F1F)
    00022190:reg(1F1F1F1F)
    00022194:reg(1F1F1F1F)
    00022314:reg(001E0000)
    00022320:reg(00040000)
    00022334:reg(E0000000)
    0002233c:reg(003F0000)
    000223a4:reg(0000000C)
    cpsw-nu-cpts regdump: number of Registers:(38)
    0003d000:reg(4E8A010C)
    0003d004:reg(00020021)
    0003d010:reg(81F9A69B)
    0003d028:reg(00000001)
    0003d044:reg(185B398B)
    cpsw-nu-ale regdump: number of Registers:(160)
    0003e000:reg(00290105)
    0003e004:reg(80000C01)
    0003e008:reg(80000105)
    0003e010:reg(0004E200)
    0003e014:reg(00002580)
    0003e020:reg(00000010)
    0003e034:reg(00000080)
    0003e038:reg(00030100)
    0003e03c:reg(5E7FFF13)
    0003e040:reg(00000003)
    0003e054:reg(00000003)
    0003e058:reg(00000003)
    0003e100:reg(000F0000)
    0003e120:reg(00000007)
    0003e12c:reg(80000000)
    0003e134:reg(00008000)
    0003e138:reg(00000007)
    0003e13c:reg(00008000)
    --------------------------
    Number of ALE entries: 512
    0: Type: Inner VLAN
            Nolearn Mask = 0x0, Ingress Check = 0
            VLAN ID = 0, Registered Mask = 0x7f, No Frag = 0
            Force Untagged Packet Egress = 0x7f, Limit Next Header Control = 0, Unregistered Mask = 0x7f, Members = 0x7f
    1: Type: Multicast
            Address = 01:80:c2:00:00:00, Multicast_State = Blocking/Forwarding/Learning, Super, port_mask = 0x1
    2: Type: Unicast
            VID = 1, Address = 00:60:c8:63:07:95, Unicast_type = Persistent, port_num = 0x0, Secure = 1, Blocked = 1, Touch = 0, Agable = 0
    3: Type: Inner VLAN
            Nolearn Mask = 0x0, Ingress Check = 0
            VLAN ID = 2, Registered Mask = 0x61, No Frag = 0
            Force Untagged Packet Egress = 0x60, Limit Next Header Control = 0, Unregistered Mask = 0x1, Members = 0x61
    4: Type: Multicast
            Address = 33:33:00:00:00:01, Multicast_State = Forwarding, No Super, port_mask = 0x1
    5: Type: Multicast
            Address = 01:00:5e:00:00:01, Multicast_State = Forwarding, No Super, port_mask = 0x1
    6: Type: Inner VLAN
            Nolearn Mask = 0x0, Ingress Check = 0
            VLAN ID = 1, Registered Mask = 0x9, No Frag = 0
            Force Untagged Packet Egress = 0x9, Limit Next Header Control = 0, Unregistered Mask = 0x1, Members = 0x9
    7: Type: Unicast
            VID = 1, Address = 00:60:c8:63:07:94, Unicast_type = Persistent, port_num = 0x0, Secure = 1, Blocked = 1, Touch = 0, Agable = 0
    8: Type: Unicast
            VID = 2, Address = 02:60:c8:00:00:04, Unicast_type = Persistent, port_num = 0x0, Secure = 1, Blocked = 0, Touch = 0, Agable = 0
    9: Type: Unicast
            VID = 2, Address = 02:60:c8:00:00:05, Unicast_type = Persistent, port_num = 0x0, Secure = 1, Blocked = 0, Touch = 0, Agable = 0
    10: Type: Inner VLAN
            Nolearn Mask = 0x0, Ingress Check = 0
            VLAN ID = 3, Registered Mask = 0x21, No Frag = 0
            Force Untagged Packet Egress = 0x20, Limit Next Header Control = 0, Unregistered Mask = 0x1, Members = 0x21
    11: Type: Unicast
            VID = 3, Address = 02:60:c8:00:00:04, Unicast_type = Persistent, port_num = 0x0, Secure = 1, Blocked = 0, Touch = 0, Agable = 0
    12: Type: Unicast
            VID = 3, Address = 02:60:c8:00:00:05, Unicast_type = Persistent, port_num = 0x0, Secure = 1, Blocked = 0, Touch = 0, Agable = 0
    13: Type: Inner VLAN
            Nolearn Mask = 0x0, Ingress Check = 0
            VLAN ID = 7, Registered Mask = 0x10, No Frag = 0
            Force Untagged Packet Egress = 0x10, Limit Next Header Control = 0, Unregistered Mask = 0x0, Members = 0x10
    14: Type: Inner VLAN
            Nolearn Mask = 0x0, Ingress Check = 0
            VLAN ID = 6, Registered Mask = 0x8, No Frag = 0
            Force Untagged Packet Egress = 0x8, Limit Next Header Control = 0, Unregistered Mask = 0x0, Members = 0x8
    15: Type: Inner VLAN
            Nolearn Mask = 0x0, Ingress Check = 0
            VLAN ID = 43, Registered Mask = 0x4, No Frag = 0
            Force Untagged Packet Egress = 0x4, Limit Next Header Control = 0, Unregistered Mask = 0x0, Members = 0x4
    17: Type: Unicast
            VID = 2, Address = e8:d3:22:d2:88:b5, Unicast_type = Untouched, port_num = 0x2, Secure = 0, Blocked = 0, Touch = 0, Agable = 1
    18: Type: Unicast
            VID = 2, Address = e8:d3:22:d6:e5:35, Unicast_type = Untouched, port_num = 0x2, Secure = 0, Blocked = 0, Touch = 0, Agable = 1
    19: Type: Unicast
            VID = 2, Address = 68:79:09:ae:42:8d, Unicast_type = Touched, port_num = 0x2, Secure = 0, Blocked = 0, Touch = 1, Agable = 1
    22: Type: Unicast
            VID = 2, Address = 8c:94:1f:81:28:b1, Unicast_type = Untouched, port_num = 0x2, Secure = 0, Blocked = 0, Touch = 0, Agable = 1
    23: Type: Unicast
            VID = 2, Address = 00:ee:ab:8f:40:ec, Unicast_type = Untouched, port_num = 0x2, Secure = 0, Blocked = 0, Touch = 0, Agable = 1
    24: Type: Unicast
            VID = 2, Address = e8:d3:22:e2:5a:b5, Unicast_type = Untouched, port_num = 0x2, Secure = 0, Blocked = 0, Touch = 0, Agable = 1
    26: Type: Unicast
            VID = 2, Address = ec:c0:18:97:31:ec, Unicast_type = Untouched, port_num = 0x2, Secure = 0, Blocked = 0, Touch = 0, Agable = 1
    27: Type: Unicast
            VID = 2, Address = e8:d3:22:d6:c5:b5, Unicast_type = Untouched, port_num = 0x2, Secure = 0, Blocked = 0, Touch = 0, Agable = 1
    28: Type: Unicast
            VID = 2, Address = 04:a7:41:53:0d:ec, Unicast_type = Untouched, port_num = 0x2, Secure = 0, Blocked = 0, Touch = 0, Agable = 1
    29: Type: Unicast
            VID = 2, Address = 5c:31:92:26:31:b5, Unicast_type = Untouched, port_num = 0x2, Secure = 0, Blocked = 0, Touch = 0, Agable = 1
    30: Type: Unicast
            VID = 2, Address = c0:f8:7f:f9:dd:9d, Unicast_type = Untouched, port_num = 0x2, Secure = 0, Blocked = 0, Touch = 0, Agable = 1
    31: Type: Unicast
            VID = 2, Address = f8:e9:4f:0b:af:35, Unicast_type = Untouched, port_num = 0x2, Secure = 0, Blocked = 0, Touch = 0, Agable = 1
    32: Type: Unicast
            VID = 2, Address = 70:da:48:e2:a5:0e, Unicast_type = Untouched, port_num = 0x2, Secure = 0, Blocked = 0, Touch = 0, Agable = 1
    33: Type: Unicast
            VID = 2, Address = 34:1b:2d:12:c6:98, Unicast_type = Touched, port_num = 0x2, Secure = 0, Blocked = 0, Touch = 1, Agable = 1
    34: Type: Unicast
            VID = 2, Address = e8:d3:22:e2:70:35, Unicast_type = Untouched, port_num = 0x2, Secure = 0, Blocked = 0, Touch = 0, Agable = 1
    35: Type: Unicast
            VID = 2, Address = e8:d3:22:e6:cf:b5, Unicast_type = Untouched, port_num = 0x2, Secure = 0, Blocked = 0, Touch = 0, Agable = 1
    36: Type: Unicast
            VID = 2, Address = ec:c0:18:97:2d:6c, Unicast_type = Untouched, port_num = 0x2, Secure = 0, Blocked = 0, Touch = 0, Agable = 1
    37: Type: Unicast
            VID = 2, Address = 5c:31:92:2a:68:b5, Unicast_type = Untouched, port_num = 0x2, Secure = 0, Blocked = 0, Touch = 0, Agable = 1
    38: Type: Unicast
            VID = 2, Address = f8:39:18:0b:d4:30, Unicast_type = Untouched, port_num = 0x2, Secure = 0, Blocked = 0, Touch = 0, Agable = 1
    39: Type: Unicast
            VID = 2, Address = 60:26:aa:bf:4c:1d, Unicast_type = Untouched, port_num = 0x2, Secure = 0, Blocked = 0, Touch = 0, Agable = 1
    42: Type: Unicast
            VID = 2, Address = cc:d3:42:40:d9:30, Unicast_type = Touched, port_num = 0x2, Secure = 0, Blocked = 0, Touch = 1, Agable = 1
    43: Type: Unicast
            VID = 2, Address = e8:d3:22:d2:8a:35, Unicast_type = Untouched, port_num = 0x2, Secure = 0, Blocked = 0, Touch = 0, Agable = 1
    44: Type: Unicast
            VID = 2, Address = ac:1a:3d:b3:af:58, Unicast_type = Touched, port_num = 0x2, Secure = 0, Blocked = 0, Touch = 1, Agable = 1
    45: Type: Unicast
            VID = 2, Address = 00:12:91:50:b1:56, Unicast_type = Touched, port_num = 0x2, Secure = 0, Blocked = 0, Touch = 1, Agable = 1
    46: Type: Unicast
            VID = 2, Address = 00:08:32:56:61:18, Unicast_type = Untouched, port_num = 0x2, Secure = 0, Blocked = 0, Touch = 0, Agable = 1
    47: Type: Unicast
            VID = 2, Address = c4:46:06:c3:96:b0, Unicast_type = Touched, port_num = 0x2, Secure = 0, Blocked = 0, Touch = 1, Agable = 1
    48: Type: Unicast
            VID = 2, Address = d0:ec:35:3a:76:02, Unicast_type = Touched, port_num = 0x2, Secure = 0, Blocked = 0, Touch = 1, Agable = 1
    49: Type: Unicast
            VID = 2, Address = e8:d3:22:e0:18:30, Unicast_type = Untouched, port_num = 0x2, Secure = 0, Blocked = 0, Touch = 0, Agable = 1
    50: Type: Unicast
            VID = 2, Address = e0:46:ee:29:8b:d0, Unicast_type = Touched, port_num = 0x2, Secure = 0, Blocked = 0, Touch = 1, Agable = 1
    51: Type: Unicast
            VID = 2, Address = 20:db:ea:ef:55:8d, Unicast_type = Touched, port_num = 0x2, Secure = 0, Blocked = 0, Touch = 1, Agable = 1
    52: Type: Unicast
            VID = 2, Address = f8:e9:4f:0b:ab:30, Unicast_type = Untouched, port_num = 0x2, Secure = 0, Blocked = 0, Touch = 0, Agable = 1
    54: Type: Unicast
            VID = 2, Address = 04:a7:41:53:0e:6c, Unicast_type = Untouched, port_num = 0x2, Secure = 0, Blocked = 0, Touch = 0, Agable = 1
    55: Type: Unicast
            VID = 2, Address = 04:a7:41:53:09:6c, Unicast_type = Untouched, port_num = 0x2, Secure = 0, Blocked = 0, Touch = 0, Agable = 1
    56: Type: Unicast
            VID = 2, Address = 04:a7:41:53:0c:2c, Unicast_type = Untouched, port_num = 0x2, Secure = 0, Blocked = 0, Touch = 0, Agable = 1
    57: Type: Unicast
            VID = 2, Address = 04:a7:41:53:02:ac, Unicast_type = Untouched, port_num = 0x2, Secure = 0, Blocked = 0, Touch = 0, Agable = 1
    58: Type: Unicast
            VID = 2, Address = 88:fc:5d:d9:63:2c, Unicast_type = Untouched, port_num = 0x2, Secure = 0, Blocked = 0, Touch = 0, Agable = 1
    59: Type: Unicast
            VID = 2, Address = 5c:31:92:bc:c4:35, Unicast_type = Untouched, port_num = 0x2, Secure = 0, Blocked = 0, Touch = 0, Agable = 1
    60: Type: Unicast
            VID = 2, Address = f8:e9:4f:04:e3:35, Unicast_type = Untouched, port_num = 0x2, Secure = 0, Blocked = 0, Touch = 0, Agable = 1
    61: Type: Unicast
            VID = 2, Address = e8:d3:22:d6:e6:bb, Unicast_type = Untouched, port_num = 0x2, Secure = 0, Blocked = 0, Touch = 0, Agable = 1
    62: Type: Unicast
            VID = 2, Address = 5c:31:92:bc:9d:35, Unicast_type = Untouched, port_num = 0x2, Secure = 0, Blocked = 0, Touch = 0, Agable = 1
    63: Type: Unicast
            VID = 2, Address = 3c:8b:7f:ae:14:ac, Unicast_type = Untouched, port_num = 0x2, Secure = 0, Blocked = 0, Touch = 0, Agable = 1
    64: Type: Unicast
            VID = 2, Address = 24:16:9d:0b:14:9a, Unicast_type = Untouched, port_num = 0x2, Secure = 0, Blocked = 0, Touch = 0, Agable = 1
    67: Type: Unicast
            VID = 2, Address = f8:e9:4f:0b:ae:b0, Unicast_type = Untouched, port_num = 0x2, Secure = 0, Blocked = 0, Touch = 0, Agable = 1
    68: Type: Unicast
            VID = 2, Address = 08:f4:f0:8d:76:0e, Unicast_type = Untouched, port_num = 0x2, Secure = 0, Blocked = 0, Touch = 0, Agable = 1
    69: Type: Unicast
            VID = 2, Address = e8:d3:22:e2:58:b0, Unicast_type = Touched, port_num = 0x2, Secure = 0, Blocked = 0, Touch = 1, Agable = 1
    70: Type: Unicast
            VID = 2, Address = 90:1b:0e:44:cb:9b, Unicast_type = Touched, port_num = 0x2, Secure = 0, Blocked = 0, Touch = 1, Agable = 1
    71: Type: Unicast
            VID = 2, Address = f8:e5:7e:e8:46:18, Unicast_type = Untouched, port_num = 0x2, Secure = 0, Blocked = 0, Touch = 0, Agable = 1
    73: Type: Unicast
            VID = 2, Address = c8:60:8f:f4:5f:8d, Unicast_type = Untouched, port_num = 0x2, Secure = 0, Blocked = 0, Touch = 0, Agable = 1
    76: Type: Unicast
            VID = 2, Address = 68:79:09:a2:8c:0d, Unicast_type = Touched, port_num = 0x2, Secure = 0, Blocked = 0, Touch = 1, Agable = 1
    77: Type: Unicast
            VID = 2, Address = 5c:31:92:bc:d5:3c, Unicast_type = Untouched, port_num = 0x2, Secure = 0, Blocked = 0, Touch = 0, Agable = 1
    78: Type: Unicast
            VID = 2, Address = f8:e9:4f:05:0a:30, Unicast_type = Touched, port_num = 0x2, Secure = 0, Blocked = 0, Touch = 1, Agable = 1
    79: Type: Unicast
            VID = 2, Address = cc:79:d7:63:11:2c, Unicast_type = Untouched, port_num = 0x2, Secure = 0, Blocked = 0, Touch = 0, Agable = 1
    80: Type: Unicast
            VID = 2, Address = e8:d3:22:fe:55:36, Unicast_type = Untouched, port_num = 0x2, Secure = 0, Blocked = 0, Touch = 0, Agable = 1
    81: Type: Unicast
            VID = 2, Address = 34:1b:2d:2a:41:98, Unicast_type = Touched, port_num = 0x2, Secure = 0, Blocked = 0, Touch = 1, Agable = 1
    82: Type: Unicast
            VID = 2, Address = 00:60:c8:63:06:b5, Unicast_type = Touched, port_num = 0x2, Secure = 0, Blocked = 0, Touch = 1, Agable = 1
    83: Type: Unicast
            VID = 2, Address = 28:6b:5c:64:53:18, Unicast_type = Touched, port_num = 0x2, Secure = 0, Blocked = 0, Touch = 1, Agable = 1
    85: Type: Unicast
            VID = 2, Address = e8:d3:22:da:65:b5, Unicast_type = Untouched, port_num = 0x2, Secure = 0, Blocked = 0, Touch = 0, Agable = 1
    86: Type: Unicast
            VID = 2, Address = 04:a7:41:53:0a:6c, Unicast_type = Untouched, port_num = 0x2, Secure = 0, Blocked = 0, Touch = 0, Agable = 1
    88: Type: Unicast
            VID = 2, Address = 04:a7:41:53:04:ec, Unicast_type = Touched, port_num = 0x2, Secure = 0, Blocked = 0, Touch = 1, Agable = 1
    89: Type: Unicast
            VID = 2, Address = 04:a7:41:53:08:2c, Unicast_type = Untouched, port_num = 0x2, Secure = 0, Blocked = 0, Touch = 0, Agable = 1
    92: Type: Unicast
            VID = 2, Address = 04:a7:41:53:0b:ac, Unicast_type = Untouched, port_num = 0x2, Secure = 0, Blocked = 0, Touch = 0, Agable = 1
    96: Type: Unicast
            VID = 2, Address = f8:e9:4f:0b:8b:b5, Unicast_type = Untouched, port_num = 0x2, Secure = 0, Blocked = 0, Touch = 0, Agable = 1
    97: Type: Unicast
            VID = 2, Address = 5c:31:92:bc:bf:36, Unicast_type = Untouched, port_num = 0x2, Secure = 0, Blocked = 0, Touch = 0, Agable = 1
    98: Type: Unicast
            VID = 2, Address = 5c:71:0d:cd:96:2c, Unicast_type = Untouched, port_num = 0x2, Secure = 0, Blocked = 0, Touch = 0, Agable = 1
    99: Type: Unicast
            VID = 2, Address = 04:a7:41:53:0a:ac, Unicast_type = Untouched, port_num = 0x2, Secure = 0, Blocked = 0, Touch = 0, Agable = 1
    100: Type: Unicast
            VID = 2, Address = 00:ee:ab:8f:2f:ac, Unicast_type = Untouched, port_num = 0x2, Secure = 0, Blocked = 0, Touch = 0, Agable = 1
    101: Type: Unicast
            VID = 2, Address = 00:ee:ab:08:af:6c, Unicast_type = Untouched, port_num = 0x2, Secure = 0, Blocked = 0, Touch = 0, Agable = 1
    102: Type: Unicast
            VID = 2, Address = 5c:31:92:bc:bc:b5, Unicast_type = Untouched, port_num = 0x2, Secure = 0, Blocked = 0, Touch = 0, Agable = 1
    103: Type: Unicast
            VID = 2, Address = 78:85:17:05:ef:8d, Unicast_type = Touched, port_num = 0x2, Secure = 0, Blocked = 0, Touch = 1, Agable = 1
    107: Type: Unicast
            VID = 2, Address = c0:47:0e:86:d5:d1, Unicast_type = Touched, port_num = 0x2, Secure = 0, Blocked = 0, Touch = 1, Agable = 1
    108: Type: Unicast
            VID = 2, Address = e8:d3:22:e2:5d:b5, Unicast_type = Untouched, port_num = 0x2, Secure = 0, Blocked = 0, Touch = 0, Agable = 1
    109: Type: Unicast
            VID = 2, Address = e8:d3:22:fe:3b:b5, Unicast_type = Untouched, port_num = 0x2, Secure = 0, Blocked = 0, Touch = 0, Agable = 1
    110: Type: Unicast
            VID = 2, Address = cc:79:d7:62:f1:ec, Unicast_type = Untouched, port_num = 0x2, Secure = 0, Blocked = 0, Touch = 0, Agable = 1
    111: Type: Unicast
            VID = 2, Address = 5c:71:0d:cd:bb:ec, Unicast_type = Untouched, port_num = 0x2, Secure = 0, Blocked = 0, Touch = 0, Agable = 1
    112: Type: Unicast
            VID = 2, Address = 04:a7:41:53:11:6c, Unicast_type = Untouched, port_num = 0x2, Secure = 0, Blocked = 0, Touch = 0, Agable = 1
    113: Type: Unicast
            VID = 2, Address = 00:ee:ab:8f:1f:ac, Unicast_type = Untouched, port_num = 0x2, Secure = 0, Blocked = 0, Touch = 0, Agable = 1
    114: Type: Unicast
            VID = 2, Address = e8:d3:22:d8:b6:b5, Unicast_type = Untouched, port_num = 0x2, Secure = 0, Blocked = 0, Touch = 0, Agable = 1
    115: Type: Unicast
            VID = 2, Address = e8:d3:22:d4:80:b5, Unicast_type = Untouched, port_num = 0x2, Secure = 0, Blocked = 0, Touch = 0, Agable = 1
    116: Type: Unicast
            VID = 2, Address = 04:a7:41:53:0e:ec, Unicast_type = Untouched, port_num = 0x2, Secure = 0, Blocked = 0, Touch = 0, Agable = 1
    117: Type: Unicast
            VID = 2, Address = 04:a7:41:53:03:6c, Unicast_type = Untouched, port_num = 0x2, Secure = 0, Blocked = 0, Touch = 0, Agable = 1
    118: Type: Unicast
            VID = 2, Address = f8:e9:4f:04:ec:b5, Unicast_type = Untouched, port_num = 0x2, Secure = 0, Blocked = 0, Touch = 0, Agable = 1
    119: Type: Unicast
            VID = 2, Address = e8:d3:22:e2:72:b5, Unicast_type = Untouched, port_num = 0x2, Secure = 0, Blocked = 0, Touch = 0, Agable = 1
    121: Type: Unicast
            VID = 2, Address = 04:a7:41:53:0b:2c, Unicast_type = Untouched, port_num = 0x2, Secure = 0, Blocked = 0, Touch = 0, Agable = 1
    122: Type: Unicast
            VID = 2, Address = e8:d3:22:fe:1b:35, Unicast_type = Untouched, port_num = 0x2, Secure = 0, Blocked = 0, Touch = 0, Agable = 1
    123: Type: Unicast
            VID = 2, Address = 04:a7:41:53:08:6c, Unicast_type = Untouched, port_num = 0x2, Secure = 0, Blocked = 0, Touch = 0, Agable = 1
    124: Type: Unicast
            VID = 2, Address = cc:79:d7:62:e8:6c, Unicast_type = Untouched, port_num = 0x2, Secure = 0, Blocked = 0, Touch = 0, Agable = 1
    125: Type: Unicast
            VID = 2, Address = 5c:31:92:2a:50:3c, Unicast_type = Untouched, port_num = 0x2, Secure = 0, Blocked = 0, Touch = 0, Agable = 1
    126: Type: Unicast
            VID = 2, Address = 70:61:7b:8c:b6:19, Unicast_type = Untouched, port_num = 0x2, Secure = 0, Blocked = 0, Touch = 0, Agable = 1
    127: Type: Unicast
            VID = 2, Address = cc:79:d7:62:f3:6c, Unicast_type = Untouched, port_num = 0x2, Secure = 0, Blocked = 0, Touch = 0, Agable = 1
    128: Type: Unicast
            VID = 2, Address = e8:d3:22:d6:e0:b5, Unicast_type = Untouched, port_num = 0x2, Secure = 0, Blocked = 0, Touch = 0, Agable = 1
    129: Type: Unicast
            VID = 2, Address = e8:d3:22:da:00:b5, Unicast_type = Untouched, port_num = 0x2, Secure = 0, Blocked = 0, Touch = 0, Agable = 1
    130: Type: Unicast
            VID = 2, Address = e8:d3:22:d8:b6:3b, Unicast_type = Untouched, port_num = 0x2, Secure = 0, Blocked = 0, Touch = 0, Agable = 1
    131: Type: Unicast
            VID = 2, Address = 5c:71:0d:cd:ab:2c, Unicast_type = Untouched, port_num = 0x2, Secure = 0, Blocked = 0, Touch = 0, Agable = 1
    132: Type: Unicast
            VID = 2, Address = 04:a7:41:53:0e:2c, Unicast_type = Untouched, port_num = 0x2, Secure = 0, Blocked = 0, Touch = 0, Agable = 1
    133: Type: Unicast
            VID = 2, Address = cc:79:d7:62:e9:2d, Unicast_type = Untouched, port_num = 0x2, Secure = 0, Blocked = 0, Touch = 0, Agable = 1
    134: Type: Unicast
            VID = 2, Address = e8:d3:22:fe:66:bc, Unicast_type = Untouched, port_num = 0x2, Secure = 0, Blocked = 0, Touch = 0, Agable = 1
    135: Type: Unicast
            VID = 2, Address = 00:ee:ab:8f:1f:ec, Unicast_type = Untouched, port_num = 0x2, Secure = 0, Blocked = 0, Touch = 0, Agable = 1
    137: Type: Unicast
            VID = 2, Address = 70:ea:1a:df:8d:ac, Unicast_type = Untouched, port_num = 0x2, Secure = 0, Blocked = 0, Touch = 0, Agable = 1
    138: Type: Unicast
            VID = 2, Address = 34:1b:2d:2f:f4:ad, Unicast_type = Untouched, port_num = 0x2, Secure = 0, Blocked = 0, Touch = 0, Agable = 1
    139: Type: Unicast
            VID = 2, Address = 04:a7:41:53:25:6d, Unicast_type = Untouched, port_num = 0x2, Secure = 0, Blocked = 0, Touch = 0, Agable = 1
    140: Type: Unicast
            VID = 2, Address = 5c:31:92:2a:74:b5, Unicast_type = Untouched, port_num = 0x2, Secure = 0, Blocked = 0, Touch = 0, Agable = 1
    141: Type: Unicast
            VID = 2, Address = 70:ea:1a:df:84:2c, Unicast_type = Untouched, port_num = 0x2, Secure = 0, Blocked = 0, Touch = 0, Agable = 1
    142: Type: Unicast
            VID = 2, Address = 04:a7:41:53:05:2c, Unicast_type = Untouched, port_num = 0x2, Secure = 0, Blocked = 0, Touch = 0, Agable = 1
    143: Type: Unicast
            VID = 2, Address = ec:c0:18:97:2d:2c, Unicast_type = Untouched, port_num = 0x2, Secure = 0, Blocked = 0, Touch = 0, Agable = 1
    147: Type: Unicast
            VID = 2, Address = 48:a1:70:85:8e:8d, Unicast_type = Untouched, port_num = 0x2, Secure = 0, Blocked = 0, Touch = 0, Agable = 1
    148: Type: Unicast
            VID = 2, Address = 70:da:48:e2:bb:0e, Unicast_type = Untouched, port_num = 0x2, Secure = 0, Blocked = 0, Touch = 0, Agable = 1
    149: Type: Unicast
            VID = 2, Address = 5c:b1:2e:cc:a8:6c, Unicast_type = Untouched, port_num = 0x2, Secure = 0, Blocked = 0, Touch = 0, Agable = 1
    153: Type: Unicast
            VID = 2, Address = 00:09:0f:09:01:1a, Unicast_type = Touched, port_num = 0x2, Secure = 0, Blocked = 0, Touch = 1, Agable = 1
    160: Type: Unicast
            VID = 2, Address = e4:5f:01:37:83:4b, Unicast_type = Untouched, port_num = 0x2, Secure = 0, Blocked = 0, Touch = 0, Agable = 1
    161: Type: Unicast
            VID = 2, Address = 30:d0:42:e8:41:d1, Unicast_type = Untouched, port_num = 0x2, Secure = 0, Blocked = 0, Touch = 0, Agable = 1
    162: Type: Unicast
            VID = 2, Address = bc:f1:f2:28:d5:8a, Unicast_type = Untouched, port_num = 0x2, Secure = 0, Blocked = 0, Touch = 0, Agable = 1
    163: Type: Unicast
            VID = 2, Address = 00:60:c8:05:fc:82, Unicast_type = Untouched, port_num = 0x2, Secure = 0, Blocked = 0, Touch = 0, Agable = 1
    166: Type: Unicast
            VID = 2, Address = 70:61:7b:b9:b1:9a, Unicast_type = Untouched, port_num = 0x2, Secure = 0, Blocked = 0, Touch = 0, Agable = 1
    167: Type: Unicast
            VID = 2, Address = 00:e0:4c:68:06:08, Unicast_type = Untouched, port_num = 0x2, Secure = 0, Blocked = 0, Touch = 0, Agable = 1
    168: Type: Unicast
            VID = 2, Address = 04:a7:41:53:05:6d, Unicast_type = Untouched, port_num = 0x2, Secure = 0, Blocked = 0, Touch = 0, Agable = 1
    169: Type: Unicast
            VID = 2, Address = f8:e9:4f:28:72:b6, Unicast_type = Untouched, port_num = 0x2, Secure = 0, Blocked = 0, Touch = 0, Agable = 1
    185: Type: Unicast
            VID = 2, Address = c4:cb:e1:21:91:78, Unicast_type = Touched, port_num = 0x2, Secure = 0, Blocked = 0, Touch = 1, Agable = 1
    186: Type: Unicast
            VID = 2, Address = d0:46:0c:88:99:eb, Unicast_type = Untouched, port_num = 0x2, Secure = 0, Blocked = 0, Touch = 0, Agable = 1
    188: Type: Unicast
            VID = 2, Address = 00:60:c8:07:1f:7b, Unicast_type = Untouched, port_num = 0x2, Secure = 0, Blocked = 0, Touch = 0, Agable = 1
    189: Type: Unicast
            VID = 2, Address = 88:fc:5d:d9:5f:2c, Unicast_type = Untouched, port_num = 0x2, Secure = 0, Blocked = 0, Touch = 0, Agable = 1
    190: Type: Unicast
            VID = 2, Address = 00:60:c8:08:9b:28, Unicast_type = Untouched, port_num = 0x2, Secure = 0, Blocked = 0, Touch = 0, Agable = 1
    191: Type: Unicast
            VID = 2, Address = 00:60:c8:08:3a:1a, Unicast_type = Untouched, port_num = 0x2, Secure = 0, Blocked = 0, Touch = 0, Agable = 1
    193: Type: Unicast
            VID = 2, Address = f8:e9:4f:0b:b9:35, Unicast_type = Untouched, port_num = 0x2, Secure = 0, Blocked = 0, Touch = 0, Agable = 1
    194: Type: Unicast
            VID = 2, Address = 5c:31:92:bc:a5:bc, Unicast_type = Untouched, port_num = 0x2, Secure = 0, Blocked = 0, Touch = 0, Agable = 1
    195: Type: Unicast
            VID = 2, Address = 74:88:bb:35:7d:b1, Unicast_type = Touched, port_num = 0x2, Secure = 0, Blocked = 0, Touch = 1, Agable = 1
    196: Type: Unicast
            VID = 2, Address = 68:79:09:98:13:0d, Unicast_type = Touched, port_num = 0x2, Secure = 0, Blocked = 0, Touch = 1, Agable = 1
    198: Type: Unicast
            VID = 2, Address = 98:a2:c0:cc:29:1e, Unicast_type = Touched, port_num = 0x2, Secure = 0, Blocked = 0, Touch = 1, Agable = 1
    199: Type: Unicast
            VID = 2, Address = 04:a7:41:53:0f:2c, Unicast_type = Untouched, port_num = 0x2, Secure = 0, Blocked = 0, Touch = 0, Agable = 1
    200: Type: Unicast
            VID = 2, Address = 70:61:7b:fd:21:19, Unicast_type = Untouched, port_num = 0x2, Secure = 0, Blocked = 0, Touch = 0, Agable = 1
    203: Type: Unicast
            VID = 2, Address = 00:60:c8:64:7c:02, Unicast_type = Touched, port_num = 0x2, Secure = 0, Blocked = 0, Touch = 1, Agable = 1
    206: Type: Unicast
            VID = 2, Address = f8:e9:4f:0a:5c:bc, Unicast_type = Untouched, port_num = 0x2, Secure = 0, Blocked = 0, Touch = 0, Agable = 1
    226: Type: Unicast
            VID = 2, Address = 00:60:c8:63:05:e3, Unicast_type = Untouched, port_num = 0x2, Secure = 0, Blocked = 0, Touch = 0, Agable = 1
    253: Type: Unicast
            VID = 2, Address = f4:93:9f:f7:1e:af, Unicast_type = Untouched, port_num = 0x2, Secure = 0, Blocked = 0, Touch = 0, Agable = 1

    The question now is, is this expected behavior or is this a bug in the driver/switch HW? Can't the switch learn the addresses of the host port? To me it seems quite necessary, if the switch is operated in switch mode. 

    Or did we miss some configuration?

    Regards,

    Matthias

  • Hi Tanmay,

    We use SDK 11.0.0.21 (pdk_j784s4_11_00_00_21)

    And here's the script from out call.

    #!/bin/bash

    ip link del dev switch

    ip link add name switch type bridge
    ip link set dev switch type bridge ageing_time 1000

    ip link set dev xf2 down
    ip link set dev xf4 down

    devlink dev param set platform/c000000.ethernet name switch_mode value true cmode runtime

    ip link set dev xf2 master switch
    ip link set dev xf4 master switch

    ip link set dev switch type bridge vlan_filtering 1
    bridge vlan add dev switch vid 1
    bridge vlan add dev switch vid 1 pvid 1 untagged self


    ip link set dev switch up
    ip link set dev xf2 up
    ip link set dev xf4 up

    ip a add "192.168.0.1/24" dev switch

  • Hi Tanmay,

    I was able to create a functional configuration.

    (I don't know why, but I can't insert code blocks anymore. So I have to post my script directly)

    >>>>

    #!/bin/bash
    ip link set dev xf2 down
    ip link set dev xf4 down

    devlink dev param set platform/c000000.ethernet name switch_mode value true cmode runtime

    ip link add name switch type bridge
    ip link set dev switch type bridge ageing_time 1000
    ip link set dev xf2 up
    ip link set dev xf4 up
    ip link set dev xf2 master switch
    ip link set dev xf4 master switch

    ip link set dev switch type bridge vlan_filtering 1

    bridge vlan add dev xf2 vid 2 pvid untagged master
    bridge vlan add dev xf4 vid 2 pvid untagged master
    bridge vlan add dev switch vid 2 self
    bridge vlan add dev switch vid 2 pvid tagged self

    bridge vlan add dev switch vid 1 self # <---- add VLAN as a Bridge Entry
    bridge vlan add dev switch vid 1 pvid untagged self # <---- add cpu port to VLAN 1

    ip link set dev switch up
    ip link set dev xf2 up
    ip link set dev xf4 up


    ip link add link switch name koni type vlan id 2
    ip link set dev koni up
    ip addr add "172.30.0.1/16" dev koni

    >>>>

    This creates a bridge interface with the MAC of one of the switch ports and a VLAN interface with the same MAC. Unfortunately, this doesn't cover our use case. We need the switch ports "xf2" and "xf4" to have a separate MAC than the VLAN interface "koni". As soon as I change the MAC address from "koni" to a non-switch port one, we get the duplications.

    I'm also a bit confused by the documentation to add another VLAN (3.2.2.10.3.2.3.1. CPSWng Native Ethernet — Processor SDK Linux for TDA4VM Documentation). It states these two commands have to be executed:

    >>>>

    bridge vlan add dev br0 vid 100 self <---- add VLAN as a Bridge Entry
    bridge vlan add dev br0 vid 100 pvid untagged self <---- Add cpu port to VLAN100>

    >>>>

    To me, they both change the same value. This can also be observed with "bridge vlan show". But according to the comments and the documentation, they do two different things and are both necessary.

    1. Is there a way to achive different MAC addresses for the switch ports and the VLAN interfaces without duplications?

    2. What is the difference between the two similar looking commands?

    Regards,

    Matthias

  • Hi Matthias,

    We need the switch ports "xf2" and "xf4" to have a separate MAC than the VLAN interface "koni"

    Why is this required? In general, the bridge will adopt the hardware address of one the daughter interfaces and work with it. It isn't necessary to have a separate MAC address for bridge. It is not a separate hardware device.

    Infact, once you have the bridge, the MAC addresses of other hardware interfaces are not used for anything L3+.

    Currently with CPSW driver, there is no call back for setting bridge's MAC address. So for the routing table, its an unknown address, so it will be duplicated.

    You can manually add the bridge's new MAC address to routing table and this should resolve the issue.

    Regards,
    Tanmay

  • Hi, Tanmay,

    We use CPSW9G as a Profinet switch. This requires the VLAN interfaces to have a different MAC address than the switch ports. The MAC address of the bridge itself is not important.

    Can you also comment on my second question? What is the difference between these two commands?

    bridge vlan add dev br0 vid 100 self <---- add VLAN as a Bridge Entry
    bridge vlan add dev br0 vid 100 pvid untagged self <---- Add cpu port to VLAN100>

    They seem to set the same value.

    Regards, 
    Matthias

  • Hi Matthias,

    Can you also comment on my second question? What is the difference between these two commands?

    So the first command will add the vid 100 to the switch as a registered vid for the br0 (host) port.

    The second command will then do the following two things:

    1. It will set the vlan id 100 to be pvid. i.e. All the traffic coming from any port will get the VLAN tag 100. Its not necessary to have the pvid tag. You can keep the pvid as 1 you would have done in the commands before this.
    2. It will make all the packets with vid 100 egress as untagged packets. i.e., it will remove their VLAN tags for egress. So this depends on how you are using the VLANs. If its for the entire network, you would want this to be tagged, if its something to do with switch internal function, you can make it untagged.

    Hope this clarifies things.

    Regards,
    Tanmay

  • Hi Tanmay,

    Thanks for your reply. 

    So these really are two separate commands? I really need to add the VID without any flags like "PVID" and "tagged/untagged" and then I have to change the setting with the second command?

    If I understand you correctly I can ommit the PVID. I can keep it as 1 and don't have to set it when adding VID 100. I can also use "tagged/untagged" according to my use case.

    So these are valid and necessary commands? I have to run both of them for the switch to work correctly?

    bridge vlan add dev br0 vid 100 self
    bridge vlan add dev br0 vid 100 tagged self

    The fact that I specifically use tagged/untagged on the second command makes TI's switch behave differently when applying the configuration?

    I always thought, omitting the "untagged" flag will set it to "tagged" by default.

    Regards,
    Matthias

  • Hi Mattias,

    If I understand you correctly I can ommit the PVID. I can keep it as 1 and don't have to set it when adding VID 100. I can also use "tagged/untagged" according to my use case.

    Correct. You can tailor the bridge interface according to your needs.

    So these are valid and necessary commands? I have to run both of them for the switch to work correctly?

    Yes. That would be the case.

    The fact that I specifically use tagged/untagged on the second command makes TI's switch behave differently when applying the configuration?

    I need to check what the default behaviour is, but the tagged vs untagged will make the switch behave differently.

    Regards,
    Tanmay

  • Hi,

    I need to check what the default behaviour is

    The default is tagged. But it doesn't hurt to specify.

    Regards,
    Tanmay

  • Hi Tanmay,

    We still experience problems with this. Can you please provide me with your working configuration, so I can test it on my system?

    Somehow we are missing something and can't pin it down.

    Regards,

    Matthias

  • Hi Matthias,

    Sorry, I thought as we were talking on the other thread about bridge commands and this was resolved. Apologies for this oversight.

    The following is exact script I have tested with linux kernel 6.6.32

    ip link set dev eth1 down
    ip link set dev eth2 down
    ip link set dev eth3 down
    ip link set dev eth4 down
    sleep 1
    
    devlink dev param set platform/c000000.ethernet \
    name switch_mode value true cmode runtime
    
    ethtool -L eth1 tx 8
    ethtool -L eth2 tx 8
    ethtool -L eth3 tx 8
    ethtool -L eth4 tx 8
    sleep 1
    
    ip link add name br0 type bridge
    ip link set dev br0 type bridge ageing_time 1000
    ip link set dev eth1 up
    ip link set dev eth2 up
    ip link set dev eth3 up
    ip link set dev eth4 up
    sleep 5
    ip link set dev eth1 master br0
    ip link set dev eth2 master br0
    ip link set dev eth3 master br0
    ip link set dev eth4 master br0
    
    ip link set dev br0 type bridge vlan_filtering 1
    bridge vlan add dev br0 vid 1 self
    bridge vlan add dev br0 vid 1 pvid 1 untagged self
    sleep 1
    ifconfig eth1 0.0.0.0
    ifconfig eth2 0.0.0.0
    ifconfig eth3 0.0.0.0
    ifconfig eth4 0.0.0.0
    ip link set dev br0 address `ip link show dev eth2 | tail -1 | awk '{print $2}'`
    ifconfig br0 up
    ifconfig br0 192.168.1.240
    

    It works with this.

    Can you check if only this script works for you? We can then discuss about MAC address management further after this.

    Regards,
    Tanmay

  • Hi Tanmay

    Could you also test with SDK 11.0 (Linux kernel 6.12.17), please? That's what we are running here.

    Regards

    Daniel

  • Hi Daniel,

    Could you also test with SDK 11.0 (Linux kernel 6.12.17), please? That's what we are running here.

    Sure, I will do that. It will take some time for me to get to it though. Please expect a response by Wednesday next week. In the meantime, do let me know if you are facing issues with this script as well.

    Regards,
    Tanmay

  • Hi Tanmay,

    Thanks for the configuration. I will test it on our system.

    Could you also provide a working configuration with two separate VLANs for eth1/eth2 and eth3/eth4. As this is closer to our use case and the part were we experience basically all of our problems. Unfortunately, to me the documentation is not clear enough on how to achive the correct switch configuration for this use case.

    I.e.:

    - eth1 and eth2 use VID 2 and connect to a virtual VLAN interface iface1 with VID 2. Egress on eth1/eth2 is untagged and PVID is 2.

    - eth3 and eth4 use VID 3 and connect to a virtual VLAN interface iface2 with VID 3. Egress on eth3/eth4 is tagged and there is no PVID.

    - br0 has no IP and iface1 and iface2 lie in two separate subnets

    Here a picture describing our scenario:

    Regards,

    Matthias

  • Hi Tanmay,

    This configuration works. 

    Please try to implement the use case I described.

    Regards,

    Matthias