Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Problem in connecting to OpenDaylight #27

Open
antonmatsiuk opened this issue Jan 20, 2017 · 2 comments
Open

Problem in connecting to OpenDaylight #27

antonmatsiuk opened this issue Jan 20, 2017 · 2 comments

Comments

@antonmatsiuk
Copy link

antonmatsiuk commented Jan 20, 2017

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;
}

@ccascone
Copy link
Member

Hi @antonmatsiuk, officially we do not support ODL in the scope of the BEBA project, however, it seems that for both issues you already have a solution. I suggest you create a pull request with both fixes. We'd be happy to merge it.

@antonmatsiuk
Copy link
Author

The pull request is here: fix OpenDaylight handshake #53

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants