Consider the following network diagram:

– Dell OS10 Cores in VLT mode.
– Cisco Switches running IOS-V
– A vLT trunk to the Cisco access switch nammed “Office”
– A standard dot1q trunk to a Cisco access switch named “Factory”
– Dell side is running RSTP and the Cisco side PVST+
– In the above example the Factory is a single trunk to test the interoperability without VLT.
– In the real world this was experienced with Dell S4112F-ON running OS 10 and Cisco 3850s running IOS-XE.
– The above scenario is a recreation in GNS3

We have a problem here. Cisco side sends BPDU to specific multicast address which the Dell switch cannot respond to. Meaning nothing but vlan 1 traffic would pass. This is mentioned in the Dell Networking Cisco Spanning Tree Interopability guide here

With RSTP, a direct message exchange takes place between point to point links. This exchange
consists of an RSTP BPDU proposal message and an agreement message. With RPVST+, the same
message exchange takes place; however, these messages are being generated on a per-vlan basis.
RPVST+ is a Cisco proprietary implementation and the way it works, is by generating and sending
these exchange messages to a specific multicast address for any other vlan other
than vlan 1, and this multicast address is understood *only* by the Cisco switch.

The easiest way to fix this is to use a native vlan ID other than 1, for example 100. There is no need to add the native VLAN to the allow list on the Dell OS10 side as it is implictly alloed by default. On the Cisco side it must be allowed.
1. Set spanning tree priority for vlans on Dell Core 1:
spanning-tree vlan 1-3,100,550,824 priority 4096
2. Set spanning tree priority on Dell Core 2:
spanning-tree vlan 1-3,100,550,824 priority 8192
3. Add a Native VLAN and set it on the link to Factory and Office Cisco switches:
interface vlan100
description NATIVE
no shutdown
interface port-channel10
no shutdown
switchport mode trunk
switchport access vlan 100
switchport trunk allowed vlan 2-3,550
vlt-port-channel 10
!
interface ethernet1/1/1
description Link-1-to-Office
no shutdown
channel-group 10 mode active
no switchport
flowcontrol receive on
!
interface ethernet1/1/5
description Link-to-Factory
no shutdown
switchport mode trunk
switchport access vlan 100
switchport trunk allowed vlan 2-3,550,824
flowcontrol receive on

4. Do the same on the Dell Core 2 side. Now set the Cisco side for Factory and Office switches.
Office:
spanning-tree mode rapid-pvst
spanning-tree vlan 1-3,100,550 priority 61440
interface Port-channel10
description Link to VLT
switchport trunk encapsulation dot1q
switchport trunk native vlan 100
switchport mode trunk
!
interface GigabitEthernet0/0
description Link to Core-1
switchport trunk encapsulation dot1q
switchport trunk native vlan 100
switchport mode trunk
negotiation auto
channel-group 10 mode active
!
interface GigabitEthernet0/1
description Link to Core-2
switchport trunk encapsulation dot1q
switchport trunk native vlan 100
switchport mode trunk
negotiation auto
channel-group 10 mode active

Factory:
spanning-tree mode rapid-pvst
spanning-tree vlan 100,550,824 priority 61440
!
interface GigabitEthernet1/1
switchport trunk allowed vlan 2,3,100,550,824
switchport trunk encapsulation dot1q
switchport trunk native vlan 100
switchport mode trunk

5. Ok sweet, lets verify:
Core-1:
Core-1# show spanning-tree vlan 100
Spanning tree enabled protocol rapid-pvst with force-version rstp
VLAN 100
Executing IEEE compatible Spanning Tree Protocol
Root ID Priority 4196, Address 0cea.7b2e.0000
Root Bridge hello time 2, max age 20, forward delay 15
Bridge ID Priority 4196, Address 0cea.7b2e.0000
We are the root of VLAN 100
Configured hello time 2, max age 20, forward delay 15
Flush Interval 200 centi-sec, Flush Invocations 14
Flush Indication threshold 5

Core-2:
Core-2# show spanning-tree vlan 100
Spanning tree enabled protocol rapid-pvst with force-version rstp
VLAN 100
Executing IEEE compatible Spanning Tree Protocol
Root ID Priority 4196, Address 0cea.7b2e.0000
Root Bridge hello time 2, max age 20, forward delay 15
Bridge ID Priority 8292, Address 0c47.b9db.0000
Configured hello time 2, max age 20, forward delay 15
Flush Interval 200 centi-sec, Flush Invocations 2
Flush Indication threshold 5
Interface Designated
Name PortID Prio Cost Sts Cost Bridge ID PortID
——————————————————————————————————-
port-channel10 128.2674 128 1000000 FWD 1 8292 0c47.b9db.0000 128.2674
Interface
Name Role PortID Prio Cost Sts Cost Link-type Edge
——————————————————————————————————-
port-channel10 Desg 128.2674 128 1000000 FWD 1 AUTO No

Office:
Office#show spanning-tree summary
Switch is in rapid-pvst mode
Root bridge for: none

Office#show spanning-tree vlan 100

VLAN0100
Spanning tree enabled protocol rstp
Root ID Priority 4196
Address 0cea.7b2e.0000
Cost 3
Port 65 (Port-channel10)
Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec

Bridge ID Priority 32868 (priority 32768 sys-id-ext 100)
Address 0cd2.4419.0000
Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec
Aging Time 300 sec

Interface Role Sts Cost Prio.Nbr Type
——————- —- — ——— ——– ——————————–
Po10 Root FWD 3 128.65 P2p

Factory:
Factory#show spanning-tree summary
Switch is in rapid-pvst mode
Root bridge for: none
!
Factory#show spanning-tree vlan 100
VLAN0100
Spanning tree enabled protocol rstp
Root ID Priority 4196
Address 0cea.7b2e.0000
Cost 4
Port 6 (GigabitEthernet1/1)
Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec

Bridge ID Priority 61540 (priority 61440 sys-id-ext 100)
Address 0c7f.b632.0000
Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec
Aging Time 300 sec

Interface Role Sts Cost Prio.Nbr Type
——————- —- — ——— ——– ——————————–
Gi1/1 Root FWD 4 128.6 P2p

As you can see the stp instances on both vendors are converged, the above verification depicts the native vlan 100 is root on Dell-Core-1 (0cea.7b2e.0000).
As soon as vlan 1 was no longer the native vlan id for stp bpdu exchange, everything works as it should.

I hope this helps anyone else trying to configure Dell OS 10 to Cisco IOS-XE STP.