Hello,
I put mstpd stack in my Linux embedded system, but I have some troubles with TCN.
My product is a managed switch. I support BPDU in Kernel driver.
I use mstpd in RSTP mode.
I made a ring with 3 switches.
On one switch I have this :

br0 CIST info
  enabled         yes
  bridge id       8.000.00:XX:XX:82:00:71
  designated root 0.000.00:E0:0F:B4:1C:B0
  regional root   8.000.00:XX:XX:82:00:71
  root port       eth0.sw4 (#4)
  path cost     400000     internal path cost   0
  max age       20         bridge max age       20
  forward delay 15         bridge forward delay 15
  tx hold count 6          max hops             20
  hello time    2          ageing time          300
  force protocol version     rstp
  time since topology change 0
  topology change count      3215
  topology change            yes
  topology change port       eth0.sw1
  last topology change port  eth0.sw1

br0:eth0.sw1 CIST info
  enabled            yes                     role                 Designated
  port id            8.001                   state                forwarding
  external port cost 200000                  admin external cost  200000
  internal port cost 200000                  admin internal cost  0
  designated root    0.000.00:E0:0F:B4:1C:B0 dsgn external cost   400000
  dsgn regional root 8.000.00:XX:XX:82:00:71 dsgn internal cost   0
  designated bridge  8.000.00:XX:XX:82:00:71 designated port      8.001
  admin edge port    no                      auto edge port       no
  oper edge port     no                      topology change ack  no
  point-to-point     no                      admin point-to-point no
  restricted role    no                      restricted TCN       no
  port hello time    2                       disputed             no
  bpdu guard port    no                      bpdu guard error     no
  network port       no                      BA inconsistent      no
  Num TX BPDU        9746                    Num TX TCN           6423
  Num RX BPDU        9751                    Num RX TCN           59
  Num Transition FWD 24                      Num Transition BLK   24

br0:eth0.sw4 CIST info
  enabled            yes                     role                 Root
  port id            8.004                   state                forwarding
  external port cost 200000                  admin external cost  200000
  internal port cost 200000                  admin internal cost  0
  designated root    0.000.00:E0:0F:B4:1C:B0 dsgn external cost   200000
  dsgn regional root 8.000.00:XX:XX:82:00:31 dsgn internal cost   0
  designated bridge  8.000.00:XX:XX:82:00:31 designated port      8.002
  admin edge port    no                      auto edge port       no
  oper edge port     no                      topology change ack  no
  point-to-point     no                      admin point-to-point no
  restricted role    no                      restricted TCN       no
  port hello time    2                       disputed             no
  bpdu guard port    no                      bpdu guard error     no
  network port       no                      BA inconsistent      no
  Num TX BPDU        9762                    Num TX TCN           54
  Num RX BPDU        9735                    Num RX TCN           6419
  Num Transition FWD 15                      Num Transition BLK   21

I made a tcpdump to see what happens :

[root@]# tcpdump -vv -i eth0.sw1
tcpdump: WARNING: eth0.sw1: no IPv4 address assigned
tcpdump: listening on eth0.sw1, link-type EN10MB (Ethernet), capture size 65535 bytes
15:37:36.800333 STP 802.1w, Rapid STP, Flags [Topology change, Proposal, Learn, Forward, Agreement], bridge-id 8000.00:XX:XX:82:00:71.8001, length 36
        message-age 2.00s, max-age 20.00s, hello-time 2.00s, forwarding-delay 15.00s
        root-id 0000.00:e0:0f:b4:1c:b0, root-pathcost 400000, port-role Designated
15:37:36.803642 STP 802.1w, Rapid STP, Flags [Learn, Forward, Agreement], bridge-id 8000.00:XX:XX:82:00:01.8002, length 45
        message-age 3.00s, max-age 20.00s, hello-time 2.00s, forwarding-delay 15.00s
        root-id 0000.00:e0:0f:b4:1c:b0, root-pathcost 600000, port-role Root
15:37:38.155153 STP 802.1w, Rapid STP, Flags [Topology change, Proposal, Learn, Forward, Agreement], bridge-id 8000.00:XX:XX:82:00:71.8001, length 36
        message-age 2.00s, max-age 20.00s, hello-time 2.00s, forwarding-delay 15.00s
        root-id 0000.00:e0:0f:b4:1c:b0, root-pathcost 400000, port-role Designated
15:37:38.155614 STP 802.1w, Rapid STP, Flags [Learn, Forward, Agreement], bridge-id 8000.00:XX:XX:82:00:01.8002, length 45
        message-age 3.00s, max-age 20.00s, hello-time 2.00s, forwarding-delay 15.00s
        root-id 0000.00:e0:0f:b4:1c:b0, root-pathcost 600000, port-role Root
15:37:40.155149 STP 802.1w, Rapid STP, Flags [Proposal, Learn, Forward, Agreement], bridge-id 8000.00:XX:XX:82:00:71.8001, length 36
        message-age 2.00s, max-age 20.00s, hello-time 2.00s, forwarding-delay 15.00s
        root-id 0000.00:e0:0f:b4:1c:b0, root-pathcost 400000, port-role Designated
15:37:40.155608 STP 802.1w, Rapid STP, Flags [Learn, Forward, Agreement], bridge-id 8000.00:XX:XX:82:00:01.8002, length 45
        message-age 3.00s, max-age 20.00s, hello-time 2.00s, forwarding-delay 15.00s
        root-id 0000.00:e0:0f:b4:1c:b0, root-pathcost 600000, port-role Root
15:37:41.824422 STP 802.1w, Rapid STP, Flags [Learn, Forward, Agreement], bridge-id 8000.00:XX:XX:82:00:71.8001, length 36
        message-age 1.00s, max-age 20.00s, hello-time 2.00s, forwarding-delay 15.00s
        root-id 8000.00:XX:XX:82:00:31, root-pathcost 200000, port-role Designated
[root@]# tcpdump -vv -i eth0.sw1 -xx
tcpdump: WARNING: eth0.sw1: no IPv4 address assigned
tcpdump: listening on eth0.sw1, link-type EN10MB (Ethernet), capture size 65535 bytes
15:39:07.155338 STP 802.1w, Rapid STP, Flags [Topology change, Proposal, Learn, Forward, Agreement], bridge-id 8000.00:XX:XX:82:00:71.8001, length 36
        message-age 2.00s, max-age 20.00s, hello-time 2.00s, forwarding-delay 15.00s
        root-id 0000.00:e0:0f:b4:1c:b0, root-pathcost 400000, port-role Designated
        0x0000:  0180 c200 0000 00xx xx82 0071 0027 4242
        0x0010:  0300 0002 027f 0000 00e0 0fb4 1cb0 0006
        0x0020:  1a80 8000 00xx xx82 0071 8001 0200 1400
        0x0030:  0200 0f00 00
15:39:07.155611 STP 802.1w, Rapid STP, Flags [Learn, Forward, Agreement], bridge-id 8000.00:XX:XX:82:00:01.8002, length 45
        message-age 3.00s, max-age 20.00s, hello-time 2.00s, forwarding-delay 15.00s
        root-id 0000.00:e0:0f:b4:1c:b0, root-pathcost 600000, port-role Root
        0x0000:  0180 c200 0000 00xx xx82 0002 0027 4242
        0x0010:  0300 0002 0278 0000 00e0 0fb4 1cb0 0009
        0x0020:  27c0 8000 00xx xx82 0001 8002 0300 1400
        0x0030:  0200 0f00 0002 0000 0001 0000 0002

Can you explain why I have a TCN every 2 seconds (hello time) ?

The problem is shown when one switch is connected to an STP switch (which is the root : bridge priority=1).
I didn't set the portmcheck mode.

Thanks
Sebastien

 

Last edit: Sebastien JEFFROY 2013-09-25