CHANGES
=======

6.0.0
-----

* reno: Update master for unmaintained/2024.1
* Update master for stable/2025.2

5.0.0
-----

* Adapt wait\_until\_true
* Migrate ovn-bgp-agent-tempest-plugin-multinode to Noble
* Fix hacking checks from neutron-lib 3.21.1
* setup.cfg: Replace dashes with underscores
* Add empty place holder for sample conf
* Ensure that ARP/NDP is enabled for vlan devices
* Replace UPPER\_CONSTRAINTS\_FILE
* Remove oslo.rootwrap from this repository
* Ignore reno artefacts (RELEASENOTES.rst and reno.cache)
* Fix arp\_proxy LSP option formatting
* Use OS\_TEST\_PATH evironment variable to define tests location
* Update master for stable/2025.1
* [doc] Remove anycast\_evpn\_gateway\_mode reference
* Validate ovn/ovs db connection options

4.0.0
-----

* functional: Use shutil to find privsep-helper executable
* Fix running sync method for every external\_ids update
* Add BGP NIC IP cleanup logic for the OVN driver
* Use BFD sessions for local OVN
* Add option to avoid VRF removal
* Expose floating ips attached to virtual ports
* Introduce multinode tempest job
* Update default envlist
* Ensure that bridge exist and UP before adding tables
* Split \_ensure\_ovn\_network\_link function
* Fix text from CrLrpChassisChangeWithdrawEvent docstring
* Add a static FDB entry to fabric-facing bridges
* Support ovn-bgp agent with DVR disabled
* Use neutron\_lib constants a device name limiter
* Handle trimming of vlan interface namings
* Fix type for config option bgp\_chassis\_id
* functional: Introduce a base class for OVN func testing
* Bump ovsdbapp to 2.8.0
* Move devstack job to experimental
* Introduce LSP address column parsing functions
* nb driver: Don't expose FIP if the external\_mac is not set
* Expose FIP if external\_mac was set
* Remove test\_ovn\_bgp\_agent
* Refactor ovn\_bgp\_agent.privileged.ovs\_vsctl
* Add retries to get\_device\_port\_at\_ovs
* Make in\_port consistent type
* Fix live migrations and possibly also VIP failovers
* Bump hacking
* Drop Python 3.6/7 support
* Update master for stable/2024.2

3.0.0
-----

* Move \_get\_ips\_info out of LRP event
* Move methods out of LSP events
* Move some LogicalSwitchChassisEvent methods out
* Remove \_get\_router method from events
* Remove duplicated \_get\_network method
* evpn: Remove Chassis events
* Remove \_check\_ip\_associated method from Event
* NB: Consolidate common code of events to the superclass
* Remove FakeLogicalSwitchChassisEvent class
* Remove dead code from get\_port\_chassis function
* Bump OVS version (branch 3.4) for devstack local.conf sample
* Make the local chassis ID configurable
* Add the forgotten cleanup, that potentially messes up the next test in the py311 test
* Ensure cr-lrp permanent ip nei entry is added on NB DB driver
* Announce lrp ip if advertisement method is subnet
* Ensure cr-lrp ports are exposed
* Add support for l3vpn with NB driver
* Add pre-commit configuration
* Fix failures pointed by the flake8 run by the pre-commit script
* Remove executable from python files which don't really needs it
* Remove tabs and trailing whitespaces
* Fix sync for OVN LB VIPs
* Fix placement of lsp when external\_ids not in sync
* Update master for stable/2024.1

2.0.0.0rc1
----------

