CHANGES
=======

18.1.0
------

* vlan: check if wrong device param is set for VLAN member
* cli: update help string of cleanup flag
* cli: add minimum configuration support with migration safety
* execute: fix stderr logging level for successful commands
* Revert "ifcfg: report failure in bringing up ovs bridges"
* Revert "execute: fix stderr logging level for successful commands"
* execute: fix stderr logging level for successful commands
* ifcfg: report failure in bringing up ovs bridges
* doc: update readme
* nmstate: purge nmstate provider
* migrate: purge ifcfg provider
* tests: fix ignored exceptions in unit tests
* cli: unify config parsing with single data structure and loop
* utils: fix log category for mtu check
* docs: update doc source and examples for remove\_config
* nmstate: unit tests fails occasionally
* rm\_config: fix incorrect nic mapping for RemoveNetDevice
* nmstate: skip sysctl setting for ovs bridges and interfaces
* ifcfg: fix mixed provider compatibility with nmstate
* cli: add fallback configuration support for network failure recovery
* doc: update the doc for the exit codes
* nmstate: add vlans over linux bond as members to ovs bridges
* nmstate: fix unit tests from accessing nmstate api
* rm\_config: add device removal support for ifcfg provider
* rm\_config: add device removal support for nmstate provider
* nmstate: fix sysctl path for tests
* nmstate: keep\_addr\_on\_down dispatcher script
* rm\_config: add is\_device\_managed() for nmstate provider
* cli: log full traceback on configuration failure
* rm\_config: identify if device is managed by ifcfg provider
* rm\_config: apply the remove\_config section of config YAML
* cli: schema validation is needed only for user input
* dcb: remove redundant call to reset\_dcb\_map
* nmstate: check if VF's driver binding needed
* nmstate: add type parameter to iface\_state() for interface filtering
* utils: remove redundant method remove\_sriov\_entries\_for\_pf
* rm\_config: add object RemoveNetDevice to handle remove\_config
* ifcfg: add helpers to get pci address of DPDK ports / bonds
* cli: move exit codes to dedicated module with bitmask design
* nmstate: add helpers to get pci address of DPDK ports / bonds
* utils: remove\_sriov\_entries\_for\_pf() handles pf/vf with name/pciaddress
* utils: handle driverctl unset-override "failed to bind" error
* ovs: add pci address of vf used as member of ovs\_bond
* rm\_config: write\_bonding\_masters function for Linux bond management
* nmstate: implement error handling for ovs\_extra bridge configurations
* common: fix typo and improve logging in get\_pci\_address function
* utils: enhance DPDK interface removal with PCI address support
* utils: add SR-IOV cleanup functions for PF and VF removal
* utils: refactor DPDK detach with retry mechanism and error handler
* utils: add gettimeofday() for timestamping backup
* tests: filter timestamps from CLI noop output comparisons
* nmstate: add datapath\_type and del-controller support for OVS bridges
* mtu: check mtu set exceeds device maxmtu
* ifcfg: fix ipv6 accept\_ra settings
* cli: add ExitCode enum to replace magic numbers in return values
* nmstate: refactor parse\_ovs\_extra function for better handling
* migrate: refactor config reading into get\_iface\_config function
* nmstate: add interface-level ovs\_extra support for OVS interfaces
* cli: refactor provider migration with modular design
* migrate: backup the dpdk,sriov map files
* schema: schema support for remove\_config
* nmstate: implement error handling for ovs\_extra for interfaces
* check-commits: add assisted-by to allowed trailers
* migrate: add utils to destroy dpdk ports
* ci: add GitHub Actions job to enforce CI label checks

18.0.2
------

* nmstate: handle ovs\_extra for ovs bonds
* ifcfg: set ipv6 sysctls for static routing
* ifcfg: avoid bringing down of physical interfaces during cleanup
* ovs: add ovs\_extra option for interface and sriov\_vf
* nmstate: fix device type for lo
* nmstate: skip verification of patch ports
* nmstate: avoid cleanup of ovs, sriov and other config.yaml interfaces
* sriov: enable debug mode for sriov service
* nmstate: handle the removal of ethtool --set-priv-flags
* logs: remove logging errors for sriov vf
* sriov: driver binding for VF before enabling promisc
* sriov: wait until driver is bound for NIC partitioning
* cleanup: stop blindly removing nmconnection files
* log: follow-up patch
* sriov: intermittent exception seen in sriov\_config service
* sriov: handle NIC partitioning while autoprobe is disabled
* sriov: unit tests fails while accessing sriov\_config.yaml
* noop: fix noop run for nic partitioning use case
* sriov: wait for completion of driver binding
* bond: ignore order for dpdkbond
* nmstate: bind scripts fail when drivers\_autoprobe is disabled
* nmstate: use dispatcher scripts to configure unhandled ethtool opts

