Hi.
We tested the RSTP implementation against the IXIA IxANVL validation software.
This allowed us to fix some small bugs, and the implementation now passes
such tests with success!
Please find attached the patch series.


It appears that patches 12 and 17 break the "RSTP dummy" test, while all other
tests succeed. We also did some tests on some physical machines and the 
behaviour
seems to be ok with patches 12 and 17 applied.

The "RSTP dummy" test succeeds with the following modifications:

 diff --git a/lib/rstp.c b/lib/rstp.c
 index 144f2ba..6803bb2 100644
 --- a/lib/rstp.c
     +++ b/lib/rstp.c
 @@ -324,10 +324,9 @@ rstp_set_bridge_address__(struct rstp *rstp, 
rstp_identifier bridge_address)
     RSTP_ID_ARGS(bridge_address));
     if (rstp->address != bridge_address) {
         rstp->address = bridge_address;
         -        rstp->bridge_identifier &= 0xffff000000000000ULL;
         -        rstp->bridge_identifier |= bridge_address;
         -        set_bridge_priority__(rstp);
     }
 +    rstp->bridge_identifier = rstp->address;
 +    set_bridge_priority__(rstp);
 }
 
 /* Sets the bridge address. */
 @@ -378,10 +377,10 @@ rstp_set_bridge_priority__(struct rstp *rstp, int 
new_priority)
     VLOG_DBG("%s: set bridge priority to %d", rstp->name, new_priority);
 
     rstp->priority = new_priority;
     -        rstp->bridge_identifier &= 0x0000ffffffffffffULL;
     -        rstp->bridge_identifier |= (uint64_t)new_priority << 48;
     -        set_bridge_priority__(rstp);
     }
 +    rstp->bridge_identifier &= 0x0000ffffffffffffULL;
 +    rstp->bridge_identifier |= (uint64_t)rstp->priority << 48;
 +    set_bridge_priority__(rstp);
 }

but this breaks some IXIA validation tests.
We're still not sure why this test fails. Jarno, could you take a look?

Best regards,
Daniele

_______________________________________________
dev mailing list
dev@openvswitch.org
http://openvswitch.org/mailman/listinfo/dev

Reply via email to