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

T1797: VPP move CLI daemon configuration to settings section #2081

Closed
wants to merge 2 commits into from

Conversation

sever-sever
Copy link
Member

Change Summary

Refactoring:
VPP move CLI daemon configuration to the settings section
Add plugins for NAT and tunnels

Types of changes

  • Bug fix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • Code style update (formatting, renaming)
  • Refactoring (no functional changes)
  • Migration from an old Vyatta component to vyos-1x, please link to related PR inside obsoleted component
  • Other (please describe):

Related Task(s)

Component(s) name

vpp

Proposed changes

How to test

Checklist:

  • I have read the CONTRIBUTING document
  • I have linked this PR to one or more Phabricator Task(s)
  • I have run the components SMOKETESTS if applicable
  • My commit headlines contain a valid Task id
  • My change requires a change to the documentation
  • I have updated the documentation accordingly

@vyosbot vyosbot requested review from a team, dmbaturin, sarthurdev, zdc, jestabro and c-po and removed request for a team July 8, 2023 09:49
@sever-sever sever-sever marked this pull request as draft July 8, 2023 10:53
@sever-sever sever-sever marked this pull request as ready for review July 8, 2023 12:03
@vyosbot vyosbot requested a review from a team July 8, 2023 12:03
@sever-sever sever-sever marked this pull request as draft July 8, 2023 12:24
@sever-sever sever-sever marked this pull request as ready for review July 8, 2023 12:53
@c-po
Copy link
Member

c-po commented Jul 8, 2023

I think it's the wrong approach to miminc the interfaces CLI node definitions under the VPP config tree.
In my opinion we should not duplicate CLI node and rather reference them from within the VPP nodes.

In addition this is a 1:1 copy of the existing XML and not an XML building block definition included (example would be bond hash-policy)

@sever-sever
Copy link
Member Author

I think it's the wrong approach to miminc the interfaces CLI node definitions under the VPP config tree. In my opinion we should not duplicate CLI node and rather reference them from within the VPP nodes.

In addition this is a 1:1 copy of the existing XML and not an XML building block definition included (example would be bond hash-policy)

There are fewer options for VPP
Original

vyos@r14# set interfaces bonding bond0 
Possible completions:
+  address              IP address
 > arp-monitor          ARP link monitoring parameters
   description          Description
 > dhcp-options         DHCP client settings/options
 > dhcpv6-options       DHCPv6 client settings/options
   disable              Administratively disable interface
   disable-link-detect  Ignore link state changes
   hash-policy          Bonding transmit hash policy (default: layer2)
 > ip                   IPv4 routing parameters
 > ipv6                 IPv6 routing parameters
   lacp-rate            Rate in which we will ask our link partner to transmit LACPDU
                        packets (default: slow)
   mac                  Media Access Control (MAC) address
 > member               Bridge member interfaces
   mii-mon-interval     Specifies the MII link monitoring frequency in milliseconds
                        (default: 100)
   min-links            Minimum number of member interfaces required up before enabling
                        bond (default: 0)
 > mirror               Mirror ingress/egress packets
   mode                 Bonding mode (default: 802.3ad)
   mtu                  Maximum Transmission Unit (MTU) (default: 1500)
   primary              Primary device interface
   redirect             Redirect incoming packet to destination
+> vif                  Virtual Local Area Network (VLAN) ID
+> vif-s                QinQ TAG-S Virtual Local Area Network (VLAN) ID
   vrf                  VRF instance name

VPP bond

vyos@r14# set vpp interfaces bonding bond0 
Possible completions:
+  address              IP address
   description          Description
   disable              Administratively disable interface
   hash-policy          Bonding transmit hash policy
   mac                  Media Access Control (MAC) address
 > member               Bridge member interfaces
   mode                 Bonding mode (default: 802.3ad)
   mtu                  Maximum Transmission Unit (MTU) (default: 1500)

Original hash-policy:

vyos@r14# set interfaces bonding bond0 hash-policy 
Possible completions:
   layer2               use MAC addresses to generate the hash (default)
   layer2+3             combine MAC address and IP address to make hash
   layer3+4             combine IP address and port to make hash
   encap2+3             combine encapsulated MAC address and IP address to make hash
   encap3+4             combine encapsulated IP address and port to make hash
                        

VPP hash-policy

vyos@r14# set vpp interfaces bonding bond0 hash-policy 
Possible completions:
   layer2               use MAC addresses to generate the hash
   layer2+3             combine MAC address and IP address to make hash
   layer3+4             combine IP address and port to make hash
                        

GRE original:

vyos@r14# set interfaces tunnel tun0 
Possible completions:
   6rd-prefix           6rd network prefix
   6rd-relay-prefix     6rd relay prefix
+  address              IP address
   description          Description
   disable              Administratively disable interface
   disable-link-detect  Ignore link state changes
   enable-multicast     Enable multicast operation over tunnel
   encapsulation        Encapsulation of this tunnel interface
 > ip                   IPv4 routing parameters
 > ipv6                 IPv6 routing parameters
 > mirror               Mirror ingress/egress packets
   mtu                  Maximum Transmission Unit (MTU) (default: 1476)
 > parameters           Tunnel parameters
   redirect             Redirect incoming packet to destination
   remote               Tunnel remote address
   source-address       Source IP address used to initiate connection
   source-interface     Interface used to establish connection
   vrf                  VRF instance name


VPP GRE

vyos@r14# set vpp interfaces gre gre0 
Possible completions:
+  address              IP address
   description          Description
   disable              Administratively disable interface
   mtu                  Maximum Transmission Unit (MTU) (default: 1500)
   remote               Tunnel remote address
   source-address       Source IP address used to initiate connection
      

bond options:

vpp# create bond ?   
  create bond   create bond mode {round-robin | active-backup | broadcast | {lacp | xor} [load-balance { l2 | l23 | l34 } [numa-only]]} [hw-addr <mac-address>] [id <if-id>] [gso]
vpp# 

You cannot create bonding for vpp via iproute2 commands.
You cannot set bonding interface members that are not members of VPP itself. I.e., it is impossible to set iproute2 and vpp interfaces to the same bond group.

Also, priorities for VPP shouldn't be the same as priorities of iproute2 interfaces/tunnels/bond/etc
It was a simple way to separate them in the first implementation.

Any idea how to separate them?

@sever-sever sever-sever deleted the T1797 branch October 17, 2023 11:16
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Development

Successfully merging this pull request may close these issues.

2 participants