18.0.1
------

* ifcfg: verify file existence before removing
* schema: route schema shall support nexthop and next\_hop
* cleanup: cleanup nmconnections
* sriov: skip PF configuration when its attached to guest
* iprules: ignore defined ip rules
* sriov: nic partitioning with only dpdk ports fail
* sriov: failure in parsing sriov\_map
* utils: fix typo for mac address
* doc: update readme description
* pci: fetch the driver from pci address
* sriov: add pci address and mac address in sriov map
* utils: simplify get\_pci\_address() implementation
* dcb: add function to verify DCBX mode config using mstconfig
* bond: fix to match the mac address with appropriate interface
* logs: make logging precise and readable
* route: adding the option to add route via next-hop-interface
* sriov: retain the VF count for interfaces
* ovs: keep the ovs internal interface name same as the bridge
* ci: add script to check git commits
* nmstate: add the docstring and comments
* dpdk: Bind the VFs with the drivers using dispatcher scripts
* sriov: Apply the PF/VF config only when there is a change
* udevadm: handle udevadm wait on RHEL8.4
* nmstate: SR-IOV configurations are done one device after other
* avoid KeyError: 'drivers\_autoprobe' when use os-net-config-sriov
* ifcfg: Remove duplicate ovs\_extra for DPDK bond
* ifcfg: Fix linux bridge
* Add linux bond supported options
* Fix test cases for noop
* noop: Run os-net-config without applying the changes
* Fix apply of DNS changes without restarting
* Allow empty members for ovs\_bridge
* ifcfg-dns: Allow DNS changes without restarting
* Do not fail on schema validation errors
* fix missing f-string in rollback log
* DCB configurations over OVS DPDK BOND

18.0.0
------

