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

V3 vrrp #47

Draft
wants to merge 9 commits into
base: master
Choose a base branch
from
Draft

V3 vrrp #47

wants to merge 9 commits into from

Conversation

Paul-weqe
Copy link
Member

Add VRRP V3 functionality and IPV6 configuration based on RFC 9568

Note: This PR only handles IPV6, IPV4 configuration will be handled in a different PR.

- Introduce ipv6 sockets in network sockets
- Modify vrrp packet generation to handle
  both v2 and v3
Introduce the versioning file for holding
the following enums:

- IpVersion
- VrrpVersion

Signed-off-by: Paul Wekesa <[email protected]>
- on Interface struct, there was only one instance
  BTreeMap. Aim is to eventually introduce a separate
  BTreeMap for v2 and v3

Signed-off-by: Paul Wekesa <[email protected]>
- Initialize YANG calls for vrrpv3.
- Deal with mvlan interface creation and deletion in vrrpv3.

Signed-off-by: Paul Wekesa <[email protected]>
- change naming of sockets, network methods
  and InstanceNet fields.
- make sure the update() method has mvlan6
  in consideration
- include both v2 and v3 instances in
  `iter_instances`
- introduce advertisement interval for ipv6
  vrrp packets (not yet enabled / called )
- modify packet generators in Instance

Signed-off-by: Paul Wekesa <[email protected]>
- config callbacks and verifications added for ipv6 vrrp
- remove socket and tasks fields that had been added
  for InstanceNet
- add ipv4 and ipv6 instance groups for VRRP v3 in Instance
- adjust startup() and update() procedures for instance
  to accomodate vrrp v3
- update format

Signed-off-by: Paul wekesa <[email protected]>
mvlan6 & mvlan4 were previously used in
case the same vrid had a vrrp2 and vrrp3 instance. Since the
distinction of whether it is ipv4 or ipv6 instance is made
on the `Interface` level, there is no need to have them as
separate fields and both have been merged into a single
`mvlan` field.

Signed-off-by: Paul Wekesa <[email protected]>
- add neighbor advert method in impl Instance
- add ipv6 addresses when collecting system ip addresses

Signed-off-by: Paul Wekesa <[email protected]>
- Made sure Neighbor Advertisements
were working
- Decoding of received VRRP V3
packets fixed.

todo: FSM correctness still a WIP.

Signed-off-by: Paul Wekesa <[email protected]>
@Paul-weqe Paul-weqe requested a review from rwestphal February 25, 2025 20:45
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.

1 participant