* [NB watcher] Prevent lsp events for remote tenant events
* Change default to NB DB Driver
* Fix typo for linux util function used at evpn driver
* Bump OVS version (branch 3.3) for devstack local.conf sample
* Fix OVN LB Delete events for NB driver
* Fix address scope test and add address scope unit tests
* Add feature to check if SNAT disabled before exposing tenant networks
* Fix backward compatibility for setups that export subnets per host
* Update NB driver to re-use new methods and make code cleaner
* Fix event handling for LSP and prefer the options.requested-chassis info
* Disable exposing remote\_ips, when only the lrp prefix is sufficient
* Trimm interface name consistently
* Fixes at the documentation
* Add bgp tempest job
* tox: Drop envdir
* Address the Load\_Balancer's datapath\_group column deprecation
* Add documentation about NB DB driver
* Check for networks on router port in match\_fn
* Add support to PF OVN LBs for NB Driver
* Use .coveragerc to omit directories
* Fix startup if the hostname is not configured in OVS
* Fix FRR 9 mgmtd crashes when applying config
* Refactor ensure\_routing\_table\_for\_bridge
* Remove copy&paste code from ensure\_arp\_ndp\_enabled\_for\_bridge
* Use netaddr IPNetwork instead of parsing IP strings
* Consolidate use of IP\_VERSION\_TO\_FAMILY conversion
* Add netaddr as a requirement
* Remove obtaining event classes from strings, vol 2
* Remove core OVN backward compatible code
* Generate config file using oslo-config-generator
* Remove obtaining event classes from strings
* Remove re-typing lists to sets at initialization
* Use common function to (un)install packages
* devstack: Install vrf kernel module if needed
* Drop lower-constraints.txt
* Fix watcher logic for exposing OVN LB with the NB DB driver
* Ensure NDB Proxy gets added for provider IPs too
* Python 3.12: use importlib instead of imp
* Ensure proxy arp and ndp is configure for flat provider networks
* Avoid race when deleting VM with FIP
* Ensure withdrawn events are only processed in relevant nodes
* Group the ovn DBs configs together
* Add support at NB BGP Driver for exposing OVN LBs
* Add support at NB BGP Driver for exposing tenant IPs
* Add support at NB BGP Driver for exposing subnets
* Fix typo on listing config options
* Add support at NB BGP Driver for exposing CR-LRPs
* Add initial support for local OVN cluster instead of kernel-networking
* Devstack plugin
* Fix [EVPN-Driver] Cannot remove routes
* Update master for stable/2023.2
* Fix spelling errors
* [UT] Fix the \`\`TestLinuxNet\`\` wrong assert calls

1.0.0
-----

* Fix issue with virtual ports not being exposed on time
* Make debug log less chatty

1.0.0.0b1
---------

* [functional testing] enhance \_get\_device aux function
* Ensure agent is protected again wrong/missing bridge mappings
* Explicitly define the MAC address when creating the interface
* Avoid vlan device leaking
* Reshape code around ip neigh
* CI: add periodic weekly and experimental queue
* Config register\_opts for tests in base class
* Minor code improvements around move from NDB to IPRoute
* Ensure FIPs are exposed as part of cr-lrp binding events
* Avoid usage of NDB linux\_net utils
* Avoid usage of NDB in ovn\_bgp\_driver, and ovs and wire utils
* Add new privileged rule methods implementations
* Add more new privileged method implementations
* Add new privileged method implementations
* Retry get\_ovs\_patch\_port\_ofport if empty port
* Ensure PortBindingChassis Events consider the port up status
* Minor code improvements on priviledged linux\_net functions
* [NB Driver] Ensure proper processing of LSP ports creation updates
* Ensure watchers do not crash
* Add more pyroute2 protection
* Give more time for patch ports to be created
* Publish docs at docs.openstack.org
* Handle DatapathNotFound in l2 driver

0.4.0
-----

* Use logical\_port instead of name for port binding (localnet) entries
* Optimize the patch port ofport retrieval
* Avoid race condition when adding ovs-flows
* Ensure options are registered for unit testing
* Fix IndexError when no VLAN tag is defined
* Add ls\_get\_localnet\_port function
* Revert "Bump ovsdbapp dependency"
* Ensure all vlan tags are processed
* Bump ovsdbapp dependency
* Add frr\_sync function to other drivers
* Ensure the reconcile intervals configuration option is enforced
* Set more reasonable default syncronization period
* Ensure ovn-lbs on the provider withdrawn works with cascade deletion
* Ensure the needed mac tweak flows are created as part of the wiring
* Split creation of base ovs flows from removal of extra leftovers
* Ensure FIPs events are properly handled
* Replace storyboard links with launchpad ones
* Fix error in NB DB watcher that triggered wrong events
* Add protection from pyroute crashed
* Add initial wiring configuration to a common function
* Ensure cover information is recreated upon coverage failure
* Better protect from FRR restarts
* Ensure permanent mac entry are deleted from the right device
* Add init\_var function to simplify code
* Ensure no wiring is added for OVN exposing method
* Move base bgp configurations to a common bgp utils
* Add supportability matrix
* Change x/ovn-bgp-agent references to openstack/ovn-bgp-agent
* Add a new driver that uses NB DB instead of SB DB
* Change default IPv4 associated to provider bridges
* Add vrf\_leak call to sync
* Improve OVNLBMemberCreateDeleteEvent watching event
* Do not process external network that are not provider
* Ensure localnet port events are processed
* Ensure proper handling of missing bridge\_device at wiring
* Disable only connecting to SB leader
* Add ChassisPrivateCreateEvent to the events
* Split the wiring actions to a different file
* Split the BGP expose/withdraw to a common utils file
* Add protection from tailing spaces on mac field
* Ensure proper order during expose/withdraw
* Add protection from DatapathNotFound exception
* Expose ovn lb on provider network if tenant network is disabled
* Add protection for races around expose\_subnet
* More protection from router deletion races
* Avoid collision between vrf and ovs bridges routing tables
* Minor rename of stretched l2 driver to be in sync with docs
* Ensure permanent mac entry is added for the right device
* Minor fix to avoid unneeded calls for FIP Set and Unset events
* Ensure exceptions on the sync function don't kill the agent
* Ensure OVN LB on provider are only exposed in the right node
* Ensure exposed ovn lb IPs are not removed upon re-sync
* Remove dead code
* Avoid race condition on is\_provider\_network checkings
* Avoid race between withdraw\_subnet and cr-lrp association
* Minor code fix to reuse cr\_lrp\_info
* Avoid race condition at \_process\_lrp\_port
* Add retry mechanism for some pyroute actions
* Remove unneed functions
* Ensure ovn loadbalancers are properly managed
* Support for AddressScopes as an API of what to expose
* Publish docs to readthedocs
* Add releasenotes job
* Fix tox -e releasenotes
* Only process provider lbs associated with local cr-lrps
* Ensure tenant IPs are exposed when using configdrive
* Properly handle virtual port chassis updates
* Ensure FIP to VIP association is not lost on re-sync
* Add some information and VRF configuration on start up
* Make return types consistent
* Add new driver ovn\_stretched\_l2\_bgp\_driver
* Ensure ndp proxy is created for ipv6 amphoras on provider networks
* Adapt to the new fields on Load\_Balancer SB DB
* Fix gates due to tox bump to tox4
* Fix AttributeError exception due to missing old.chassis
* More removal of duplicated code
* Code reshape to avoid code duplication
* Fix problem exposing ovn-lb tenant IPs
* Add support to only expose tenant IPv6 GUA IPs
* Ensure cleanup upon router removal without gateway unset
* Fix delete\_routes\_from\_table
* Fix unit tests run individually
* Fix loadbalancer cascade deletion
* Fix KeyError at add\_ip\_route for provider vlan networks
* Avoid KeyError exception
* Avoid rules recreation at ensure\_default\_ovs\_flows function
* Ensure only the provider network port is used
* Add list\_opts() function and define entry point

0.3.0
-----

* Ensure no IP leftovers upon restart
* Fix typo when calling \_ensure\_network\_exposed method
* Allow the user to set the VRF settings
* Code improvements for clarity and avoiding extra calculations
* Variable renamed for clarity
* Fix lookup in ensure\_routing\_table\_for\_bridge
* Add support for IPv6 multiprefix
* Ensure ovn-lb VIPs on tenant networks are exposed
* Fix rst typos at bgp\_mode\_design documentation
* Add initial BGP Mode documentation
* Use log.debug instead of log.info for ovn driver
* Ensure IP family is used to obtain the existing routes
* Ensure VM ports on tenant networks are withdraw when VM is removed
* Ensure arp/ndp proxy is enabled on the needed bridges
* Minor fixing on EVPN documentation
* Remove events for BGP mode with expose\_tenant\_networks disabled
* Add unittest for OvnSbIdl()
* Add unittests to ovn\_evpn\_agent.py
* Ensure ovn-lb deletion event is also handled
* Add set\_device\_status() to utils/linux\_net.py
* Ensure ovn-lb on provider networks only get exposed in one chassis
* Add unittests to ovn\_bgp\_agent.py
* Add specific info about when to remove pyroute2 workaround
* Protect from NDB issue 967
* Ensure scope is not used for ip6 routes removal
* Add support for ovn-lb on the provider network
* Fix pyroute2 import issue
* Account for DVR when exposing FIPs

0.2.0
-----

* Ensure handling of already added arp/ndp IPs
* Move create\_routing\_table\_for\_bridge() to privleged/
* Increase unittest coverage for privileged linux\_net
* Add unittests to evpn\_watcher.py
* Ensure bridge devices has ARP/NDP proxy enabled
* Add unittests to base\_watcher.py and bgp\_watcher.py
* Ensure netlink commands are privsep executed
* Avoid KeyError exception
* Fix typo at config options. Remove "\_"
* Add support for specifying ovsdbconnection string
* Add oslo.rootwrap requirements
* Add unittests to privileged/ovs\_vsctl
* Add unittests to privileged/vtysh
* Add unittests to privileged/linux\_net
* Add unittests to linux\_net

0.1.0
-----

* Add privsep rootwrap configuration support and filters
* Avoid raising KeyError
* Ensure sync task exposes all NATed IPs on the cr-lrp ports
* Ensure all IPs on nat\_addresses are processed
* Make is\_port\_on\_chassis not specific to a port type
* Ensure default driver match the setup.cfg option
* Lower the neutron-lib version requirement
* Add wait event for ovn agents (bgp/evpn) sb\_idl
* Add support for older OVN versions without Chassis\_Private
* Revert "Remove Chassis\_Private table dependency"
* Ensure ovs-ofctl command works with different flow formats
* Change the entrypoint name to ovn-bgp-agent
* Remove Chassis\_Private table dependency
* Update EVPN Mode documentation
* Fix typo on error handling
* Ensure ovs-ofctl commands work with Devstack
* Add option to specify the EVPN VXLAN local IPs
* [EVPN] Connect VRF to OVS through veth or vlan
* Simplify some methods from OvsIdl and add unittests
* Fix port regex in ensure\_default\_ovs\_flows()
* Refactor parts of ovs.py and add unittests
* Coverage to omit the test files
* Fix string matching bug in ensure\_default\_ovs\_flows()
* Ensure permanent nei entry is added for cr-lrp ports
* Refactor parts of frr.py and add unittests
* Remove OVSDB lock-related code
* Refactor some methods from OvsdbSbOvnIdl + unittests
* Add privsep support
* Ensure existing env variables are not removed
* Fix \_check\_single\_dual\_stack\_format function definition
* Clean-up OVN utils
* Create base watcher class
* Ensure InvalidIP exceptions are handled properly
* Add initial support for EVPN
* Ensure stderr error handling works on non-english systems
* Enable basic gate jobs
* Initial support for BGP
* Initial commit
* Added .gitreview