* Move stubs that are repeated several times
* Report failure when provider fails to configure network
* Handle ovs-extra for ovs dpdk ports and bonds
* Set the default provider as nmstate
* dcb: lazily import module
* providers: lazily load NetConfig implementations
* Add stubs for show\_running\_config() to fix linter jobs
* Revert "Add stubs for show\_running\_config() to fix linter jobs"
* Add stubs for show\_running\_config() to fix linter jobs
* Raise exception when switchdev/vDPA is enabled with nmstate provider
* Roll back to previous provider incase of migration failure
* Rollback to the initial settings in case of failure
* Adoption from ifcfg to nmstate provider
* Fix errors in deleting routes and route rules
* Pin setuptools
* Validate SR-IOV support before configuring it (#59)
* Validate SR-IOV support before configuring it
* Allow disabling sriov\_drivers\_autoprobe (#18)
* Add drivers\_autoprobe attribute to sriov\_pf
* Editing some debugs of DCB for easy interpretation of logs (#56)
* Editing some debugs of DCB for easy interpretation of logs
* Reset the numvfs for ethernet interface in nmstate provider (#53)
* Reset the numvfs for ethernet interface in nmstate provider
* Exception logging shall also be stored in default log file (#42)
* Add ovs\_internal to prevent OVS-DPDK kernel iface (#47)
* Adding metric option to route (#45)
* Exception logging shall also be stored in default log file
* DCB config schema update (#46)
* Update schema for dpdkbond members (#44)
* Update the VF args for OvS / OvS user bridges for nmstate provider (#39)
* DCB config schema update
* Update the VF args for OvS / OvS user bridges for nmstate provider
* Update cleanup\_all\_ifaces (#41)
* Add override-checkout main to the content provider job (#40)
* Adding pep8 and  py39 jobs back to CI (#38)
* Add override-checkout main to the content provider job
* Adding pep8 and  py39 jobs back to CI
* Revert "Update the VF args for OvS / OvS user bridges" (#37)
* Revert "Update the VF args for OvS / OvS user bridges"
* Update the VF args for OvS / OvS user bridges (#32)
* sriov\_config: give up on waiting for pf after 60 seconds (#36)
* sriov\_config: give up on waiting for pf after 60 seconds
* Add ovs\_extra param for mac table size (#33)
* sriov\_config: fix race condition on boot (#35)
* sriov\_config: fix race condition on boot
* Handle nic mapping for DCB configs (#31)
* Update the VF args for OvS / OvS user bridges
* Handle nic mapping for DCB configs
* Add ovs\_extra param for mac table size
* VF parameters are configured with nmstate provider (#30)
* Re-factor switchdev for HWOL flag (#27)
* Fix key error in DCB configuration (#29)
* VF parameters are configured with nmstate provider
* Enable dcb logs to print in log file (#28)
* Fix key error in DCB configuration
* Enable dcb logs to print in log file
* Need to start DCB config service after Day 2 config is applied (#26)
* Need to start DCB config service after Day 2 config is applied
* Fix file regex for zuul job (#24)
* Need to add mstflint package as pre-requisite for os-net-config (#25)
* Need to add mstflint package as pre-requisite for os-net-config
* Fix file regex for zuul job
* Add EDPM Zuul Jobs for os-net-config repo (#20)
* Add Multi-Queue support for vDPA devices (#7)
* Avoid bringing down devices not managed by NM (#21)
* Mismatch in table-id, metric shall be ignored for routes (#17)
* Update offload flag for legacy mode in SR-IOV PF (#22)
* Update offload flag for legacy mode in SR-IOV PF
* Avoid bringing down devices not managed by NM

17.0.0
------

* Support IP Rules with route\_table names (#19)
* Support IP Rules with route\_table names
* Mismatch in table-id, metric shall be ignored for routes
* Reduce the definition of test stubs for update\_sriov\_pf\_map (#16)
* Reduce the definition of test stubs for update\_sriov\_pf\_map
* Allow DNS/IP rule configuration only once (#14)
* Write sriov\_config.yaml for nmstate provider
* Allow DNS/IP rule configuration only once
* Set the primary hw address for ovs bridge (#13)
* Adding support for DSCP configuration (#9)
* Adding support for DSCP configuration
* Add ovs patch port and Add ovs patch port into bridge from patch port setting
* Fix add\_ovs\_interface log which mislead ovs dpdk port
* VLANs needs to be restarted when the associated linux bond is restarted
* Link\_mode and vdpa is not updated in sriov\_map (#2)
* Link\_mode and vdpa is not updated in sriov\_map
* Skip failure on setting inactive interface as bond's primary
* SR-IOV is not configured when the provider is not set
* Add infiniband support with nmstate provider
* Apply the nmstate config all at once
* set the primary interface for ovs bond (nmstate provider)
* Add SR-IOV, NIC Part support using nmstate provider
* Renamed variable/method names to suit the usages
* Add VLAN support for nmstate provider
* Added initial Zuul jobs for os-net-config
* Add ovs bridge/bond support with nmstate
* Remove jobs which blocks CI
* Add linux bond support for nmstate provider
* Refactor check\_configure\_sriov to prevent dublicate adding sriov\_pfs
* Fix breaking vf-lag functionality in os-net-config
* Allow configuration of inactive DPDK devices as well
* Add route table, routes, ip rules support for nmstate provider
* Add ethtool\_opts support for nmstate provider
* Adding Ethernet interface for nmstate provider
* Fix PKEY\_ID value in ifcfg file of infiniband child interface
* Run openstack-tox jobs on centos-stream-9
* Add ethtool\_opts config for sriov VF
* os-net-config runs ethtool command without restarting interfaces
* Avoid reconfiguring SR-IOV devices during stack update
* Updates to tox and setup.cfg files
* Mellanox NICs' ifcfg-scripts should not be removed when no CONFIG change exists
* Update master for stable/zed
* Updating Zuul CI jobs for os-net-config repo

16.0.0
------

* zuul: Declare queue at top level
* remove unicode from code
* Drop support for Python 3.6 and 3.7
* Fix formatting of release list
* Use python job template for Zed
* Add mac-size-table to all OVS bridges
* Format json output properly
* Fix failure in dpdk driver binding with VF during reboot

15.2.0
------

* Revert "Updating sriov\_config.service to run before driverctl.slice and network-pre"
* For linux bond over VFs, disable spoofcheck by default
* Adding steering\_mode config to sriov\_pf object
* Use Python3 yoga unit tests
* ovs-dpdk: Add support for n\_rxq\_desc and n\_txq\_desc
* Fix log message related to pkey\_id
* The default max/min tx rates shall not halt deployment
* Notify the need for overriding the default driver for Mellanox NIC
* vDPA support for CentOS9
* Moving is\_mellanox\_interface to common
* Adding logging to file
* Add ifcfg-\* scripts on boot for Mellanox NIC interface
* Change the pkey\_id type from string to int

15.1.0
------

* Drop six
* Drop unused requirements
* Updating sriov\_config.service to run before driverctl.slice and network-pre
* Update sriov config service to handle nic partitioned PF
* Allow linux tap to use routes
* allow vhost0 to pass list of members
* Replace deprecated import of ABCs from collections
* vdpa: Introducing the vdpa PF flag
* sriov\_config: light refactoring
* Avoid creating multiple entries of udev rules

15.0.0
------

* Add Python3 xena unit tests
* Update master for stable/wallaby
* setup.cfg: Replace dashes with underscores

14.1.0
------

* Updating sriov\_config service to run after openibd service
* Write complete os-net-config examples
* Document os-net-config YAML format
* Refresh README.rst, expand usage.rst

14.0.0
------

* Check to ensure active DPDK NICs only mapped once
* basic support for Linux tap devices
* Exclude DPDK mapped VF device even if not present
* Wire up new tripleo upgrades jobs template
* Support binding VFs after moving to switchdev
* Fixing the dependency for sriov\_config service
* Replace deprecated UPPER\_CONSTRAINTS\_FILE variable
* Add Python3 wallaby unit tests
* Update master for stable/victoria

13.0.0
------

* Migrate to content provider jobs/templates
* Enable smfs software steering when switchdev is enabled

12.6.0
------

* Bump hacking min version to 3.0.1

12.5.0
------

* Add NIC Partitioning support for Mellanox VFs
* Avoid openvswitch restarts during re-run

12.4.0
------

* Switch from unittest2 compat methods to Python 3.x methods
* Set OVSBOOTPROTO to dhcp when using dhcpv6 with OVS
* Missing document start "---"
* Switch to newer openstackdocstheme and reno versions
* Add Python3 victoria unit tests
* Update master for stable/ussuri
* Add support for python 3.8

12.3.0
------

* Skip VFs configured for DPDKs during NIC ordering
* Retries are attempted if VF configuration fails
* Cleanup py27 support
* Run ifup on a bond when a slave interface is restarted

12.2.0
------

* SRIOV VF: Add min\_tx\_rate and max\_tx\_rate
* Use unittest.mock instead of third part mock
* Enable new routing rules on the fly without restarting interfaces
* Adding IPoIB child interfaces to the os-net-config
* We need to use the MAC instead of PCI Address for Mellanox cards

12.1.0
------

* Allow linux\_team in ovs\_bridge
* Using tempfile instead of fixed path in unit tests

12.0.0
------

* Adding testcases for sriov\_config
* Cleanup the sriov\_numvfs config scripts
* Stop testing python2.7
* Switch to Ussuri jobs
* Update master for stable/train
* setup.cfg: Cleanup

11.3.0
------

* Add linkdelay option
* Fix usage of oneOf keyword in schema

11.2.0
------

* fix missing shared\_block for PF interface in switchdev bond connected to ovs
* Numvfs setting during update/upgrade
* Blacklist sphinx 2.1.0 (autodoc bug)
* Avoid driverctl run if the driver is already bound
* Add ETHTOOL\_OPTS support for LinuxBond class

11.1.0
------

* ifdown does not work if no ifcfg file exist
* Add Python 3 Train unit tests
* Moving insignificant messages from error to warning in sriov\_config.py
* Restructuring the method of vf-representor renaming
* Fixed the false InvalidConfigException for vfid=0
* Fix handling of SR-IOV PF routes
* [FUP] Update sriov\_pf.yaml samle with ethtool\_opt

11.0.0
------

* Unify ethtool options logic
* Add support for ethtool options for sriov\_pf ports
* Add missing unit-test for IbInterface ethtool opts
* Publish documents
* Update docs testing
* Replace git.openstack.org URLs with opendev.org URLs
* Modify udev rule for VF representor rename
* Add upper constraints to tox
* Uncap jsonschema
* OpenDev Migration Patch
* Update master for stable/stein
* Add ability to specify multiple search domains
* Update master for stable/stein

10.4.0
------

* Add ovs\_options and ovs\_extra parameters to VLAN object
* Adding a udev rule to rename the vf representors
* Adding a udev rule to save sriov interface name before configuring switchdev
* Adding pci address in SRIOV config
* Replace use\_dhcp6 with use\_dhcpv6
* Removing the warnings generated due to yaml.load()

10.3.0
------

* Fix os-net-config interface restarts when applying routes
* Configure switchdev mode in SR-IOV in os-net-config
* Allow adding sriov\_pf over ovs\_bridge, linux\_bond and ovs\_bond
* Enable setting domain parameter for interfaces
* Change python3.5 job to python3.7 job on Stein+
* Checking correct flag to add rules to bridges
* Add Policy Based Routing Support to os-net-config
* Updating requirements for pyudev
* Update hacking version to latest

10.2.0
------

* Drop baremetal job template
* NIC Partitioning works with NM enabled
* Sample templates for linux\_bond, ovs\_bond, dpdkbond using VFs
* NIC-Partitioning: DPDK devices comes up properly after reboot
* Change openstack-dev to openstack-discuss
* Fix - restart VLAN interface on underlying device change
* Fix incorrect application of 'ip' commands for bridges
* Fix link in HACKING.rst
* Replacing the link in HACKING.rst
* Apply IP/netmask/route/MTU changes without bouncing interfaces
* Update min tox version to 2.0

10.1.0
------

* Retry ovs-appctl command
* Don't quote {posargs} in tox.ini
* Allow list\_of\_routes to be [] in config

10.0.0
------

* Restart ivs/nvfswitch after config file is updated
* Cleanup zuul.d/layout.yaml
* Replace coremask with cpu\_list in vrouter schema
* Update reno for stable/rocky
* add python 3.6 unit test job
* add python 3.6 unit test job
* switch documentation job to new PTI
* import zuul job settings from project-config

9.2.0
-----

* Fix numbered NIC mapping when using dotted VLAN notation

9.1.0
-----

* Stub out check for OVS installed to avoid failing tests
* Add check for OVS for objects that require it
* Switch to stestr
* Add default VF configs for ovs and ovs\_user bridges
* Add sriov\_vf type as member of ovs\_dpdk\_port
* Adding VLAN support and other configs for sriov\_vf
* Route object - add support for neutrons Route schema
* Syncing the requirements
* vlan and linux\_bond members for contrail vrouter
* Add release note link in README
* Restore the order of params in ifcfg file that was inadvertently changed
* fix tox python3 overrides

9.0.0
-----

* fix a typo on bond\_mapped.yaml
* Don't restart ivs/nfvswitch in os-net-config
* Adding ethtool command after binding dpdk drivers in Mellanox nics
* Remove mox usage
* Update reno for stable/queens
* Update links in README

8.3.0
-----

* Provided the absolute path of sriov\_config service
* ifcfg: don't restart ovs if --no-activate is specified
* Adding the class and mac approach as dpdk-devargs in mellanox ConnectX-3
* Add network objects sriov\_vf and sriov\_pf
* Revert "Update reno for stable/queens"
* Update reno for stable/queens
* Zuul: Remove project name
* Modify reno structure for future stable branches

8.2.0
-----

* properly escape the release notes text
* Add releasenotes configuration
* Remove RH1 OVB jobs from configuration
* Use INFO log level for getting nics
* Only log that mapping file is in use if it's actually true

8.1.0
-----

* Migrate os-net-config to zuul v3 jobs
* Add support for VPP Bond

8.0.0
-----

* Fix licenses to be explicit with Apache 2.0
* Allow dns\_servers to be an empty array
* Add retry and timeout for VPP interface discovery
* Added driver option for Contrail DPDK
* Allow to pass more than two DNS while putting 2 DNS
* This patch adds initial support for the Contrail vRouter interface
* Add NIC Mapping Reporting Feature
* Delete controller for standalone OVS bridges
* Make onboot parameter for ifcfg configuration configurable

7.2.0
-----

* OvS 2.7 support - dpdk-devargs needs to provided for DPDK devices
* Update .coveragerc after the removal of respective directory
* Removes unnecessary utf-8 encoding
* There is no documentation for os-net-config
* Drop MANIFEST.in - it's not needed by pbr
* Update .gitignore
* Fix --noop being ignored for dhclient execution

7.1.0
-----

* Add schema-based config data validation
* Fix 'tox -e cover'
* Use os-net-config mapping file when interface in bond or bridge
* Multiqueue support for OvsDpdkBond
* MTU setting for OVSDpdkBond
* Continue bringing up interfaces even if one fails
* Configure multi-queue value for DPDK Port

7.0.0
-----

* Remove unused Babel setup
* Configure mtu value for DPDK port
* Removed vlan port on ovs\_user\_bridge in dpdk bond samples
* os\_net\_config should map nics that are down if nic is in mapping file

7.0.0.0b1
---------

* Fix coverage tox config
* Updated from global requirements
* Add support for VPP interface
* Correct the test code to remove 'pass' where it is not needed
* Handle bools-as-strings nm\_controlled values
* Allow setting NM\_CONTROLLED=yes in os-net-config ifcfg files
* Restart Openvswitch after adding DPDK ports
* Allow ovs\_extra to be specified as either a string or list
* Network service is failing with DPDK

6.0.0
-----

* Remove child members activation for OVS-DPDK bond
* Add check that ovs\_extra is passed as list
* Make os-net-config pass tox py3 tests
* Exclude SR-IOV VFs in the nic numbering
* H803 hacking have been deprecated
* Drop py33 support and add py35

6.0.0.0b2
---------

* Show team and repo badges on README
* Add support for enabling hotplug on interfaces
* Stop dhclient in os-net-config if interface not set for DHCP
* Add sample files for fail\_mode and ovs\_extra template

6.0.0.0b1
---------

* Add ovs\_fail\_mode option for OVS bridges
* Add support for name replacement in OVS\_EXTRA
* Add support for ethtool\_opts option
* Add route\_options parameter
* Open os-net-config for Ocata
* Add options attribute to NFVSwitch

5.0.0
-----

* Add mac address to the DPDK mapping file
* Fixed nic numbering issue of DPDK nics after the nic has bound
* Raise NotImplementedError instead of NotImplemented
* Cleanups and new unit test for IVS

5.0.0.0b3
---------

* Supporting numbered nics for DPDK Port and DPDK Bond
* Add support for OVS DPDK Bond
* Add support for OVS DPDK Bridge and Port
* Enhance and fix NIC mapping feature
* Fix Linux bond/slave ifup ordering
* Enable os-net-config to support and configure NFVSwitch
* Add adapter teaming support using teamd for ifcfg-systems
* Remove discover from test-requirements
* Add support for Infiniband interfaces

5.0.0.0b2
---------

* Make os-net-config idempotent with Linux bonds and MAC mapping
* Add support for OVS patch ports
* Add some debugging output to ordered\_active\_nics

5.0.0.0b1
---------

* Add support for OVS tunnels
* Add warning for no active nics
* Normalize operstate value for interfaces
* Fix typos

0.2.4
-----

* Use PEERDNS when no dns\_servers or use\_dhcp is provided
* Bump hacking in test-requirements.txt

0.2.3
-----

* Add MASTER=bond SLAVE=yes to linux bond interfaces
* Use interface operstate to determine nic status

0.2.2
-----

* Fix order-of-operations bug in os-net-config restart\_interfaces

0.2.1
-----


0.2.0
-----

* Add ability to set IPv6 routes in os-net-config templates
* Fix hierarchy for Linux Bonds and Linux Bridges
* Enable os\_net\_config to configure IVS

0.1.8
-----


0.1.7
-----

* Allow setting MTU to 1500
* launchpad bug 1537330, fix \_is\_active\_nic
* Use assertTrue/False instead of assertEqual(T/F)
* py26 is no longer supported by Infra's CI

0.1.6
-----

* ifcfg: add VLAN=yes when needed
* Added natural sort for interfaces in utils.ordered\_active\_nics()

0.1.5
-----

* Fix kwarg assignment in objects.py
* Add Linux Bridge capability to os-net-config ifcfg
* Add support for Linux Bonding to os-net-config ifcfg
* ifcfg: Add support for dns\_servers
* Change ignore-errors to ignore\_errors
* Support multiple addresses assignment with eni
* Support multiple addresses assignment with ifcfg
* os-net-config: ensure ifup is called just once
* Correct class comment for NetConfig
* Add --detailed-exit-codes
* Allow to specify the root directory of the filesystem
* Add support for dhclient\_args
* Automate selection of active bond slave
* Set primary interface on OVS bonds

0.1.4
-----

* Don't set OVSDHCPINTERFACES if bridge is static
* ifcfg: don't set VLAN=yes if is an ovs\_port
* Add NM\_CONTROLLED=no to each interface configuration
* Add 'eno\*' interfaces to embedded\_nics
* Add flag for DEFROUTE=no in ifcfg files to ignore DHCP gateway
* -v trumps -d on the CLI
* Mark ENI files as autogenerated

0.1.3
-----

* Enable renaming of interfaces without reboot

0.1.2
-----

* Add a --no-activate option to disable device up/down actions
* Refactor ifup/ifdown into base-class
* Refactor noop to enable logging of disabled operations
* Remove deprecated references to oslo-incubator
* Move noop flag to provider base-class
* Add a persist\_mapping option to the mapping file
* Add mapping option to influence nicN mapping order
* Strip trailing whitespace from yaml samples
* test\_cli add stderr/stdout sanity assertions
* Derive sample location from test file, not pwd
* Fix test\_cli exit code assertion
* Add sample and cli test for simple interface config

0.1.1
-----

* Correct the ENI provider name log statement
* Fix verbose/debug loglevels
* Workflow documentation is now in infra-manual
* If setting a default route, use default netmask
* Add a .gitreview file for os-net-config
* Update child\_members to use a Set

0.1.0
-----

* Correct the setup.cfg OS
* Move versioning into version.py
* Updated description in README.rst
* Minor updates to setup.cfg
* README.rst updates per yaml config changes
* ifcfg: restart child interfaces on updates
* Fix a few pep8 issues..
* Add ovs\_extra to some of the sample configs
* Don't log errors if files don't exists
* Add support for ovs\_extra
* A vlan on an OVS bridge doesn't require a device
* Correct the noop format for the eni provider
* Add support for parsing YAML
* Add nic1, nic2 naming abstraction
* ifcfg: Exclude ifcfg-lo from cleanup
* Correct add\_object call
* Docstring updates to NetConfig objects
* Add --cleanup, and impl for ifcfg
* Use underscores for provider function names
* Set the MAC to the primary interface
* Add configuration samples
* Use --noop instead of --mock
* Adds mock ability to the ENI and Ifcfg providers
* Uncomment the provider.apply call
* Add README example docs, etc
* Don't write 'None' to ifcfg route files
* Add logging to utils
* Add -d and -v options for logging level control
* Add logging to the eni provider
* Add logging to the ifcfg provider
* Add copyrights to files
* ENI: bring up bridges first on Debian
* ENI: enable 'auto' on bridges by default
* Update impl\_eni to set the MTU
* ifcfg: don't call set Interface for vlans..
* Add vlan support for the ENI implementation
* Update impl\_eni so it ifup's the interfaces
* ENI fixes for v4/v6 ips. DHCP test fixes
* Add os-net-config CLI
* Implement object json parsing functions
* Remove some extra print statements
* Add OvsBond object and impl for ifcfg format
* Consolidate OVS\_EXTRA for the vlan test
* Vlan object and support for ifcfg
* Initial commit for basic ENI Debian/Ubuntu network config
* Adds link to spec in the readme
* Add OvsBridge configuration support
* Implement apply for ifcfg implementation
* Import processutils from oslo-incubator
* Initial ifcfg implementation for interfaces/routes
* Add interface, address, and route objects
* Initial commit
