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

Add support for conntrack states in OVS flow #4

Closed
wants to merge 1 commit into from

Conversation

lsiudut
Copy link

@lsiudut lsiudut commented Oct 26, 2015

Linux 4.3.0 introduces support for conntrack states in OVS flow. It
breaks compatibility with weave causing errors and lack of connectivity
between containers:

Error while listening on ODP datapath: unknown flow key type 22 (value
[0 0 0 0])

Missing flow key is OVS_KEY_ATTR_CT_STATE, which in fact is 32-bit
value representing connection state pulled from conntrack. More details
are available at lkml commit topic https://lkml.org/lkml/2015/7/30/661

Although this patch solved problems for me, I'm not 100% convinced
whether this is proper solution, as spent only little time on research.
It may be treated as reminder about upcoming changes though.

Linux 4.3.0 introduces support for conntrack states in OVS flow. It
breaks compatibility with weave causing errors and lack of connectivity
between containers:

Error while listening on ODP datapath: unknown flow key type 22 (value
[0 0 0 0])

Missing flow key is OVS_KEY_ATTR_CT_STATE, which in fact is 32-bit
value representing connection state pulled from conntrack. More details
are available at lkml commit topic https://lkml.org/lkml/2015/7/30/661

Although this patch solved problems for me, I'm not 100% convinced
whether this is proper solution, as spent only little time on research.
It may be treated as reminder about upcoming changes though.
@dpw
Copy link
Contributor

dpw commented Oct 26, 2015

Arggghhh...

Thanks for the PR, and the heads up. 4.3 is still at rc7, right? But I guess that means it will be released soon.

Your fix makes sense. But it would be nicer to tolerate all unknown flow keys. I'll take a look at how tricky that is later today.

@lsiudut
Copy link
Author

lsiudut commented Oct 26, 2015

Yes, this is still rc7, should be released next week.

According to OVS developer hints it's OK to handle unknown flows and let kernel deal with them, but I found the commit:

ba6e0f8.

Thus I assumed that you wanted to explicitly handle unknown flow keys :).

@dpw
Copy link
Contributor

dpw commented Oct 26, 2015

but I found the commit:

ba6e0f8.

Thus I assumed that you wanted to explicitly handle unknown flow keys :).

I may have changed my mind :)

@lsiudut
Copy link
Author

lsiudut commented Oct 26, 2015

Oh, it makes sense ;-). Well, at least you'll keep an eye on it now. Thanks!

@dpw
Copy link
Contributor

dpw commented Oct 30, 2015

I've committed 8f05974 to avoid breakage with kernel 4.3 by accepting unknown flow keys. (But not discarding them entirely - that's what it did before ba6e0f8 and it made development awkward. Now it's easy to print the unknown keys.)

I was going to merge your change anyway, because it does no harm and we might need those flow keys one day. But in testing (with weave launch --log-level=debug), I see misses with all the OVS_KEY_ATTR_CT keys, so I'd prefer to add them as a set. I don't have time right now to check the structure of all those keys right now, so I'm going to close this for now.

Thanks again for the PR though.

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

Successfully merging this pull request may close these issues.

2 participants