-
Notifications
You must be signed in to change notification settings - Fork 12
Description
I am trying to connect the beba-switch to one of the recent releases of ODL (Boron SR-1) and I get two issues there.
The first one and a quick fix for it I just described here: CPqD#237
The second one is caused by improper checking of generation_id in OFPT_ROLE_REQUEST/REPLY messages hin th following function:
udatapath/datapath.c
static ofl_err
dp_check_generation_id(struct datapath *dp, uint64_t new_gen_id)
OpenDaylight sends multiple OFPT_ROLE_REQUEST messages with GEneration ID = 0 which causes (OFPET_ROLE_REQUEST_FAILED, OFPRRFC_STALE) error in dp_check_generation_id() function.
To fix this one needs to modify the dp_check_generation_id(struct datapath *dp, uint64_t new_gen_id) according to this file https://github.com/CPqD/ofsoftswitch13/blob/master/udatapath/datapath.c:
static ofl_err
dp_check_generation_id(struct datapath *dp, uint64_t new_gen_id){
if(dp->generation_id >= 0 && ((int64_t)(new_gen_id - dp->generation_id) < 0) ){
return ofl_error(OFPET_ROLE_REQUEST_FAILED, OFPRRFC_STALE);
}
else dp->generation_id = new_gen_id;
return 0;
}