CHANGES
=======

* import zuul job settings from project-config
* Updated from global requirements
* Add rate limiter to icmp handler(L3 proactive app)
* Clean the exclude list of flake8
* Add E129 to pep8 check list
* Add E128 to pep8 check list
* Respond icmp unreachable message with rate limit(L3 app)
* Add E265 to the pep8 check list
* Fix unnecessary sync in db consistent
* Add H904 to pep8 check
* Use neutron stable/ocata branch in ocata test
* Fix could sync version 0 object in redis
* Fix error method usage in df_local_controller
* Fix the spec format for dragonflow
* Fix typo error in spec doc for df
* Add control and data plane config in cassandra
* Add TTL invalid handler with rate limit(L3 app)
* Add H301 check to pep8
* Remove  N342 from pep8 ignore list
* Use buffer to cache original data
* Updated from global requirements
* Respond udp and tcp to router port with icmp unreachable message
* Add unique key to router
* Add H233 to pep8 check
* Update the feature list
* Modify metadata of packet when route

3.0.0
-----

* Updated from global requirements
* Set value for local_ip
* Add rate limiter to icmp handler(DNAT)
* Install default neutron config
* Fix dragonflow doc format
* Support reno releasenotes
* Change vague HTTP_PORT to METADATA_HTTP_PORT
* Typo fix: transmited => transmitted
* Replace six.iteritems/itervalues with dict.items()/values()
* Typo fix: shoud => should
* Do revert NAT to ICMP embedded packet
* Remove the useless flow at L3_LOOKUP_TABLE
* Add cookie infrastructure to Dragonflow
* Prevent match overlap in L3_LOOKUP_TABLE
* Remove the duplicated flows in table L3_PROACTIVE_LOOKUP_TABLE
* Handle TTL invalid packets(dnat app)
* Handle TTL invalid packets(l3 proactive app)
* Remove unused constant UINT32_MAX
* add factory methods for testing
* [01/12] NbApi: Use SEND_ALL_TOPIC when topic is omitted
* Add placement-api service to gate
* Spread ids of tables
* Remove datapath parameters in portsec app
* Add datapath property and make it optional in mod_flow et al
* adding parser and ofproto porprties to df_base_app
* North Bound Code Refactor
* Typo fix: infomation => information
* Remove link to modindex
* Fixes some current typo bugs on dragonflow project
* Create tunnel port only once
* Fix some format and words in port-status and allow-address-pair specs
* Updated from global requirements
* Configure df controller to accept ttl invalid msg
* Make py file line endings unix style
* Remove python-zmq install
* Traceroute support
* Elevate the _send_packet method
* Remove checking if datapath is None
* Use keystoneauth1 to authenticate with nova
* Use neutron-lib portbindings api-def
* Rename RyuNeighAdvertisementFilter class
* Small refactor of dnat app
* Updated from global requirements
* Remove test for obsolete l3_openflow_app
* Documentation fixes for DHCP app
*  classification spec fix
* Add missing requirements
* Reset related conntrack entries when the configuration about SG changed
* Support VM live migration
* Remove obsolete method _delete_remote_port_from_chassis
* Disable PUB/SUB in metadata service
* Delete the tap-metadata device when it exists in the system
* Standardize tox
* Cassandra Support
* Use project_id instead of tenant_id in qos notification
* Fix broken gate of py27 and py35
* Add IPv6 ND Neighbor Advertiser application
* Fix "create_nova_conf_neutron command not found"
* Enable coverage report in console output
* [TrivialFix] Fix dir specs comment typo error
* remove duplicate args
* Mock publisher in nb_api for Test_API_NB tests
* Refactor test case for ml2 mech driver(subnet)
* Refactor test case for ml2 mech driver(port)
* Fix the fullstack failure
* dpdk: could not bind or unbind nic in the latest release
* fullstack: Unify client creation code
* Removes unnecessary utf-8 encoding
* Raise exception when no lock_id defined for resource
* Updated from global requirements
* separate control plane and data plane ip address
* uniform method for allowed address pair
* Moved configuration options of dragonflow
* Spec to support service status reporting
* refactor db consistent and object refresher(step1)
* dpdk: could not load igb_uio.ko when install df
* Add legacy sNAT rule to l3_proactive_app
* Rename tunnel_type in Chassis to tunnel_types
* check valid resource version for nb_api
* neutron-lib: use L3 constant from neutron-lib
* Add manual deployment guide
* Tap-as-a-service plugin
* Use constant as table name
* Updated from global requirements
* Fix devstack default
* Remove DFVersionObjects
* change router/qos/fip lock range
* Change "Openstack" to "OpenStack"
* Turn log info to debug
* Stop accessing advertise_mtu option
* Re-download flows when reconnect to ryu controller
* Support default route from port extra dhcp options
* Temp workaround: fix zeromq binding error
* change network/subnet/port lock range
* Dynamic register nb db models
* Remove the legacy tunnel port code
* Increase the number of retries for db-lock
* change security group lock based on sg_id
* add active detection app for allowed address pairs
* Apply virtual tunnel port to l2 app
* Add unit tests to dhcp_app
* Nitpicks: Set ryu.lib.packet as variable
* Change installation instructions to use example files
* Add Metadata proxy to features list
* SGApp support allowed address pairs
* Refactor test case for ml2 mech driver(qos)
* Apply unique_key to security group
* Use same priority for remote port's multicast flow
* Enable DB 'sync' action when enable_selective_topology_distribution
* remove unnecessary args from df
* e125 warning can be resolved
* move l2-multicast case to ml2_l2 case
* Do not use multiproc publishers in fullstack tests
* Log add/remove network flows when it really happens
* Revert "Fix the broken gate of fullstack"
* Fix the broken gate about qos
* uniform resource method name in df_local_controller
* Fix the broken gate of fullstack
* [TrivialFix] Fix function document comment typo error
* Fix lock timeout issue
* Correction in df-db dump command
* [TrivialFix]File *.rst fix typo error
* Refactor DHCP app for code reusage
* Add close function on publishers
* Add support for mocking ipv6 subnet in tests
* Use common ovs port mock in dnat tests
* Fix gate failure
* Updated from global requirements
* Make ICMPResponder work for all router interfaces
* Rename l2_ml2_app.py to l2_app.py
* Classification app spec
* put duplicated check dhcp flow code into common file
* Fix invalid dpdk configuration
* Add port qos code
* Uniform constants in df
* Add ARP flows for all the IPs assigned for the VM
* use shared method when create/update object
* Use etcd3 stable release
* Add chassis in db_store
* Have ZMQ send values in pub/sub events
* Delete deprecated Hacking in tox.ini
* Move test case from test_local_controller to test_df_local_controller
* Remove df core plugin
* Apply constant table name to db_store and db_consistent
* Unify method to sync from nb db
* Update logical port when pull tenant topology from db
* Moved configuration file of common parameters
* Fix 'Version is None' report for publisher
* Remove PortStatusTableMonitor
* uniform meaningless topic judgement
* Change wait_until_true's default exception to subclass Exception
* Make ml2 as the only option in devstack
* Use Neutron's entry points to extend OVSDB Connection
* Use unique_key for logical_port in nb db
* Re-download dhcp flow when enable dhcp of subnet
* Temporarily disable port-status-notifier
* Unify core_plugin getter
* Use neutron rally job
* fix problem about subscriber on neutron server when redis failover
* remove sync method in df local controller
* Moved config options of Ryu
* Output format of df-db changed to display output in table
* Moved config options of dnat app
* Fix broken fullstack due to tempest
* Add unit tests to df_local_controller
* refactor redis unit test code
* Create virtual tunnel port when specified
* Remove floatingip from DB Store when it is deleted
* DNAT: Remove from local cache in floatingip delete
* Service Function Chaining specification
* Implement db consistency logic in df local controller
* Show team and repo badges on README
* Use constant as nb db table name
* Fix order of arguments in assertEqual
* Remove unused file
* Moved config options for dhcp_app
* Moved config options for l2_app
* Return if lswitch is None for lport process
* Move setup_logging to after common_config.init
* remove useless code in redis pubsub ut
* Rename dragonflow/db/db_models.py
* Get neutron plugins by using neutron_lib.plugins.directory
* Moved config options of metadata_service_app
* Updating imports for agent metadata opts
* db: use neutron_lib.db.model_base
* Fullstack: close stored objects when setUp fails
* Fix TAP device leak in fullstack tests
* Fix old member name for Floatingip
* Set l3 agent binary name to appear as DragonFlow binary
* devstack: unify DF configuration
* Remove del_network_id
* Make py file line endings unix style
* Spec to support check if chassis is alive
* Get updated revision_number from AFTER_DELETE event
* Add df-db utility to the troubleshooting and debugging documentation
* IPv6 Support in Dragonflow specification
* Change the tunnel_key in df_db
* Support passing credentials via env in fullstack
* Use devstack-buildin script for install/uninstall pkgs
* Use devstack-buildin service mgmt script
* Updated from global requirements
* Store local network id to nb db
* Refactor nb db models
* fix some typo
* remove useless code
* Additional fixes
* Fix the fullstack error in dragonflow plugin
* Add testing and debugging documentation
* Updated from global requirements
* Refactor local_networks in L2ML2App
* Use argparse instead of parsing arguments manually
* Add portstats table to df-db
* Use router_id as cache key instead of router object
* Updated from global requirements
* Connect nb db in l3 plugin after neutron server fork
* Remove duplicating log setup
* Refactor test case for ml2 mech driver(remote port)
* Propose Cassandra support
* make mod flow uniform and delete duplicated args
* Fix remote port tunnel not ready bug
* Catch and print more exception for cli
* Use discard to safely remove element of set
* Nitpicks: Fix invalid attribute access
* Nitpicks: Fix typo in RedisPortStatusNotifier
* Nitpicks: Remove redundant pass
* Fix unable to update subnet when subnet disables dhcp
* Small refactor of methods in dhcp_app
* Updated from global requirements
* Fix typo in L2ML2App
* Add license property to setup.cfg
* Disable q-meta when enable df-metadata
* Remove setting Q_L3_ENABLED
* Remove df-ext-services
* Add nb_db_driver_clean support for nb db devstack
* Refactor test case for ml2 mech driver(port security)
* Zookeeper Devstack support for Fedora
* Updated from global requirements
* remove useless code for nb api
* Prevent creating port assosiate with sg for IPV6
* Add QoS North Bound Functionality
* Fix delete l2 goto l3 flow deleted twice
* Clean imports in code
* fix format for devstack/etcd_driver
* Disable port status feature in case of non-redis configuration
* make ipv4_text_to_int more valid
* Update docs for automated setup with vagrant
* add publish service to doc
* remove useless code in df base app
* Remove useless code
* Dragonflow install broadcast flows incorrectly
* Format log external_dict of logical port
* Drop MANIFEST.in - it's not needed by pbr
* Make nb_api allocate_unique_key general
* devstack fails on compute node
* Fix logic in _is_valid_version
* Use the global cookie for ICMPResponder
* Remove add classifier flow for router interface in l2 app
* make addresses aggregation in SGApp
* Start network connections after neutron forks workers
* Unify timeout of neutron operations in fullstack tests
* Fix wrong use of update_key
* Update .coveragerc after the removal of openstack directory
* add db store object version compare function
* Fix etcd driver requirement
* Remove the global fake of cfg
* Refactor test case for ml2 mech driver(allow address pair)
* Prevent creating DHCP port for IPV6
* Fix typo in NbApi
* Fix the wrong use of StrOpt
* Use parse_mappings from neutron-lib
* Update tox install to support constraints and branches
* Move OVS to 2.6 release
* Fix Redis write failure after HA failover
* Refactor router's code
* Don't include openstack/common in flake8 exclude list
* Fix the intermittent of fullstack failure
* Use the right wait_until_true function from neutron
* Not create dump file when running dragonflow
* Use ryu to parse error message
* port 'up' and 'down' status notification
* Separate the read/update and the delete of objects
* Use Ml2PluginV2TestCase to test DFMechDriver
* Remove netaddr code from sg_app
* Add physical_network support for provider network
* Implement L2 Communication for flat network
* Spec for virtual tunnel port implementation
* fix old comment issues for remote port
* Uniform the beginning format for dragonflow spec rst
* Enable release notes translation
* Refactor redis driver and fix the db interface

