Hello, I've tested the PPA on https://launchpad.net/~niedbalski/+archive/ubuntu/hf-00237904/ with xenial-ocata deployed cloud. Please note that it's a requirement to run the migrations steps up to heads. ubuntu@niedbalski-bastion:~/octavia/openstack$ juju config neutron-api enable-qos=True | 50b8f714-3ee4-4260-8359-820420471bdb | | fa:16:3e:88:c1:a0 | ip_address='10.5.150.6', subnet_id='7daca73f-31ab-4401-bc6e-e74dd38b7fc1' | N/A | ubuntu@niedbalski-bastion:~/octavia/openstack$ openstack network qos policy create testing-policy --share +-------------+--------------------------------------+ | Field | Value | +-------------+--------------------------------------+ | description | | | id | fac2be5e-64e0-4308-b477-0f8c0096c0b8 | | is_default | None | | name | testing-policy | | project_id | d215199a727a4384ad7d43825e86ff69 | | rules | [] | | shared | True | | tags | [] | +-------------+--------------------------------------+ ubuntu@niedbalski-bastion:~/octavia/openstack$ openstack network qos rule create --type bandwidth-limit --max-kbps 300 --ingress testing-policy Failed to create Network QoS rule: BadRequestException: 400: Client Error for url: http://10.5.0.66:9696/v2.0/qos/policies/fac2be5e-64e0-4308-b477-0f8c0096c0b8/bandwidth_limit_rules, {"NeutronError": {"message": "Unrecognized attribute(s) 'direction'", "type": "HTTPBadRequest", "detail": ""}} ----> With the patch applied neutron-api root@juju-cd6736-1841700-4:/home/ubuntu# systemctl status neutron* ● neutron-server.service - OpenStack Neutron Server Loaded: loaded (/lib/systemd/system/neutron-server.service; enabled; vendor preset: enabled) Active: active (running) since Mon 2019-09-09 15:47:00 UTC; 1min 39s ago Process: 13597 ExecStartPre=/bin/chown neutron:adm /var/log/neutron (code=exited, status=0/SUCCESS) ubuntu@juju-cd6736-1841700-4:~$ sudo su root@juju-cd6736-1841700-4:/home/ubuntu# dpkg -l |grep neutron ii neutron-common 2:10.0.7-0ubuntu1~cloud1ubuntu1+hf1560961v20190826.13 all Neutron is a virtual network service for Openstack - common ii neutron-plugin-ml2 2:10.0.7-0ubuntu1~cloud1ubuntu1+hf1560961v20190826.13 all Neutron is a virtual network service for Openstack - ML2 plugin ii neutron-server 2:10.0.7-0ubuntu1~cloud1ubuntu1+hf1560961v20190826.13 all Neutron is a virtual network service for Openstack - server ii python-neutron 2:10.0.7-0ubuntu1~cloud1ubuntu1+hf1560961v20190826.13 all Neutron is a virtual network service for Openstack - Python library neutron-gateway root@juju-cd6736-1841700-5:/home/ubuntu# dpkg -l | grep neutron ii neutron-common 2:10.0.7-0ubuntu1~cloud1ubuntu1+hf1560961v20190826.13 all Neutron is a virtual network service for Openstack - common ii neutron-dhcp-agent 2:10.0.7-0ubuntu1~cloud1ubuntu1+hf1560961v20190826.13 all Neutron is a virtual network service for Openstack - DHCP agent ii neutron-l3-agent 2:10.0.7-0ubuntu1~cloud1ubuntu1+hf1560961v20190826.13 all Neutron is a virtual network service for Openstack - l3 agent ii neutron-lbaas-common 2:10.0.1-0ubuntu1~cloud0 all Neutron is a virtual network service for Openstack - common ii neutron-lbaasv2-agent 2:10.0.1-0ubuntu1~cloud0 all Neutron is a virtual network service for Openstack - LBaaSv2 agent ii neutron-metadata-agent 2:10.0.7-0ubuntu1~cloud1ubuntu1+hf1560961v20190826.13 all Neutron is a virtual network service for Openstack - metadata agent ii neutron-metering-agent 2:10.0.7-0ubuntu1~cloud1ubuntu1+hf1560961v20190826.13 all Neutron is a virtual network service for Openstack - metering agent ii neutron-openvswitch-agent 2:10.0.7-0ubuntu1~cloud1ubuntu1+hf1560961v20190826.13 all Neutron is a virtual network service for Openstack - Open vSwitch plugin agent ii python-neutron 2:10.0.7-0ubuntu1~cloud1ubuntu1+hf1560961v20190826.13 all Neutron is a virtual network service for Openstack - Python library root@juju-cd6736-1841700-5:/home/ubuntu# systemctl status neutron-openvswitch-agent ● neutron-openvswitch-agent.service - Openstack Neutron Open vSwitch Plugin Agent Loaded: loaded (/lib/systemd/system/neutron-openvswitch-agent.service; enabled; vendor preset: enabled) Active: active (running) since Mon 2019-09-09 15:52:12 UTC; 1min 58s ago compute-node root@juju-cd6736-1841700-8:/home/ubuntu# systemctl list-unit-files neutron* UNIT FILE STATE neutron-openvswitch-agent.service enabled neutron-ovs-cleanup.service enabled oot@juju-cd6736-1841700-8:/home/ubuntu# dpkg -l | grep neutron ii neutron-common 2:10.0.7-0ubuntu1~cloud1ubuntu1+hf1560961v20190826.13 all Neutron is a virtual network service for Openstack - common ii neutron-openvswitch-agent 2:10.0.7-0ubuntu1~cloud1ubuntu1+hf1560961v20190826.13 all Neutron is a virtual network service for Openstack - Open vSwitch plugin agent ii python-neutron 2:10.0.7-0ubuntu1~cloud1ubuntu1+hf1560961v20190826.13 all Neutron is a virtual network service for Openstack - Python library root@juju-cd6736-1841700-4:/home/ubuntu# neutron-db-manage upgrade head INFO [alembic.runtime.migration] Context impl MySQLImpl. INFO [alembic.runtime.migration] Will assume non-transactional DDL. Running upgrade for neutron ... INFO [alembic.runtime.migration] Context impl MySQLImpl. INFO [alembic.runtime.migration] Will assume non-transactional DDL. INFO [alembic.runtime.migration] Running upgrade a9c43481023c -> 2b42d90729da, qos add direction to bw_limit_rule table OK INFO [alembic.runtime.migration] Context impl MySQLImpl. INFO [alembic.runtime.migration] Will assume non-transactional DDL. Running upgrade for neutron-dynamic-routing ... INFO [alembic.runtime.migration] Context impl MySQLImpl. INFO [alembic.runtime.migration] Will assume non-transactional DDL. OK INFO [alembic.runtime.migration] Context impl MySQLImpl. INFO [alembic.runtime.migration] Will assume non-transactional DDL. Running upgrade for neutron-fwaas ... INFO [alembic.runtime.migration] Context impl MySQLImpl. INFO [alembic.runtime.migration] Will assume non-transactional DDL. OK INFO [alembic.runtime.migration] Context impl MySQLImpl. INFO [alembic.runtime.migration] Will assume non-transactional DDL. Running upgrade for neutron-lbaas ... INFO [alembic.runtime.migration] Context impl MySQLImpl. INFO [alembic.runtime.migration] Will assume non-transactional DDL. OK INFO [alembic.runtime.migration] Context impl MySQLImpl. INFO [alembic.runtime.migration] Will assume non-transactional DDL. Running upgrade for neutron-vpnaas ... INFO [alembic.runtime.migration] Context impl MySQLImpl. INFO [alembic.runtime.migration] Will assume non-transactional DDL. OK ubuntu@niedbalski-bastion:~/octavia/openstack$ openstack network qos rule create --type bandwidth-limit --max-kbps 300 --ingress testing-policy +----------------+--------------------------------------+ | Field | Value | +----------------+--------------------------------------+ | direction | ingress | | id | 6d01cefa-0042-40cd-ae74-bcb723ca7ca4 | | max_burst_kbps | 0 | | max_kbps | 300 | | name | None | | project_id | | +----------------+--------------------------------------+ ubuntu@niedbalski-bastion:~/octavia/openstack$ openstack port set 50b8f714-3ee4-4260-8359-820420471bdb --qos-policy fac2be5e-64e0-4308-b477-0f8c0096c0b8 ubuntu@niedbalski-bastion:~/octavia/openstack$ openstack port show 50b8f714-3ee4-4260-8359-820420471bdb | grep qos | qos_policy_id | fac2be5e-64e0-4308-b477-0f8c0096c0b8 | ubuntu@niedbalski-bastion:~/octavia/openstack$ openstack network qos rule list fac2be5e-64e0-4308-b477-0f8c0096c0b8 +--------------------------------------+--------------------------------------+-----------------+----------+-----------------+----------+-----------+-----------+ | ID | QoS Policy ID | Type | Max Kbps | Max Burst Kbits | Min Kbps | DSCP mark | Direction | +--------------------------------------+--------------------------------------+-----------------+----------+-----------------+----------+-----------+-----------+ | 6d01cefa-0042-40cd-ae74-bcb723ca7ca4 | fac2be5e-64e0-4308-b477-0f8c0096c0b8 | bandwidth_limit | 300 | 0 | | | ingress | +--------------------------------------+--------------------------------------+-----------------+----------+-----------------+----------+-----------+-----------+ root@juju-cd6736-1841700-8:/home/ubuntu# sudo ovs-vsctl list qos _uuid : 2862acaa-a79f-4a62-b387-f89bca4a6965 external_ids : {id="tap75d95386-01"} other_config : {} queues : {0=a15774f7-ae31-40e7-9c0f-937d68a7dc0c} type : linux-htb root@juju-cd6736-1841700-8:/home/ubuntu# sudo ovs-vsctl list queue _uuid : a15774f7-ae31-40e7-9c0f-937d68a7dc0c dscp : [] external_ids : {id="tap75d95386-01", queue_type="0"} other_config : {burst="0", max-rate="300000"}