CHANGES
=======

* Modify SG flows which let packets of relative connections pass
* Fix exception is dissasociate_floatingip
* Call dissasociate FIP when VM is deleted
* Fix public gateway mac handling
* On update router transfer the router ports info
* security group update fix
* DF allways consider the lroutre as distributed
* add update method in nb_api and plugin
* Create FIP port in active state by default
* Updated from global requirements

1.0.0
-----

* Devstack error on redis installation
* Add external bridge in devstack when dnat is enabled
* Adjust Default configurations of Dragonflow
* Update ReadMe for database details
* Limit the frequency of db sync
* Return directly if lswitch doesn't exist when deleting
* Fix local conf examples
* Improve l3 agent support
* Fix the unconsistent security_groups field value in lport
* Fix indentation in ARP responder code
* Add Redis Availability spec
* Vagrant: Add support for parallels and libvirt
* Install OVS from packages in ubuntu 16.04
* enable_service db-ext-services is a slip of pen? df-ext-services is correct
* Updated from global requirements
* DHCP DOS prevention
* Initialize the tables for DF DB
* Remove Q_DF_CONTROLLER_IP variable leftovers
* Clean nosql db only on controller node
* Use packaged Ovs for fedora 23 and higher
* uniform all the interface for all objects
* Updated from global requirements
* This patch implements port security app
* Add port security support in DF plugin
* Updated from global requirements
* Metadata service agent spec
* Fix ubuntu 16.04 support for zookeeper installation
* Add Dragonflow austin talk to docs
* Fix ubuntu 16.04 support for etcd installation
* Add version field implement for plugin and all objects
* Implement lock-free mechanism for db-lock
* Updated from global requirements
* Security group app support port update event
* Take publisher info from distributed DF DB
* Have ZMQ devstack set multiproc socket via correct config
* Support specific Open vSwitch branch
* Add support for register_listen_address in the ZMQ driver
* Updated from global requirements
* Detect VM deletion in tests by VM ID and not VM MAC
* Register redis pubsub to topic SEND_ALL_TOPIC automatically
* Change primary key field to id in NbApi.create_publisher
* Add a handler to process OFPError messages
* Fix Bug for #1573912 to change redis cluster creation under stack user. The bug is caused by creating redis cluster under root ,here change it under stack user
* Implement security group fullstack and ut cases
* unload openvswitch module before install OVS 2.5
* add get single router and security group object method in nb_api
* check if controller(return from idl query) is empty
* Enable tempest security group tests
* Fix lock reset error when the lock is timeout
* Fix delete port sequence in dragonflow plugin
* [Trivial] Remove unnecessary executable privilege
* Fix lswitch object lack get name method bug
* Fix parameter name in DBClientNotFound to be ip
* Have redis' get_all_keys return stripped key
* Let connection to FIP obey security group rules
* Make get_schema_helper accessible globally
* Limit publisher updated event to 1 in 3 minutes
* Ignore pep8 error: N530: Direct neutron imports not allowed
* When deleting lport, call app's handler only when ofport is valid
* Optimize security group fw rules
* Add TTL for distributed lock
* This patch implements security group app
* add ovsdb monitor fullstack test case
* Add Local Controller Reliability to Mitaka as Experimental
* allow packet data to be passed as bytearray to applicative tests
* Enable back pub-sub topic test
* Updated from global requirements
* Remove last leftovers of 'update'
* Fix empty ofport value
* code for local controller reliability
* Fix event names of db
* add check_controller() and set_controller_fail_mode() to vswitch_api
* remove redundant comma(',') from table_id and cookie
* Add topic to the list as test and only once
* Remove unused parameter
* change dragonflow apps to use mod_flow instead of ryu's OFPFlowMod
* Lookup router_port's network_id with lswitch's topic
* Mitaka Version Features Update
* Fix port update event loss
* Fix unnecessary IDL run invoke bug
* Fix UnboundLocalError in create_subnet and update_subnet
* Stale port deletion when transaction failed
* Fix AttributeError for calling _register_as_publisher
* Updated from global requirements
* Add sync_started and sync_finished notification events
* Allow filtering of tables and columns in OVS DB monitor
* Fix DHCP fullstack tests
* Send Chassis update on SEND_ALL topic
* Enable selective distribution with Pub/Sub
* Fix typos in Dragonflow files
* Add publisher's table
* use IDLs built-in notify for ovsdb monitor
* Add Redis Devstack
* The implementation of distributed-DNAT
* Support devstack configuration of selective topology distribution
* Run fullstack without concurrency
* Updated from global requirements
* Support py34 tests for redis
* Install OVS as an OS service
* Fix links in the pluggable_pubsub doc
* When adding router port use tenant_id of the subnet
* Updated from global requirements
* Allow port update and reduce double port set
* Rename anonymous variable _
* Add RateLimiter object
* Fullstack test cases for topology Fix the problem caused by overlaped ip address Change-Id: Ice5993aa3700df98fbff421d4583a6ed963c9aaf
* Dragonflow L3 Agent for distributed DNAT
* Remove test that are based on flow diff
* Do not log error on missing table during pub/sub test
* Solve the problem that sometimes network can't be recycled due to some ports of that network are used by some vms
* Fix ovsdb monitor connect ovsdb fail bug
* Fix typos in Dragonflow files
* Fix py3 mock cannot be compared to int
* Fix py3 incompatibility of using dict.itervalues()
* Add Redis DB Driver and Redis PubSub Driver
* Delete stale df db objects when neutron db transaction failed
* Fix openflow dump exception
* Fix arp responder test not to be realtive
* Add tests for L3 application
* Do not add lport to db_store via topology
* OVSDB monitor to filter port update events
* Fix DHCP ip base test to use unique subnet
* suppress exception on subnet delete not found
* Add control plane test doc
* Get server IP from the Nova cilent
* Fix metadata regular expression in fullstack test
* Fix exception happening randomly on port deletion
* Support Apps accessing ovsdb and nb objects
* Fix fullstack error: TooManyExternalNetworks
* When deleting a network make sure to remove all linked ports
* Fix printing of empty tables
* Fix attribute error happens in _delete_old_security_group
* Fix a logic error and add unit tests in retry-wrapper
* Fix etcd installation
* Fix RAMCloud installation
* Revert "Install OVS via the OS and make it an OS service"
* add local controller reliability spec
* Update supported API extensions for tempest
* Print stack trace on exception in run_db_poll()
* Add topic to the router port
* Install OVS via the OS and make it an OS service
* Configure git repository
* Fix some minor bug in VMTestObj
* Add subnet_allocation extension to DF plugin
* Add quota tracking resources
* Start etcd service only if not already working
* Add network argument for fullstack.VMTestObj.create()
* Move to dragonflow base test class
* Fix df-db clean
* Fix Topology module exception on VM delete
* Make sure we convert topic from unicode to ascii for ZMQ
* Change DbStore to index by topics
* Add unit tests for DbStore
* Fix wrong method acsess to LocalInterface
* Update MTU by the tunnel type
* Change DbStore API to accept topic
* Add publish-subscribe abstraction spec
* Increase etcd read  timeout
* Code for selective topology distribution
* Implement DB consistency
* Add DB Consistency spec
* Implement ovsdb monitor function for dragonflow
* Call sync on local cache only on none normal Exception
* Multiple consumers for PLUGIN topic
* Add DHCP applicative testing
* Fix neutron quota limitation
* Dragonflow db CLI addition
* Use global wait time when waiting for Neutron commands
* Add operation retry for zookeeper
* Add Redis_driver.rst
* Minor fixing to applicative testing objects
* Fix receiving OVS events twice
* Add extension fields on port create
* Fix logic of test_infrastructure
* Support db clean-up in df-db script and unstack
* devstack: Don't enable tempest in rally job
* Fix InvalidTransportURL from neutron.tests.base
* Common L2 ARP Responder improvement
* Add document describing Dragonflow supported extensions
* Add missing table in df_db
* Replace use of scapy with ryu
* Update local.conf examples with ZeroMQ publish-subscribe
* Update the zookeeper conf to use the ZMQ publisher service
* On error when handling DB event do a full sync
* Add topics for all objects
* Remove table monitor config params
* Change test to start publisher service from DF_PUB_SUB to is_service_enabled
* Fix test_apps.TestApps.test_infrastructure in fullstack
* Create NB_API after fork
* Add python-pytun to test-requirements
* Add topic parameter to notify callback call to avoid exception
* Add spec: IGMP Application and Multicast Support
* Add dev-ref for pub/sub service
* Add l2 multicast test
* Add option to disable multiproc publish/subscribe
* Ignore df-ext-services
* Formalise publisher API and create publisher service
* Fix wrong format of spec index
* Get networking information in VMTestObj using neutron API
* Updated from global requirements
* Add kazoo requirements for zookeeper
* Do not fail VMTestObj.create if multiple networks found
* Add optional closing function to BaseTestCase.store
* describe ovsdb monitor mechanism for DragonFlow
* Make L3 Proactive App the default
* Change info printings for pub-sub to debug
* Add new Dragonflow logo with banner
* Change chdir to cd in etcd service conf
* Send topic for DB get all entries methods
* Remove leftover from the centralized controller
* Add topics for security groups
* Fixed tests to allow to work with q-dhcp service
* Remove patch file which was used in centralized DF
* Fix blogs links and add new Neutron DB consistency blog post
* Add performance testing spec
* Support Zookeeper multi-node deployment
* Make pack and unpack message utility methods
* I/S and example of applicative testing of DF apps
* Selectively Distribute Topology to Compute Node Change-Id: I32bb8f650ff4bd57f291cf4bb0ba8d6711eb9755
* Add DF DB monitoring class
* Remove nanomsg
* Support distributed DNAT(floating IP) configuration
* Use compile ovs utility from Neutron tree
* Add howto steps to enable meta service
* Add support for DF built-in Pluggable pub/sub
* Fix all in-one deployment, Multi publisher configuration
* Add Neutron publisher configuration
* Add new test objects destructor method
* Add L3 proactive application
* Extra check when adding a tunnel to a remote chassis
* Make ARP responder test more robust
* Fix DB CLI tool
* Updated from global requirements
* Add topics to DB API
* Move _send_port_desc_stats_request to ryu_base_app
* Add tenant_id as topics for core elements
* Adds security group app
* Add wait to DFDaemon class
* Add a util function load_driver by name or class
* Add Port Security protection spec
* Add Dargonflow DFDaemon base class
* Configure security data into DF DB and sync it into local cache
* Allow adding router interface to RouterTestObject
* Move subnet creation/deletion to external class
* Add ARP responder option
* Delete broadcast/multicast classifier flow on network delete
* Move port creation/deletion testing to its own class
* Remove the test number of flow
* Add new OVS test for DHCP application pipeline
* Prepare alembic scripts for subproject DB module
* Change i18n to use oslo_i18n
* Fix new packet variable name
* Fix typo in comment
* Add new class to handle VM creation/destruction during tests
* Implemet lrouter deleting in the local controller side
* Add ryu installation to be via pip
* Fix ValueError in allocate_unique_key in Zookeeper
* Move ARP responder methods to a utility class
* Have a single ryu app. Have all DF apps be dispatched from there
* Add to the ovsdb driver get id by name
* Delete leftovers from Dragonflow centralized version
* Always update local cache with received port data
* Fix etcd.conf
* Fix readme installation link
* The centralized l3 controller is deprecated from Mitaka
* Not allow delete subnet gateway port
* Add Zookeeper driver for DB
* Updated from global requirements
* Fix hosts configuration in df_db.py
* Resubmit the fix of race which happens in set_key of etcd
* Remove nanomsg install from the DF devstack plugin
* Added zmq to the Dragonflow devstack plugin
* Add tenant ID to to port object
* Fix comment spelling
* Avaliable update external field when net-update
* Support IPOpt from oslo.config
* Definitely disable dhcp-agent
* Refactor fullstack tests
* Replace deprecated LOG.warn with LOG.warning
* Support DB clustering configuration
* Install OVS modules and load modules
* Use OVS branch-2.5 instead of master
* Fix unable to create directory for nanomsg
* Adjust unit tests for Dragonflow
* Add network/router/subnet/port list API tests. Run tests sequentially
* Remove duplicated codes in update_port
* Add security groups design blog post to documentation
* Fix log printings for controller
* Copies etcd in case it not exists an existing etcd folder
* Vagrant: Use the IP address from eth1
* Add neutron port creation command test
* Remove ofport=0 Exception as it handled in the applications
* README.rst: Change "wiki" to "documentation"
* Vagrant: Add a second compute node
* Move Vagrant configuration into a vagrant directory
* devstack: Fix configure_df_plugin to work on compute nodes
* Remove py34 until OVS pip package support python3
* Run etcd as a service in fedora (systemd)
* Correct flows for router_interface in compute node
* Remove the dhcp agent from the devstack default configuration
* devstack: Cleanup inconsistent spacing
* etcd: Conditionally start/stop etcd server
* Add and refactor log info in df_local_controller
* Fix Vagrant configuration for Dragonflow
* Catch DBKeyNotFound for delete_network
* Fix etcd urllib3 leak
* Add OVS parse flows method
* Add fullstack tests to verify number of OVS flows
* Fix creation error of existing directory in etcd
* Use eventlet.queue instead of Python std
* Revert Commit 84240a37ccb87d02c27a358b0eba49de0daa9aa0
* Support PortOpt from oslo.cfg
* Add new test and code refactoring
* Fixed naming inconsistency in the DF external service Closes-Bug:#1529451
* Install nanomsg for pub-sub module
* Fix a potential race when update an existing key in etcd
* Adding RethinkDB devstack local.conf controller/multinode example
* Change etcd installation process
* Fix NoneType error in run_db_poll
* Clean security group code in plugin
* Add port binding action to df-db CLI
* Add DragonflowVirtualPort contsant and fix controller code
* Exclude tests related to DHCP Agent scheduler
* Remove q-dhcp from gate job tests
* Fix DHCP port deletion
* Add DHCP and Router create fullstack tests
* Refactor fullstack create network test
* Fix devstck boost lib install for fedora
* Add version variables(major,minor) for the boost library install
* Install python-etcd for fullstack tests
* Configure port binding correctly in plugin
* Add new test to call neutron API and check results in dragonflow db
* Add test hook scripts to Dragonflow
* Add dump all DB to CLI tool
* Adding RethinkDB devstack local.conf example
* Add package dependencies for RAMCloud
* Add Reno release notes to Dragonflow
* Fix df-ext-services.sh run under devstack
* Add service start for etcd
* Added DHCP configuration documentation
* Add Dragonflow Tokyo summit video to documentation
* Make sure correct branch of Neutron is pulled on testing
* Clarify OF_IN_PORT
* Remove an unused constant
* Fix How-to install link
* Ignore exception on router interface delete if router deleted
* Exclude last failing tests
* Adding RAMCloud driver
* Add Rally benchmarking hooks to Dragonflow
* Tests Exclude from Dragonflow
* Exclude DHCPv6 tests and Adv Ops
* Exclude tempest test that is failing
* Seperate unit and fullstack testing in dragonflow
* Skip tempest tests that are unrelated to Dragonflow
* Fix port IP update
* Different ETCD installation
* Add pipeline diagrams to document
* Add selective-proactive to documentation
* Add description for DB driver API
* Add description for applicative adapter DB layer
* Add Pluggable DB architecture introduction
* Add Pipeline images
* Add Pluggable DB images
* Fix install guide
* Add sanity checks for db shell
* Add 'sync' action to DB callback
* Add RAMCloud devstack local.conf controller/multinode example
* Fix links in documentation
* Send DB updates to Queue
* Fix readme and add links
* Fix Distributed DF diagram size
* Ipv4 DHCP support without running the DHCP agent
* Add more Dragonflow documentation
* Change constant names
* Remove un-needed 'name' method
* Do not fail on mkdir for etcd  version upgrade
* Do not add extra network- on onv_init use the GUID
* Add pluggable DB section to documentation
* Add Distributed DHCP documentation
* Start adding distributed Dragonflow documentation
* Add Distributed DNAT spec
* Create a Dragonflow CLI tool for retrieving DB data
* Add RAMCloud devstack local.conf example
* Install Guide for the Distributed Dragonflow
* Install Dragonflow package
* Moved the centralized DF install guide from the main readme
* git clone only if the directory does not exist
* Change ETCD server to newer version (v2.2.2)
* Call update_extra_dhcp_opts_on_port on port update
* Use the correct param when calling _set_network_name
* Configure etcd DB location
* Convert OVSDB APIs to commands
* Clean all flows on controller restart
* Source needed OVS common methods from devstack
* Start etcd and ovs services when doing stack rejoin
* Add etcd source to Dragonflow lib
* Add Dragonflow specs directory
* Fix the get_network_id() function to always return a value
* Add support for unicast DHCP requests
* Remove OVN leftover from the dragonflow devstack plugin
* virtual function stubs patch fixes
* Add Dragonflow logo to documents
* Updated from global requirements
* Build Kernel Modules for OVS
* Wrong secondary DNS address
* add virtual function stubs for DFlowApp class
* Revert change to PortOpt
* Add vagrant directory to .gitignore
* Prevent DBError caused by wrong param passed to get_security_group
* Handle VM shutdown case
* Return to publish-subscribe for etcd driver
* Only log router data when created
* Support correct lswitch update/add
* Temporary disable etcd publish-subscribe
* Use oslo_config new type PortOpt for port options
* Change the DHCP methods to accept the instance instead of a list
* Add the DHCP App to the default loading SDN applications
* Support RYU versions compatibility in DHCP handling
* Remove retry decorator as neutron has moved them into api layer
* Fix chassis printing for multi node
* Add Vagrant support for Dragonflow deployment
* Remove patch dir
* Suppress Exceptions on L3 Packet IN
* Add cleanup functionality to OVS bridge
* Fix router port get tunnel_key method
* Remove API_WORKERS=0 from plugin
* Revert adding DHCP App by default
* Move NB_API to plugin init
* Fix rpc code due to neutron changes
* Change ignore-errors to ignore_errors
* Add the DHCP App to the default loading SDN applications
* Fix etcd-python client installation
* Catch DB key not found exceptions on delete
* Update .gitignore to include eggs/ directory
* Add Dragonflow exceptions for common DB exceptions
* Updated from global requirements
* Fix python-etcd client installation process
* Remove OVS installation in DF unstack
* Stop logging deadlock tracebacks
* Convert chassis value to JSON
* Add sub transactions for plugin
* remove ^M
* Allocate unique port keys from DB
* Distributed DHCP MTU option support
* Spell fix and correct method for is dhcp enabled
* Change the centralized dragonflow index document
* Fix dragonflow documents
* Add new documentation to dragonflow
* Add dragonflow distributed architecture image
* Activate pep8 check that _ is imported
* Add Security group id's to port
* Add Security group rule create/delete to plugin
* Security group create/delete to DF plugin
* Simplify ACK/Offer for DHCP app
* Add DHCP/DNS configuration to DHCP APP
* Support subnet updates and add dns_servers configuration to subnet
* Stop unneeded cloning of Neutron during CI
* Change local.conf to enable VNC in compute node the right way
* Fix device owner setting in plugin
* Return new router on router interface delete
* Refactor pluggable DB module
* Add local flow on switch bootstrap
* Check that owner is valid
* Add new ETCD DB driver
* Add DB API for key-value pluggable drivers
* Set API_WORKERS=0 in devstack
* Add devstack tempest job script
* Removing unused dependency: discover
* Add DHCP options and DHCP operation code global definitions
* Do not pre-config DHCP option_list length
* Distributed DHCP SDN app connect the app to DB module
* Added exception handling for the DHCP packet in handler
* Spelling fix
* Support list of dns address for DHCP option 6
* Rename enable_dhcp(..) get_dhcp_enabled(..) in the etcd impl
* Updated from global requirements
* Add port owner to logical port object
* Add subnets to logical switches and process in controller
* rename conf files to Centralize versus Local controller
* Add tunnel_key to router port and small fixes
* Fix unknown open flow port case
* Distributed DHCP SDN app for Dragonflow local controller
* Add openflow application dispatching abstraction mechanism
* Make method signature between controller and apps simpler
* Add debug printings in DF controller
* Add devstack examples for multi-node setups
* Use 30 bits available for the tunnel id not just 24
* Rename the 32 bit mask to match REG_32BIT_ON_MASK to match kilo branch
* Add RAMCloud DB driver installation
* Make the dragonflow devstack process pluggable for DB drivers
* Add configuration file to dragonflow local controller
* Load maximum unique key identifier from DB
* Delete DHCP port from DB on network delete
* Start etcd before Neutron
* Fix port binding_profile extraction in plugin
* Change local.conf example to reflect etcd
* Adjust DB to publish subscribe
* Unicast reactive L3 flows to the correct tunnel port
* Support configuring remote ip to ETCD server
* Remove references networking-ovn
* Dragonflow Plugin and etcd implementation
* Updated from global requirements
* Decompose the controller code to fit into publish-subscriber model
* Extract flow priorities to constants
* Enable logging in df-controller
* Adjust "Binding" table name change in SB DB
* Adjust plugin patch with recent changes
* Updated from global requirements
* Delete router port with cookie
* Adjust plugin patch
* Add IPv6 support to Dragonflow
* tox.ini: Correct typo in py34 enablement
* Change to df-controller in devstack plugin
* Updated from global requirements
* tox: Add py34 target
* README: Cleanup and refactor
* Add ARP responders for router interfaces
* Flush router interfaces configuration on switch up
* Extract table names to constants file
* Add set-controller to dragonflow devstack
* Add updated schema file for dragonflow
* Add devstack option to install Dragonflow local controller
* Initial version of L3 in dragonflow local controller
* Add local data store across controller and applications
* Add logical router and logical router ports read API
* Updated from global requirements
* Add empty ML2 template for Dragonflow
* Add ETCD implementation for NB API
* Add Logical DB Abstraction layer API and OVSDB Implementation
* Add support for delete port
* remove unused method add_flow
* Add DFlowApp base class for the DF controller APPs
* Avoid installing duplicate flows
* Adjust L2 agent imports after decomposition
* Install ryu by setup_package instead of setup_develop
* Make the connection details and chassis name configurable
* Remove Local flow install From the L2 Agent to The  SDN app
* Add resubmit for multicast/broadcast
* Start to add support for local dragonflow
* Fix properties naming for the PortData object
* Remove unused methods and members
* Refactoring the  port status event handler
* legacy router port offloaded to the NORMAL path
* Port Event based Subnet binding and ARP responder install
* Change the update_local_port_num method to be private method
* Validate check for zero segmentation id in add_subnet_binding
* Added get_subnets to the Router PortData Class This will enable to get a list of subnets configured for this port
* Added more devstack install  parameters to dragonFlow controller options
* Updated from global requirements
* Changed update_local_port_num to return the Port Data Object and tenant Object, instead of returning multiple properties
* Added the get_routers_ports_by_subnet to the tenant class This will be used to get all the router ports on a subnet for a tenant
* Update version for Liberty
* We removed too much in the following patch https://github.com/openstack/dragonflow/commit/3169ff32c7cc8388382e25947d63bfdb2e0006c1 Added self conf attribute back
* Align the move from stackforge to openstack
* Update .gitreview file for project rename
* No need to modify/patch  the RYU project for the  register_cli_opts it was all ready fixed in the RYU project itself
* Add define for the translate table number
* Remove unused fields from OpenFlowController
* Do not remove subnet data on router delete, only remove when there are no ports connected to that l2 subnet. Subnet class is needed even when it is not connected to any router in order to install local subnet L3 traffic offloading to Normal rule
* Connect the delete router event to the SDN controller. Make sure we delete the router instance and remove all its interface ARP responders
* The Tenant subnet dic and the Routes were pointing to the same Subnet Object, that caused problems and sync issues Modify the subnets dic in the router class to be a list of the subnet ids connected to this router. Accessing the object is from the Tenant main subnets dic
* subnets data was added to the port object sent on RPC for add_arp and del_arp BUT  were not added to the get_ports_by_subnet. So on startup when we actively requested the port in the l3 controller agent we got the port data but with missing inforamtion. Added the same subnets data to the ports object when get is called
* Remove unused method _iter_entities_by_segmentation_id
* Do not loop on the router class do the loop on the tenant subnet class c for fast access. Separate patch will handle this duplicate data structure, use only net ids in the router object
* Do not raise an exception, Only LOG. This scenario  is possible that we will get the port status from the OpenFlow switch before we receive the segmentation_id, when we get the port/router we will update the snat binding will be updated when we get the segmentation info
*  Neutron main line compatibility patch for liberty.  Neutron introduce a new parameter to the l2 OVS class a dict for bridge  classes  Add this param to the  dragonflow l2 class and created the br_int move  object with the additional required methods
* ipv6 compatibility issue, make sure we do not handle in the controller any subnet that is not ipv4, ipv6 is offloaded to the Normal path Add a casting call function for add_flow_normal_local_subnet and add a inner check for ipv4, this was needed because we access the code before calling the inner func
* Exception was raised for ipv6 subnet for not having segmentation id, We currently should not handle IPV6 First check if it is an ipv4 subnet if not do no handle
* Fix readme VLAN bug was fixed remove comment
* Change fail_mode setting to API Call
* Fix README 1) Fix documentation link, move doc title  up 2) Added link to the project blueprints
* Supress port sync up exception
* Set int-br fail mode to "standalone"
* VLAN support fix
* Fix unit test test_new_subnet_installed_order_ports_router_dp failure
* Sync ports on L2 Agent startup
* Fixes to README
* Remove local subnet flow when no VMs use it
* Add type information for delete_port()
* Optimized get_tenant_by_id()
* nits
* Spererate add and remove functions
* More fixes for UT
* Fix in unit test
* Add Neutron tox rules
* Use OVS_LIB set_connection_mode method
* Remove set controller RPC message
* Send packet out to the destination port and to destination DP (data path element ) The packt out was sent to the source port and the first packet was always lost Note:: Verified on one machine setup need to verify on multi host
* Fixes to devstack plugin
* Added Documentation section and new links Fix install guide MInor fix for to devstack conf files
* Add normal flow even when no router
* Remove DVR from Dragonflow devstack plugin
* controller_plugin: Always notify about VM ports
* Add unit test for openflow application
* controller_plugin: Simplify port finding
* Simplify condition in ControllerL3ServicePlugin.dvr_vmarp_table_update()
* Misc nits
* openflow_app: Delete E/W flows when removing a router interface
* Objectify CIDR
* Support for working with IPV6 1) Offload the Ipv6 tarffic into the NORMAL path 2) Make sure we do not get exception and we know to handle IPV6 subnets
* Move inter subnet handling to the classifier table
* Remove unused function for the l3 openflow application
* Fix DHCP tag of 4095
* Align Dragonflow L2 Agent with OVS L2 Agent
* Remove the fix for dvr to send router arp data with every port update We are currently based on the legacy L3 so we will get port update for the router port
* README.rst: Small cleanups around readability and spelling
* Neutron initiated port removal
* Port Removal handling
* Put cookie when creating flows
* Create subnet object in sync port
* Rename context so it doesn't override locals
* Fix get_ml2_port_bond_data() return code
* Move incorrect error printing
* Add FIP/SNAT using legacy network controller
* Enable Env for DragonFlow Unit Testing
* Fix ARP responder
* Make the L3 VM to VM flows idle/hard timeout configurable
* Fix L3 flows installation
* The ARP Spoofing prevention is set to true by default by Neutron Change not the raise an exception only disable the feature Set to false and print error message
* Taking in account method change name in neutron:
* It seem that this BUG is related to the change of the router type to DVR in order to support the centralize SNAT We will need to check if this is a bug in neutron or by design but the router port is missing the segmentation id data To overcome this is issue we send additional arp notify for each new port for the router port on the same subnet, this will double the number of arp notify RPC messages to the agent messages but this is the only way to fix it from outside of neutron
* Fix the way we check is_router to include the DVR type
* Add segmentation_id to router port
* DataPort.local_port_number should not fail
* Minor nits
* Simplify install_l3_forwarding_flows() signature
* Wrong check for is router in port data class  missing the DVR router used the cost
* Fix in DF L2 Agent
* Add DVR settings for devstack plugin
* Fail L2 agent in case arp spoofing prevention is enabled
* Remove unused functions and var
* Remove SNAT flows
* Change the bootstrap flows pipeline to send multicast and broadcast to the Normal Flow directly from the classify table Chnage the ARP match to have higher priorety so it will be sent to the ARP responder table first and not offload th the NORAML path
* Send between subnets and snat flows only for relevant subnets
* Make sure that we send arp add rpc call on the correct port It always sent the router port instead of the new port
* Configure SNAT and Inner subnet flows
* check if we received the port data to avoid exception and error message on all use cases no dest port , no gateway port and if it is not a router Solving the bug itself will be checked in in a separate patch
* Spit the private function that install the arp responder into two Casting -- install the flow on all the openflow forwarding elements Base - that only installs on a specific one
* Simplify packet handling code
* openflow app: Fix minor issues
* openflow app: Remove unused code and fix spelling errors
* The datapath object was not updated when a switch reconnected to the SDN controller When receiving the switch features always update the data path object
* Connect SNAT updates from L3 Agent to SDN Controller
* Enable SNAT for Dragonflow
* Use RYU with openflow 1.3 in place of l3 plugin call
* Access the new 'subnets' interface property
* Minor nits and cleanups
* openflow app: remove duplicate variable in sync_port
* controller agent: Fake agent_mode to pass candidacy check
* openflow app: Implement router deletion
* openflow app: Add __repr__() to Subnet() class
* openflow app: Cleanup TenantTopology handling
* openflow app: Change comments to docstrings
* openflow app: Remove mistakenly added keys to subnets in sync_port
* Remove interface support
* Refactor openflow app
* Minor fixes to improve README visbility
* Try different syntax for image adding
* l3 controller agent: Simplify interface iteration
* Controller Agent: Split up iteration for actual processing
* Fix README images
* Fix image links in README
* Edit the project README page
* Use standardized group constant instead of listing our own
* Register to schedule notifications
* Get segment ID from correct attribute
* Fix logging format
* Router delete and unused method
* Migrate to oslo_log
* Reuse base class implementation as much as possible
* Fix race condition between port data received from OVS and port_sync
* LOG fixes
* Fix match criteria for deleted flow on ARP responder remove Use metadata and not local VLAN
* Add policy setting for compute node
* Log messages fixes 1) Use the same log call 2) correct formatting 3) Move messages that are debug to debug level and remove unnecessary logs, insert  critical error  log messages
* 1) When detecting flow sync issue, when a flow is reached to the controller with no metadata start the bootstrap flow installation. 2) Create a bootstrap flow installation method Closes-Bug: #1429600
* Set PYTHONPATH in execution command
* Fix formatting error in OF_packet_in_handler()
* Fixed formatting error in log
* Copyright message Fix
* Installation Documentations
* Clean up the l3 openflow application 1) Remove unused old code 2) Remove unused dependencies of the old implementation using the metadata table 3) remove unnecessary wait for the metadata table
* Add ARP RESPONDER for new router interface
* Changes to devstack plugin: 1) SDN Controller IP is defaulted to the HOST_IP parameter 2) Add validations for OVS version 2.3.1+
* Fixes for devstack external plugin
* Add devstack external plugin files
* Add L2 Agent to Dragonflow
* Fix VM deletion scenario
* Handle case of router with no interfaces
* rename
* add l3_sdn_agent
* Changed the read me instructions
* Set Up the neutron l3 sdn addon using neutron as library L3 service plugin L3 Controller Agent + OpenFlow controller
*  Added documentation and install guides for the PoC
* Initial Cookiecutter Commit
* Added .gitreview
