-
Notifications
You must be signed in to change notification settings - Fork 1
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
Configure Renovate #82
base: stable/ussuri-m3
Are you sure you want to change the base?
Commits on Jan 31, 2023
-
Configuration menu - View commit details
-
Copy full SHA for 4baeb6c - Browse repository at this point
Copy the full SHA 4baeb6cView commit details -
Make stateless NAT mandatory in IOS XE 17.6 and above
The migration for stateless NAT is complicated as it cannot be done during operations. Hence the game plan is to reboot the passive device on 17.6, let it be synced with NAT stateless, then failover and do the dance again. For this procedure it comes in handy for us to completely ignore any stateless NAT config and just make it mandatory when 17.6 is running.
Configuration menu - View commit details
-
Copy full SHA for 5172e6a - Browse repository at this point
Copy the full SHA 5172e6aView commit details -
Always use no-alias NAT on firmware 17.6 and above
Static NAT creates an implicit arp alias if the NAT IP resides in the ip nat outside interface's subnet. We also create an explicit arp alias for every static NAT statement, regardless of subnet affinity. Cisco stated that on cleanup there might be a condition under which the deletion of the explicity arp alias and the deletion of the implicit arp alias (triggered by the deletion of the static arp statement) challange each other and lead to the arp alias still residing in hardware. This in turn means the device still replies to arp for that IP. As a workaround we add each static NAT statement without the implicit arp alias. We handle the explicit arp alias already, hence now there is only a single arp alias in the house and the deletion should work as expected.
Configuration menu - View commit details
-
Copy full SHA for b68eb20 - Browse repository at this point
Copy the full SHA b68eb20View commit details -
Configuration menu - View commit details
-
Copy full SHA for 056f456 - Browse repository at this point
Copy the full SHA 056f456View commit details -
netconf-yang: match-in-vrf - YANG_TYPE.EMPTY, remove yang-key argument
match-in-vrf is a YANG_TYPE.EMPTY, if the tag is present it is true, if it is absent, it is false. Found this after writing a parsing test for this class. Also the yang-key argument is redundant as NyBase will replace all underscores in the key by dashes.
Configuration menu - View commit details
-
Copy full SHA for 3eb4fe5 - Browse repository at this point
Copy the full SHA 3eb4fe5View commit details
Commits on Feb 2, 2023
-
Configuration menu - View commit details
-
Copy full SHA for 2dbf1d3 - Browse repository at this point
Copy the full SHA 2dbf1d3View commit details -
Configuration menu - View commit details
-
Copy full SHA for d04905e - Browse repository at this point
Copy the full SHA d04905eView commit details -
neutron callback system passing dbevent payload instead of context, r…
…outer_id, network_id
Configuration menu - View commit details
-
Copy full SHA for 0a6dad1 - Browse repository at this point
Copy the full SHA 0a6dad1View commit details
Commits on Feb 3, 2023
-
Merge pull request #86 from sapcc/py38_workflow_tox
Python 3.8: github workflow and tox
Configuration menu - View commit details
-
Copy full SHA for adc557e - Browse repository at this point
Copy the full SHA adc557eView commit details -
Merge pull request #87 from sapcc/fix/az_check
[yoga] neutron callback system passing dbevent payload instead of context, router_id, network_id
Configuration menu - View commit details
-
Copy full SHA for 001bbfe - Browse repository at this point
Copy the full SHA 001bbfeView commit details
Commits on Feb 21, 2023
-
Configuration menu - View commit details
-
Copy full SHA for 47acf7b - Browse repository at this point
Copy the full SHA 47acf7bView commit details -
Configuration menu - View commit details
-
Copy full SHA for eab1573 - Browse repository at this point
Copy the full SHA eab1573View commit details
Commits on Mar 9, 2023
-
Advertise extraroute-atomic extension
We support extraroute-atomic, but don't advertise it properly, which means it does not appear in the available OpenStack network extensions. This advertising is needed for clients which want to decide if they can use that API or not. Reviewing the whole way we manage supported_extension_aliases shows that we should probably rework this code and orient ourselves a bit at what happened in the reference implementation in neutron, but today is not that day.
Configuration menu - View commit details
-
Copy full SHA for 346a941 - Browse repository at this point
Copy the full SHA 346a941View commit details
Commits on Mar 10, 2023
-
Use payloads / publish for router callbacks
Neutron dropped registry.notify() and migrated to using payloads and publish(), so we're doing the same. This change is very much oriented on what can be found in neutron in neutron/agent/l3/agent.py.
Configuration menu - View commit details
-
Copy full SHA for 54b9267 - Browse repository at this point
Copy the full SHA 54b9267View commit details
Commits on Apr 24, 2023
-
Add option only to disable scheduling on an agent
admin-shutting an agent leads to the agent being completely vacated. However we have cases in which we want an agent to stay online, but prevent any new workloads to be scheduled on it. This can be a capacity consideration or because it is meant to be decomissioned.
Configuration menu - View commit details
-
Copy full SHA for 425cc81 - Browse repository at this point
Copy the full SHA 425cc81View commit details
Commits on Aug 21, 2023
-
Delay route configuration after interface configuration
When a router/VRF is part of a BGPVPN, the BGPVPN portion is configured first. If a BGPVPN happens to have a peer on the local agent (hardware router) this peer VRF's routes are leaked into the to be configured VRF. Due to the order of operation, this leaking happens before any VRF-attached l3 interfaces are configured. Now say, a customer also configured an extra route. That extra route also happens to be contained in a leaked route and that extra routes's next hop also happens to be another BD-VIF in a BGPVPN-peered-VRF that is local on that hardware router. Even though the to be configured VRF has no l3 interface yet, it already has a BGP RIB path pointing to that next hop address of the extra route. It also believes it's a local interface, which it is, but it also is not, because that BD-VIF lives in another VRF. The hardware router not caring about such technicalities, will refuse to configure the extra route with `%Invalid next hop address (it's this router)` and all subsequent configuration fails. The fact that the next hop lives on the same route can however be obscured if the next hop is directly connected. It becomes directly connected when the BD-VIFs are configure prior. So let's do that. OpenStack also prevents you from creating extra routes where the next hop is not local to the virtual router, so I think all cases should be covered. Even on interface removal, OpenStack checks if a route still utilizes that interface. See https://github.com/sapcc/neutron/blob/5fb5653ffe700a8f9fb0949d16ecbf0978b61fb6/neutron/db/extraroute_db.py#L74-L86 https://github.com/sapcc/neutron/blob/5fb5653ffe700a8f9fb0949d16ecbf0978b61fb6/neutron/db/extraroute_db.py#L154-L164
Configuration menu - View commit details
-
Copy full SHA for 0d0194c - Browse repository at this point
Copy the full SHA 0d0194cView commit details
Commits on Aug 24, 2023
-
Configurable ARP timeout for router interfaces
We can now specify an ARP timeout that gets configured on all router interfaces, configured separately for external and internal interfaces. This can be used facilitate faster ARP cleanup of old IP-mac combinations. The main target of this feature is to get faster FIP reuse working, where routers are in the same external network. Therefore the current defaults are 30 minutes (1800s) for external interfaces and unset for internal interfaces. I'm not currently aware of any problems inside internal networks, but when the time comes it might be nice to already have this option waiting.
Configuration menu - View commit details
-
Copy full SHA for ddb8bf9 - Browse repository at this point
Copy the full SHA ddb8bf9View commit details -
Add floating ip ARP cleaning sync loop to agent
The asr1ks in our infrastructure have a relatively high ARP timeout (default is set to 4 hours). If in this time a fip moves from one router to another, it changes mac address. This means that routers where this FIP is not configured on might have a stale entry and will send out IP packets to the wrong mac in the Ethernet frame. Normally this would be solved by sending out a gratuitous ARP packet from the router, but the router does not do this for NAT statements (a long open feature request). Sending out "fake" ARP requests have either resulted in the ASR not learning the new mac (IP packet from behind the ASR via network agent as broadcast) or caused the ACI to either discard the ARP packet (as it "knows better" what we want) or to relearn the endpoint onto another device, where we would not want it. Therefore we now try to find these stale entries on other routers and clean them. The agent now as an ARP cleaning syncloop. By default every two minutes (though it is configurable). The agent fetches all fip --> router mac associations. We expect each fip - if we see it - to be on the mac address of the gateway interface of our router. Then, for each device on the agent, we fetch the ARP cache and look for IPs that we know about and are on the wrong mac. Everything wrong will then be cleared. Fetching all ARP entries from a device takes about 1.2-4.0s in my tests, depending on the ARP table size on the device. Selecting only a subset of fields makes the query go something like 20-40% faster.
Configuration menu - View commit details
-
Copy full SHA for 2bde4f5 - Browse repository at this point
Copy the full SHA 2bde4f5View commit details
Commits on Sep 4, 2023
-
Ignore non-existant device ARP cache
If the device doesn't give us an ARP cache (e.g. if netconf-yang is overloaded or disabled) we now don't throw an Attribute error anymore, but instead log a warning that we couldn't fetch the ARP cache. I opted for a warning instead of an error as I think YANG problems either are or should be handled elsewhere, this new could should not be the place to alert or throw out Sentry errors, as they are (or should be) duplicates.
Configuration menu - View commit details
-
Copy full SHA for bd8d1fb - Browse repository at this point
Copy the full SHA bd8d1fbView commit details -
Fix PrometheusMonitor wrong labels method name
The method is called labels(), not label(). Using the latter results in a ValueError "Incorrect label names" by the prometheus_client library.
Configuration menu - View commit details
-
Copy full SHA for 2c5d553 - Browse repository at this point
Copy the full SHA 2c5d553View commit details -
Silence error on ext gw without address scope
The external gateway of a router normally has an address scope set and if that address scope cannot be found in our driver config we log an error message. This is the behavior we want for everything that has an address scope. For setups where the external gateway it not an external network and therefore also has no address scope is set we actually don't want this to be logged, as everything should be okay. We'll silence the error for everything that has no address scope. This also means that we won't log the error for external networks that have been configured without any subnet with an address scope, but as this is more of an admin error and I don't want to fetch the external gateway only for deciding if we want to log this error I'll leave it this way for now.
Configuration menu - View commit details
-
Copy full SHA for 4557505 - Browse repository at this point
Copy the full SHA 4557505View commit details
Commits on Sep 5, 2023
-
Use remove instead of delete for unsetting ARP timeout
The delete action will error out if the attribute that we wanted to delete does not exist. Remove will just silently ignore it, which is exactly what we want.
Configuration menu - View commit details
-
Copy full SHA for a1d936a - Browse repository at this point
Copy the full SHA a1d936aView commit details
Commits on Sep 6, 2023
-
Use remove instead of delete for bridge members
In some cases we want to delete a bridge member, maybe even as a "side operation", i.e. triggered by another operation. If the interface has already been removed (by the cleaning loop, another thread or whatever) we don't want to fail, but silently ignore this. Therefore "remove" seems to be the operation which is more fitting. One could argue that this is the operation we want to use in most cases in this driver... well, we're getting there.
Configuration menu - View commit details
-
Copy full SHA for b996884 - Browse repository at this point
Copy the full SHA b996884View commit details
Commits on Sep 26, 2023
-
Don't get subnet CIDR if not present
When instantiating the Router model with router data from Neutron where the gateway port is unbound we might not have a primary subnet. We already handle the case that the subnet has no CIDR, but if the subnet is None, we don't have the .get() method available, resulting in an AttributeError in _build_pbr_acl(). To fix this we simply check if the given subnet is None beforehand.
Configuration menu - View commit details
-
Copy full SHA for d89db00 - Browse repository at this point
Copy the full SHA d89db00View commit details
Commits on Oct 4, 2023
-
More protection against missing subnet
When a port has no primary subnet we don't want to lookup the cidr of None, resulting in a TypeError. See last commit d89db00 for details.
Configuration menu - View commit details
-
Copy full SHA for 5709eb8 - Browse repository at this point
Copy the full SHA 5709eb8View commit details
Commits on Oct 30, 2023
-
Fix CapabilityNotFoundException argument name
The argument for the failing entity is called entity, not entity_name.
Configuration menu - View commit details
-
Copy full SHA for 17d0b70 - Browse repository at this point
Copy the full SHA 17d0b70View commit details
Commits on Nov 16, 2023
-
Replace version check with firmware version
We used to check for special features and versions by looking at the revision date of the YANG models, specifically the Cisco-IOS-XE-native model. Newer versions (e.g. 17.3) apparently don't advertise the revision dates of these models without extra queries, so this won't work. As most feature switches we require can be set by looking at the major/minor version of the current firmware. Therefore we now query for each connection what the version is via "native/version". As we might require more fine grained feature switches in the future I'll leave in the machinery to do capability checks based on YANG model versions.
Configuration menu - View commit details
-
Copy full SHA for b7199f9 - Browse repository at this point
Copy the full SHA b7199f9View commit details
Commits on Nov 27, 2023
-
Fix missing space and bracket in error message
The "missing address scope for router" message was missing a space and a closing bracket at the end.
Configuration menu - View commit details
-
Copy full SHA for 173d994 - Browse repository at this point
Copy the full SHA 173d994View commit details -
Set GARP flag for FIPs on 17.13
Firmware 17.13 starts to support the garp-interface option for static NAT configuration. This means that on configuration a gratuitous ARP will be send out on configuration of the statement. To use this, we need to be at least on 17.13. The target interface will always be the gateway interface. Without a gateway interface, the flag will be removed.
Configuration menu - View commit details
-
Copy full SHA for 9fb2be5 - Browse repository at this point
Copy the full SHA 9fb2be5View commit details
Commits on Dec 15, 2023
-
Configuration menu - View commit details
-
Copy full SHA for 496f680 - Browse repository at this point
Copy the full SHA 496f680View commit details