The OpenFlow specification says that only role changes to slave or master
check the generation ID, so this is a bug fix.

Found by OFTest.

Signed-off-by: Ben Pfaff <b...@nicira.com>
---
 ofproto/ofproto.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/ofproto/ofproto.c b/ofproto/ofproto.c
index a724071..e9b1472 100644
--- a/ofproto/ofproto.c
+++ b/ofproto/ofproto.c
@@ -5315,7 +5315,8 @@ handle_role_request(struct ofconn *ofconn, const struct 
ofp_header *oh)
     }
 
     if (request.role != OFPCR12_ROLE_NOCHANGE) {
-        if (request.have_generation_id
+        if (request.role != OFPCR12_ROLE_EQUAL
+            && request.have_generation_id
             && !ofconn_set_master_election_id(ofconn, request.generation_id)) {
                 return OFPERR_OFPRRFC_STALE;
         }
-- 
2.1.3

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

Reply via email to