Add support for VXLAN tunnels (LP: #1764716)#288
Conversation
00990fb to
4316e9b
Compare
7bafdf6 to
1b2916b
Compare
|
I think this is shaping up nicely for review now. @netdever may I ask for your review, please, as you have been the original author of this work, especially if the I've mostly rebased it on top of the new |
|
Awesome work! We're very excited for this. One quick note that at least in your example yml above, the /etc/netplan/50-cloud-init.yaml:57:13: Error in network definition: vx1: missing 'mode' property for tunnel
id: 1Regarding [Bridge]
NeighborSuppression=TrueI initially handled this with: if (def->neigh_suppress) {
g_string_append_printf(network, "\n[Bridge]\n");
g_string_append_printf(network, "NeighborSuppression=%s\n", def->neigh_suppress ? "True" : "False");
} |
1b2916b to
c29c29f
Compare
|
Thanks for your feedback @netdever I think I've now fixed both comments: |
|
I have verified that |
c29c29f to
c0eccc1
Compare
schopin-pro
left a comment
There was a problem hiding this comment.
Solid work!
I have a few nitpicks here and there, and I'd really like to see the ABI question addressed before approving this PR. ("addressed" can very well be "not a problem, moving on", of course ;-) )
V2: optimize using g_hash_table_lookup_extended()
V2: constant array size, using NETPLAN_INFINIBAND_MODE_MAX_
c0eccc1 to
23b2bc0
Compare
Thank you for the quality review! |
schopin-pro
left a comment
There was a problem hiding this comment.
Sadly, there's an issue with the bitfield name macro that needs to be solved before merging :/
V2: tightly pack flag names arrays & loop through them incrementally V3: improve NAME_FUNCTION_FLAGS input validation flags fixup
V2: + handle VXLAN postprocessing (assignment of implicit values) at the end of the parsing stage, instead in validation statge + use NetplanVxlan private struct, independently of the legacy ABI Co-authored-by: Lukas Märdian <slyon@ubuntu.com>
V2: use NetplanVxlan private struct, independently of the legacy ABI Co-authored-by: Lukas Märdian <slyon@ubuntu.com>
V2: use NetplanVxlan private struct, independently of the legacy ABI
Co-authored-by: Anthony Timmins <atimmins@datto.com>
Co-authored-by: Anthony Timmins <atimmins@datto.com>
23b2bc0 to
72774d8
Compare
|
TA! I updated 055a6e0 (V3), added 72774d8 and ae582f2 My initial idea was to use Could you have another look, especially about the dirty tracking in |
Thinking about it... dirty tracking doesn't make too much sense for the |
|
Considering that the point of the dirty tracking is to be able to differentiate between default value and user input that happens to be the same as the default, the mechanism wouldn't work when said value is Furthermore, does it actually make sense to have a vxlan entry without upstream link? |
Yes, there is a concept of "Independent" VXLAN interfaces: https://systemd.network/systemd.netdev.html#Independent= |
|
I'd say leave the dirty tracking in place. While I think it isn't used (yet?), it doesn't hurt either and has the merits of being consistent with other data. |
Description
Adding support for VXLAN tunnels using the sd-networkd and NetworkManager backends.
It builds upon #272 (squashed & rebased), extracted VXLAN bits. Applied on top of #285.
Schema according to (internal) spec FO042.
The first 3 commits e83ea89 6d3597e 02c4f00 are pretty much unrelated to this PR. Those are drive-by fixes that I had been tracking in a separate branch, but the diff is fairly small, so I thought it'd make sense to include them into this PR instead of doing an extra one just for this.
Example:
Checklist
make checksuccessfully.make check-coverage).