2.0.0
-----

* Fix miss do aging bug when ovsdb reconnect to df
* remove useless exceptions for dragonflow
* Fix a typo in documentation
* Refactor ovsdb_vswitch_impl.py
* Optimize get_local_ports_to_ofport_mapping
* Remove the deprecation warning of neutron.db.l3_db
* Use revision_number instead of DFVersionObjects(port)
* Use revision_number(network subnet)
* Support etcd clustering configuration
* Make rst file line endings unix style
* add some router get methods
* Improve .rst format in port_qos to display tables
* Set USE_ML2_PLUGIN=True in the compute sample local.conf
* Implements oslo conf generator
* Fix typos in allowed_address_pairs.rst
* Check port existence before updating it in NB DB
* Updated from global requirements
* Use revision_number instead of DFVersionObjects(sg)
* Refactor OvsdbSwitchApi
* Remove useless parameters and spaces in devstack scripts
* Using assertIsNone() instead of assertEqual(None)
* Remove ovsdb_nb_impl.py
* Implement L2 Communication for vlan network
* Fix dhcp app options
* Clean imports in code
* Implement remote port function for dragonflow
* modify the remote port spec
* Clean imports in code
* Fix zookeeper log
* Use ovs_port_updated event to update ofport and mac
* Remove deprecation warning in mech_driver
* delete duplicate fetch args code in app
* Use ovs.db.idl to monitor ovsdb
* Remove the obsolete method in dnat_app
* Updated from global requirements
* Make DHCP app use copy of subnet host routes
* Some typos need to be fixed
* Optimize the name of the variable in the function
* Remove vport_<tunnel_type> before removing openvswitch
* Remove deprecation warnings
* Fix the pep8 issue of import neutron.test
* Refactor options and add oslo config generator support
* Add extra routes support for router
* Downgrade the log level for Unknown port online/offline
* Clean imports in code
* remove unused code
* Fix error in log function
* Add options to make ml2 be default for devstack
* Optimize code to handle switch update event
* Fix load_module_if_not_loaded not working
* Clean ovs if it has been installed
* Add default-subnetpools to DFPlugin
* Add a base unit test class for df_app
* Fix pep8 "Use list comprehension instead of filter"
* Overwrite metadata interface in df.metadata_interface
* Support publishers that set value to None
* Use NeutronOVSDBTransaction instead of Transaction
* Enable install redis server with package manger
* Fix bug that non-admin can't create floatingip
* Add metadata service to devstack gate
* Prevent AppDispatcher from interrupting app execution
* Remove TestDfController in unit test
* Made router version testing agnostic to first version
* Remove segmentation_id in dnat_app
* Add port to DBStrore before notify apps
* Fix UnboundLocalError when neutron fail to create fip
* Made FIP version testing agnostic to first version
* Have timeouts in fullstack raise exceptions
* Verify virtualenv is up-to-date
* Make py file line endings unix style
* Correct condition in redis_driver script
* Make test_object_version.py line endings unix style
* Register to update security group event
* Make metadata env. tests parrallel to service
* Update ICMP pong checksum in tests
* DB time testing
* Updated from global requirements
* Use ovs db notification to update metadata flows
* port 'up' and 'down' status notification
* Install necessary packages before compiling ovs
* Don't install ovs from devstack
* Correct rst syntax errors in selective topology distribution
* Correct .rst syntax for security_groups.rst
* Updated from global requirements
* Use revision_number instead of DFVersionObjects(floatingip)
* Change 'revision' to 'revision_number'
* Fix neutron db failure in update_port
* Move crc16 to requirements
* Explicitly describe python support
* Use the latest api of NXActionRegLoad
* Clean imports in code
* Add df-metadata to sample configuration files
* Fix db models of security group
* Use neutron-lib constants in security group application
* Configure controller listener ip and port
* Fix confused chassis meaningless value
* Remove white space between print and () for dragonflow
* Use uuid to match router port when delete router interface
* Fix bug with handling of dhcp address
* Install crc16 when redis is enabled
* Updated from global requirements
* Correct dragonflow reraising of exception
* typo fix
* TrivialFix: Remove logging import unused
* Don't calculate redis server twice
* Remove the router_interface_to_key in db_store
* #1616271 FIP ingress should use router interface mac to send packet to vm,not fip'mac Change-Id: Ib3e1f2b30454e2f882230c6fbec586a9eeced8c5 Closes-bug: #1616271
* Some typos need to be fixed
* Add port qos spec
* Remove useless data synchronization code
* Use revision plugin rather than version_db for routers
* Fix rst format for keep_db_consistency.rst
* Add route to instance for metadata service
* Use bytes to accommodate python3
* Support DPDK
* Updated from global requirements
* Remove reference to neutron.i18n
* Fix VM deleting error in CI
* Bypass security group check for metadata packet
* Clean imports in code
* Check the validity of arguments
* Change the method of checking if a lport is configured SG in SGApp
* Use df_utils.load_driver over importutils.import_class
* Pack python dict directly without converting it to json before
* Fix deleting flow bug
* Delete ip rule when exit metadata proxy
* Fix lack dirty data clear code in df_local_controller
* Optimize l3_app/l3_proactive_app for ipv4 check
* Cleanup ovs source package
* Fix Bug #1602493 to add local port process if port is associated with fip
* Updated from global requirements
* establish only one connection with NbApi
* Do not append the same redis config again and again
* Prevent from get_lport in update_port function
* Fix library imports in core/l3 plugins
* Disable creating default network topo in CI
* Enable DeprecationWarning in test environments
* Add settings to set OVS bridge protocols
* Add setting to set OVS manager
* Initialise vlog infrastructure
* Use df_utils.load_driver rather than import_class
* Updated from global requirements
* devstack cleanup  - use existing devstack function_exists  - Remove useless PYTHONPATH
* Fix some spelling mistakes
* Add redis delete table command
* Allow External NB database Driver installation
* Change to private functions
* update import error
* modify supported_extension_aliases
* Don't use multicase Mac address as source mac or port mac in fullstack test cases
* Correct some ML2 L2 errors
* Use UTC time when update lockedobject timestamp
* NB DB entry point definition
* Add Dragonflow metadata service
* Add Vlan Networking
* Update the home-page info with the developer documentation
* Start NB DB driver after OVS starts
* Removed H305 and H307 from flake8 ignore list
* Add a command prompt for action bind
* Extra command line argument is invalid
* deleting router before deleting lswitch
* Remove white space between print and ()
* uniform attribute default values in ML2 mech driver
* Support L3 plugin
* Fix DNAT Bug
* fix redis requirement and import hiredis
* use setup_develop devstack function to configure the project
* Add topic key to subnet
* Implement L2 Communication for ml2 dragonflow driver
* Updated from global requirements
* check if vlaue is none before serializing it into json
* Set pep8 test N342 to ignore
* There are some error words
* Security Groups Design
* Add support for updating port's subnet attribute
* Fix RuntimeError while dictionary changed size during iteration
* Add ICMPResponder to respond ICMP for router interface
* Modify allowed address pairs spec file
* Use restart service to start ovs
* Add return statement
* Support some binding attributes updating
* Use AFTER_INIT in lieu of AFTER_CREATE
* One abnormal northbound event will be block the whole event queue
* fix confused argument in db store
* Fix dangerous use of optional fields in ML2
* Support device id updating
* Updated from global requirements
* fix fullstack errors in CI
* Correct naming inconsistency in DBNotifyInterface
* add segment_id and network_type get methods in lswitch
* Updated from global requirements
* Fix receving double messages in df-controller
* Fix duplicated and missed flow in l2 l3 app
* Change db to redis from etcd at gate testing
* Not to log warning when an unbinding port is created
* Do not start multiple table monitors
* Add missing oslo requirement
* fix redis GET command
* Describe the remote device communication for Dragonflow
* Fix redis installation bug with stack user
* Support ML2 Plugin
* add device_id field into logical port object
* Add sanity checks for Dragonflow DB selection
* Do not query all DF ports when deleting a network
* Updated from global requirements
* fix a bash syntax error
* Remove double spaces in strings
* Implement Guru meditation reports
* Search in _get_ports_by_subnet_and_owner by multiple subnets and owners
* Propagate bridge update notification request
* Minor nits in Pub-Sub spec
* Fix typo in l3App.packet_in_handler
* Optimize l3App.packet_in_handler
* Fix too many arguments in df-ext-services.sh
* Create default mtu and default routes for switch and subnet
* Add allowed address pairs spec
* Switch to neutron_lib
* Re-implement the usage of br-int
* Updated from global requirements
* update test-requirement.txt
* Delete callback function to port status events
* On update router transfer the router ports info
* security group update fix
* Call dissasociate FIP when VM is deleted
* Fix exception is dissasociate_floatingip
* DF allways consider the lroutre as distributed
* Change the project description to reflect the current status
* Remove explicit eventlet.monkey_patch()
* Fix public gateway mac handling
* Create Bridge in dnat_app failed
* Updated from global requirements
* add 'host_routes' feature to dhcp_app
* Create FIP port in active state by default
* Add release notes generation to Dragonflow
* Modify SG flows which let packets of relative connections pass

1.0.0
-----

* Install OVS from RPM manually
* DF does not use the dhcp agent
* Devstack error on redis installation
* Fix the wrong topic key in sg rule
* Add external bridge in devstack when dnat is enabled
* Add network mtu support
* 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
* Remove dvr extension
* Improve l3 agent support
* Fix the unconsistent security_groups field value in lport
* add update method in nb_api and plugin
* Add redis HA implement
* Fix indentation in ARP responder code
* add data sync mechanism for keep db consistency
* 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
