The bpdu_len sent to STP_OUT_tx_bpdu() excludes the ethernet and
and LLC headers, though the bpdu pointer points to the start of the
ethernet header. Given the types in rstplib/stp_bpdu.h, we need to
be sending a packet with (base, len) given by
(bpdu, bpdu_len + sizeof(MAC_HEADER_T) + sizeof(ETH_HEADER_T))
MAC_HEADER_T is dest and source ethernet addresses and ETH_HEADER_T
is the 802.2 part.
Signed-off-by: Stephen Hemminger <shemminger@linux-foundation.org>
TST(vlan_id == 0, 0);
packet_send(port->if_index, bpdu,
- bpdu_len + sizeof(ETH_HEADER_T)
- + sizeof(BPDU_HEADER_T) + sizeof(BPDU_BODY_T));
+ bpdu_len + sizeof(MAC_HEADER_T) + sizeof(ETH_HEADER_T));
return 0;
}