issue : qos policy attached to network, qos_policy_id is reflecting on neutron net-show , but not on the port with neutron port-show
(neutron) net-list
+--------------------------------------+------+-------------------------------------------------+
| id | name | subnets |
+--------------------------------------+------+-------------------------------------------------+
| 2fb0001c-98ba-4c67-9c81-2a19b05f4883 | net2 | ab1493c2-206a-4ac7-9818-f9aa61462399 2.2.2.0/24 |
| 3a8575c2-72dc-4602-a2e1-ab7eeb6421b7 | net1 | 7378f275-5069-4284-a34d-3dfc852015b9 1.1.1.0/24 |
+--------------------------------------+------+-------------------------------------------------+
(neutron)
(neutron) port-list
+-------------------------------------+-------+-------------------+--------------------------------------+
| id | name | mac_address | fixed_ips |
+-------------------------------------+-------+-------------------+--------------------------------------+
| 4330f8a8-6a88-4874-af29-f7defb2a60f | port1 | fa:16:3e:dd:a0:37 | {"subnet_id": "7378f275-5069-4284 |
| 2 | | | -a34d-3dfc852015b9", "ip_address": |
| | | | "1.1.1.8"} |
| c23db14e- | | fa:16:3e:d5:40:fa | {"subnet_id": "7378f275-5069-4284 |
| ea16-4f08-a0d5-884ef77eef2f | | | -a34d-3dfc852015b9", "ip_address": |
| | | | "1.1.1.2"} |
| d2e6a1c5-030b-4f75-b2cd- | port2 | fa:16:3e:30:29:45 | {"subnet_id": "7378f275-5069-4284 |
| f309f5ac9888 | | | -a34d-3dfc852015b9", "ip_address": |
| | | | "1.1.1.9"} |
| f6a624f8-b3c8-4865-a712-d2883e700f7 | | fa:16:3e:e1:99:d3 | {"subnet_id": "ab1493c2-206a- |
| 0 | | | 4ac7-9818-f9aa61462399", |
| | | | "ip_address": "2.2.2.2"} |
+-------------------------------------+-------+-------------------+--------------------------------------+
(neutron) qos-policy-list
+--------------------------------------+------+
| id | name |
+--------------------------------------+------+
| 48a4ac9a-729b-42ef-aab6-4b712193e4e2 | qos3 |
| 8f6aee1d-c981-44a5-8edb-32bd84e0b055 | qos2 |
| 94bf3722-2c1f-4c67-b288-0285f4b5690b | qos1 |
+--------------------------------------+------+
(neutron) net-update net1 --qos-policy qos1
Updated network: net1
(neutron)
------------------------------------------------------------------------------
Issue: policy is seen in net-show but not in port-show
------------------------------------------------------------------------------
+
(neutron) net-show net1
+---------------------------+--------------------------------------+
| Field | Value |
+---------------------------+--------------------------------------+
| admin_state_up | True |
| availability_zone_hints | |
| availability_zones | nova |
| created_at | 2016-12-13T13:12:49Z |
| description | |
| id | 3a8575c2-72dc-4602-a2e1-ab7eeb6421b7 |
| ipv4_address_scope | |
| ipv6_address_scope | |
| mtu | 1450 |
| name | net1 |
| port_security_enabled | True |
| project_id | dd4b9f1005e34daa9e2b8c77d4478bab |
| provider:network_type | vxlan |
| provider:physical_network | |
| provider:segmentation_id | 58 |
| qos_policy_id | 94bf3722-2c1f-4c67-b288-0285f4b5690b |
| revision_number | 8 |
| router:external | False |
| shared | False |
| status | ACTIVE |
| subnets | 7378f275-5069-4284-a34d-3dfc852015b9 |
| tags | |
| tenant_id | dd4b9f1005e34daa9e2b8c77d4478bab |
| updated_at | 2016-12-13T13:24:27Z |
+---------------------------+--------------------------------------+
(neutron)
(neutron) port-show port1
+-----------------------+--------------------------------------------------------------------------------+
| Field | Value |
+-----------------------+--------------------------------------------------------------------------------+
| admin_state_up | True |
| allowed_address_pairs | |
| binding:host_id | ubuntu |
| binding:profile | {} |
| binding:vif_details | {"port_filter": true} |
| binding:vif_type | ovs |
| binding:vnic_type | normal |
| created_at | 2016-12-13T13:38:26Z |
| description | |
| device_id | 9c162538-220f-4645-aac4-6beafacbea94 |
| device_owner | compute:nova |
| extra_dhcp_opts | |
| fixed_ips | {"subnet_id": "7378f275-5069-4284-a34d-3dfc852015b9", "ip_address": "1.1.1.8"} |
| id | 4330f8a8-6a88-4874-af29-f7defb2a60f2 |
| mac_address | fa:16:3e:dd:a0:37 |
| name | port1 |
| network_id | 3a8575c2-72dc-4602-a2e1-ab7eeb6421b7 |
| port_security_enabled | True |
| project_id | dd4b9f1005e34daa9e2b8c77d4478bab |
| qos_policy_id | (not reflecting) |
| revision_number | 9 |
| security_groups | 7791107e-4582-417f-ba71-cde04f77a49b |
| status | ACTIVE |
| tenant_id | dd4b9f1005e34daa9e2b8c77d4478bab |
| updated_at | 2016-12-13T13:43:06Z |
+-----------------------+--------------------------------------------------------------------------------+
(neutron)
------------------------------------------------------------------------------
policy is applied to all the ports in the network , seen in ovs-vsctl
------------------------------------------------------------------------------
stack@ubuntu:~/devstack$ sudo ovs-vsctl list interface | grep ingress
ingress_policing_burst: 10000
ingress_policing_rate: 50000
ingress_policing_burst: 10000
ingress_policing_rate: 50000
ingress_policing_burst: 0
ingress_policing_rate: 0
ingress_policing_burst: 0
ingress_policing_rate: 0
ingress_policing_burst: 10000
ingress_policing_rate: 50000
ingress_policing_burst: 0
ingress_policing_rate: 0
QoS policy and port-security are very similar, but have different behaviour,
while with port-security, if you set it to False on a network, created ports will inherit the network value, and keep it set on the database.
So if you have net-A with port-security: False, and you create port-B on net-A, port-B will have port-security:False on the API and the database. If you then set net-A port-security:True, port-B will remain to port-security: False, since it was inherited at creation time.
In QoS, the behaviour is different:
If you have net-A with qos-policy:C, and you create port-B in net-A, your port will effectively behave with policy "C", but, that won't be inherited on the port-B database. When net-A is updated, for example to qos-policy:D, all ports in network (with no specific policy) will change to policy:D.
Given current behaviour, I would not expose the network-policy as qos-policy-id in the port. Because that'd be confusing, you couldn't look at the port, and know if it's overriding any network policy, or if it's just that it matches to have the same policy as the network.
I wonder if it could make sense to provide a "network- qos-inherited- policy- id" read only field, or something like that.