[Yahoo-eng-team] [Bug 2040172] [NEW] [OVN] OvnSbSynchronizer - clean/delete segmenthostmappings for unrelated hosts

2023-10-23 Thread Harald Jensås
Public bug reported:

neutron.plugins.ml2.drivers.ovn.mech_driver.ovsdb.ovn_db_sync.OvnSbSynchronizer

When the `sync_hostname_and_physical_networks` method run's it will
compare host physical_networks to mappings in neutrons
`segmenthostmappings` table. Any mappings in neutron that is not seen on
OVN chassis is then treated as "stale" and cleaned up.

This is problematic when there are other plug-ins/agents involved, for
example ML2 networking-baremetal[2]. Any segment-host mapping created
for baremetal nodes are deleted from the database. And since there is
de-duplication[1] on updates from agents - the segment-host mappings are
not re-created unless services are re-started or the baremetal node is
deleted and re-created in the ironic service.

The OvnSbSynchronizer should not remove mappings unless they belong to
OVN hosts.

[1] 
https://opendev.org/openstack/neutron/commit/176503e610aee16cb5799a77466579bc55129450
[2] 
https://opendev.org/openstack/networking-baremetal/src/branch/master/networking_baremetal/agent/ironic_neutron_agent.py

** Affects: neutron
 Importance: Undecided
 Status: In Progress

-- 
You received this bug notification because you are a member of Yahoo!
Engineering Team, which is subscribed to neutron.
https://bugs.launchpad.net/bugs/2040172

Title:
  [OVN] OvnSbSynchronizer - clean/delete segmenthostmappings for
  unrelated hosts

Status in neutron:
  In Progress

Bug description:
  
neutron.plugins.ml2.drivers.ovn.mech_driver.ovsdb.ovn_db_sync.OvnSbSynchronizer

  When the `sync_hostname_and_physical_networks` method run's it will
  compare host physical_networks to mappings in neutrons
  `segmenthostmappings` table. Any mappings in neutron that is not seen
  on OVN chassis is then treated as "stale" and cleaned up.

  This is problematic when there are other plug-ins/agents involved, for
  example ML2 networking-baremetal[2]. Any segment-host mapping created
  for baremetal nodes are deleted from the database. And since there is
  de-duplication[1] on updates from agents - the segment-host mappings
  are not re-created unless services are re-started or the baremetal
  node is deleted and re-created in the ironic service.

  The OvnSbSynchronizer should not remove mappings unless they belong to
  OVN hosts.

  [1] 
https://opendev.org/openstack/neutron/commit/176503e610aee16cb5799a77466579bc55129450
  [2] 
https://opendev.org/openstack/networking-baremetal/src/branch/master/networking_baremetal/agent/ironic_neutron_agent.py

To manage notifications about this bug go to:
https://bugs.launchpad.net/neutron/+bug/2040172/+subscriptions


-- 
Mailing list: https://launchpad.net/~yahoo-eng-team
Post to : yahoo-eng-team@lists.launchpad.net
Unsubscribe : https://launchpad.net/~yahoo-eng-team
More help   : https://help.launchpad.net/ListHelp


[Yahoo-eng-team] [Bug 2034684] [NEW] UEFI (edk2/ovmf) network boot with OVN fail because no DHCP release reply

2023-09-07 Thread Harald Jensås
Public bug reported:

When attempting to verify neutron change[1], we discovered that despite
options in DHCPv6 ADV and REQ/REPLY are correct network booting still
fails.

When comparing traffic capture between openvswitch+neutron-dhcp-agent setup to 
the ovn setup a significant difference is that:
* neutron-dhcp-ageent(dnsmasq) does REPLY to RELEASE with a packet including a 
dhcpv6 option type Status code (13) success to confirm the release. edk2/ovmf 
does TFTP transfer of the NBP immediately after recieving this reply.
* OVN does not respond with a REPLY to the clients RELEASE. In traffic capture 
we can see the client repeates the RELEASE several times, but finally give up 
and raise an error:

>>Start PXE over IPv6..
  Station IP address is FC01:0:0:0:0:0:0:206
  Server IP address is FC00:0:0:0:0:0:0:1
  NBP filename is snponly.efi
  NBP filesize is 0 Bytes
  PXE-E53: No boot filename received.

--
FAILING - sequence on OVN
--
No. TimeSource  Destination ProtocolLength  Info
1   0.00fe80::f816:3eff:fe6f:a0ab   ::  ICMPv6  118 
Router Advertisement from fa:16:3e:6f:a0:ab
2   51.931422   fe80::5054:ff:feb1:a5b0 ff02::1:2   DHCPv6  177 
Solicit XID: 0x4f04ed CID: 000430a25dc55972534aa516ff9c9f7c7ac4 
3   51.931840   fe80::f816:3eff:feeb:b176   fe80::5054:ff:feb1:a5b0 
DHCPv6  198 Advertise XID: 0x4f04ed CID: 
000430a25dc55972534aa516ff9c9f7c7ac4 IAA: fc01::2ad 
4   56.900421   fe80::5054:ff:feb1:a5b0 ff02::1:2   DHCPv6  219 
Request XID: 0x5004ed CID: 000430a25dc55972534aa516ff9c9f7c7ac4 IAA: fc01::2ad 
5   56.900726   fe80::f816:3eff:feeb:b176   fe80::5054:ff:feb1:a5b0 
DHCPv6  198 Reply XID: 0x5004ed CID: 000430a25dc55972534aa516ff9c9f7c7ac4 
IAA: fc01::2ad 
6   68.861979   fe80::5054:ff:feb1:a5b0 ff02::1:2   DHCPv6  152 
Release XID: 0x5104ed CID: 000430a25dc55972534aa516ff9c9f7c7ac4 IAA: fc01::2ad 
7   69.900715   fe80::5054:ff:feb1:a5b0 ff02::1:2   DHCPv6  152 
Release XID: 0x5104ed CID: 000430a25dc55972534aa516ff9c9f7c7ac4 IAA: fc01::2ad 
8   72.900784   fe80::5054:ff:feb1:a5b0 ff02::1:2   DHCPv6  152 
Release XID: 0x5104ed CID: 000430a25dc55972534aa516ff9c9f7c7ac4 IAA: fc01::2ad 
9   77.900774   fe80::5054:ff:feb1:a5b0 ff02::1:2   DHCPv6  152 
Release XID: 0x5104ed CID: 000430a25dc55972534aa516ff9c9f7c7ac4 IAA: fc01::2ad 
10  86.900759   fe80::5054:ff:feb1:a5b0 ff02::1:2   DHCPv6  152 
Release XID: 0x5104ed CID: 000430a25dc55972534aa516ff9c9f7c7ac4 IAA: fc01::2ad 
11  103.900786  fe80::5054:ff:feb1:a5b0 ff02::1:2   DHCPv6  152 
Release XID: 0x5104ed CID: 000430a25dc55972534aa516ff9c9f7c7ac4 IAA: fc01::2ad 


--
WORKING - sequence on neutron-dhcp-agent (dnsmasq)
--
No. TimeSource  Destination ProtocolLength  Info
1   0.00fe80::f816:3eff:fe38:eef0   ff02::1 ICMPv6  142 
Router Advertisement from fa:16:3e:38:ee:f0
2   0.001102fe80::5054:ff:fed9:3d5c ff02::1:2   DHCPv6  116 
Solicit XID: 0x71d892 CID: 0004c9b0caa37bce994e85633d7572708047 
3   0.001245fe80::f816:3eff:fef5:ef7a   fe80::5054:ff:fed9:3d5c 
DHCPv6  208 Advertise XID: 0x71d892 CID: 
0004c9b0caa37bce994e85633d7572708047 IAA: fc01::87 
4   0.002436fe80::5054:ff:fed9:3d5c ff02::1:2   DHCPv6  162 
Request XID: 0x72d892 CID: 0004c9b0caa37bce994e85633d7572708047 IAA: fc01::87 
5   0.002508fe80::f816:3eff:fef5:ef7a   fe80::5054:ff:fed9:3d5c 
DHCPv6  219 Reply XID: 0x72d892 CID: 0004c9b0caa37bce994e85633d7572708047 
IAA: fc01::87 
6   3.130605fe80::5054:ff:fed9:3d5c ff02::1:2   DHCPv6  223 
Request XID: 0x73d892 CID: 0004c9b0caa37bce994e85633d7572708047 IAA: fc01::87 
7   3.130791fe80::f816:3eff:fef5:ef7a   fe80::5054:ff:fed9:3d5c 
DHCPv6  256 Reply XID: 0x73d892 CID: 0004c9b0caa37bce994e85633d7572708047 
IAA: fc01::2a0 
8   3.132060fe80::5054:ff:fed9:3d5c ff02::1:2   DHCPv6  156 
Release XID: 0x74d892 CID: 0004c9b0caa37bce994e85633d7572708047 IAA: fc01::87 
9   3.132126fe80::f816:3eff:fef5:ef7a   fe80::5054:ff:fed9:3d5c 
DHCPv6  128 Reply XID: 0x74d892 CID: 0004c9b0caa37bce994e85633d7572708047 
10  5.477847fc01::2a0   fc00::1 TFTP116 Read Request, 
File: snponly.efi, Transfer type: octet, tsize=0, blksize=1228, windowsize=4
--


Conclusion is that OVN DHCPv6 implementation need to be fixed, it should reply 
when the client send a dhcpv6 release.

Attached file contain traffic capture files from both the working
(dnsmasq dhcp) set-up and the failing (OVN dhcp) set-up.


[1] https://re

[Yahoo-eng-team] [Bug 1975542] [NEW] Open vSwitch agent - does not report to the segment plugin

2022-05-23 Thread Harald Jensås
Public bug reported:

The atteched devstack configuration `local.conf` can be used to
reproduce this issue.

In networking-baremetal CI we are seeing an issue where the DHCP agent
does not create a namespace for subnets on a routed provider network. No
DHCP namespace is created because this test[1] `if (any(s for s in
network.subnets if s.enable_dhcp)` returns false.

The OVS agent does have the correct configuration, with mappings to the
physical_network "mynetwork" on bridge "brbm".


$ openstack network agent show ef7ca33a-de9c-4a2b-9af5-e1c9cb029a25 -f yaml 



admin_state_up: true


 
agent_type: Open vSwitch agent  


 
alive: true 


 
availability_zone: null 


 
binary: neutron-openvswitch-agent   


 
configuration:   
  arp_responder_enabled: false
  baremetal_smartnic: false 


 
  bridge_mappings:  


 
mynetwork: brbm 


 
public: br-ex

But looking in the database, there are only `segment host mappings` for
baremetal nodes.

mysql> select * from segmenthostmappings;
+--+--+
| segment_id   | host |
+--+--+
| 712e8a82-a5f9-4506-9520-fc5b4b01529e | 30e70889-d50c-42a8-8776-f5e8cdce3609 |
| 712e8a82-a5f9-4506-9520-fc5b4b01529e | a3930bb2-a742-44f8-954e-49be373477db |
| 712e8a82-a5f9-4506-9520-fc5b4b01529e | cbb3f623-f300-4dd3-ab09-c05b1e9b9a75 |
| ede8201d-0766-4a18-9df0-1b6292f99592 | 30e70889-d50c-42a8-8776-f5e8cdce3609 |
| ede8201d-0766-4a18-9df0-1b6292f99592 | a3930bb2-a742-44f8-954e-49be373477db |
| ede8201d-0766-4a18-9df0-1b6292f99592 | cbb3f623-f300-4dd3-ab09-c05b1e9b9a75 |
+--+--+
6 rows in set (0.00 sec)


If I manually stop the OVS agent service, manually delete the agent and then 
restart the OVS agent the agent is re-created and mappings are created.

stack@devstack:~/devstack$ sudo systemctl stop devstack@q-agt.service
stack@devstack:~/devstack$ openstack network agent delete 
3921f433-b2f1-4c8f-90d2-deaad6bb5814
stack@devstack:~/devstack$ sudo systemctl start devstack@q-agt.service

mysql> select * from segmenthostmappings;
+--+--+
| segment_id   | host

[Yahoo-eng-team] [Bug 1967742] [NEW] ML2 - Network Context, not possible to see original/current segments

2022-04-04 Thread Harald Jensås
Public bug reported:

When ML2 driver receive NetworkContext after adding network segment
with:

 openstack network segment create \
  --network e686a356-58d7-4cf0-bdf9-e720d9925ac0 \
  --physical-network net3 \
  --network-type vlan \
  --segment 300 provision-net3

In `update_network_postcommit`, context.current and context.original
both include all segments:

context.current:

{'id': 'e686a356-58d7-4cf0-bdf9-e720d9925ac0',
 'name': 'routed_provider_net',
 'segments': [
   {'provider:network_type': 'vlan',
'provider:physical_network': 'net1',
'provider:segmentation_id': 100},
   {'provider:network_type': 'vlan',
'provider:physical_network': 'net2',
'provider:segmentation_id': 200},
   {'provider:network_type': 'vlan',
'provider:physical_network': 'net3',
'provider:segmentation_id': 300}]}  


 

context.original:

{'id': 'e686a356-58d7-4cf0-bdf9-e720d9925ac0',
 'name': 'routed_provider_net',
 'segments': [
   {'provider:network_type': 'vlan',
'provider:physical_network': 'net1',
'provider:segmentation_id': 100},
   {'provider:network_type': 'vlan',
'provider:physical_network': 'net2',
'provider:segmentation_id': 200},
   {'provider:network_type': 'vlan',
'provider:physical_network': 'net3',
'provi der:segmentation_id': 300}]}


Expected results:

context.orignial should not include the new segment on physical_network:
'net3'.


Since both current and original include all segments it is not possible for ML2 
plugins to know which VLAN to add on managed devices.

** Affects: neutron
 Importance: Undecided
 Status: New

-- 
You received this bug notification because you are a member of Yahoo!
Engineering Team, which is subscribed to neutron.
https://bugs.launchpad.net/bugs/1967742

Title:
  ML2 - Network Context, not possible to see original/current segments

Status in neutron:
  New

Bug description:
  When ML2 driver receive NetworkContext after adding network segment
  with:

   openstack network segment create \
--network e686a356-58d7-4cf0-bdf9-e720d9925ac0 \
--physical-network net3 \
--network-type vlan \
--segment 300 provision-net3

  In `update_network_postcommit`, context.current and context.original
  both include all segments:

  context.current:

  {'id': 'e686a356-58d7-4cf0-bdf9-e720d9925ac0',
   'name': 'routed_provider_net',
   'segments': [
 {'provider:network_type': 'vlan',
  'provider:physical_network': 'net1',
  'provider:segmentation_id': 100},
 {'provider:network_type': 'vlan',
  'provider:physical_network': 'net2',
  'provider:segmentation_id': 200},
 {'provider:network_type': 'vlan',
  'provider:physical_network': 'net3',
  'provider:segmentation_id': 300}]}


   

  context.original:

  {'id': 'e686a356-58d7-4cf0-bdf9-e720d9925ac0',
   'name': 'routed_provider_net',
   'segments': [
 {'provider:network_type': 'vlan',
  'provider:physical_network': 'net1',
  'provider:segmentation_id': 100},
 {'provider:network_type': 'vlan',
  'provider:physical_network': 'net2',
  'provider:segmentation_id': 200},
 {'provider:network_type': 'vlan',
  'provider:physical_network': 'net3',
  'provi der:segmentation_id': 300}]}

  
  Expected results:

  context.orignial should not include the new segment on
  physical_network: 'net3'.

  
  Since both current and original include all segments it is not possible for 
ML2 plugins to know which VLAN to add on managed devices.

To manage notifications about this bug go to:
https://bugs.launchpad.net/neutron/+bug/1967742/+subscriptions


-- 
Mailing list: https://launchpad.net/~yahoo-eng-team
Post to : yahoo-eng-team@lists.launchpad.net
Unsubscribe : https://launchpad.net/~yahoo-eng-team
More help   : https://help.launchpad.net/ListHelp


[Yahoo-eng-team] [Bug 1959148] Re: cloud-init writes route6-$DEVICE config with a HEX netmask. ip route does not like : Error: inet6 prefix is expected rather than "fd00:fd00:fd00::/ffff:ffff:ffff:fff

2022-01-31 Thread Harald Jensås
** Also affects: nova
   Importance: Undecided
   Status: New

-- 
You received this bug notification because you are a member of Yahoo!
Engineering Team, which is subscribed to cloud-init.
https://bugs.launchpad.net/bugs/1959148

Title:
  cloud-init writes route6-$DEVICE config with a HEX netmask. ip route
  does not like : Error: inet6 prefix is expected rather than
  "fd00:fd00:fd00::/:::::".

Status in cloud-init:
  In Progress
Status in OpenStack Compute (nova):
  New

Bug description:
  Description of problem:
  The routes put in route6-$DEVICE by cloud-init is in an invalid format.

  The schema[1] for network_matadata uses a non-converntinal format for
  the IPv6 netmask. It is stored as an IPv6 address, similar to how IPv4
  netmasks are written 255.255.255.0 the IPv6 netmask is written as
  ::::: in the network metadata.

  cloud-init does not translate this. So you end up with:

  cat /etc/sysconfig/network-scripts/route6-ens3
  # Created by cloud-init on instance boot automatically, do not edit.
  #
  ::/:: via fd00:fd00:fd00:2::fffe  dev ens3
  fd00:fd00:fd00:1::/::::: via fd00:fd00:fd00:2::fffe  dev ens3
  fd00:fd00:fd00::/::::: via fd00:fd00:fd00:2::fffe  dev ens3

  The result is that the routes are ignored since it is not a valid
  inet6 prefix.

  [1]
  
https://docs.openstack.org/nova/latest/_downloads/9119ca7ac90aa2990e762c08baea3a36/network_data.json

  
  Actual results:
  Jan 26 14:12:45 overcloud-novacompute-0 NetworkManager[1027]:   
[1643206365.7973] ifcfg-rh: ignoring invalid route at "::/:: via 
fd00:fd00:fd00:2::fffe  dev ens3" 
(/etc/sysconfig/network-scripts/route6-ens3:3): Argument for "::/::" is not 
ADDR/PREFIX format
  Jan 26 14:12:45 overcloud-novacompute-0 NetworkManager[1027]:   
[1643206365.7977] ifcfg-rh: ignoring invalid route at 
"fd00:fd00:fd00:1::/::::: via fd00:fd00:fd00:2::fffe  dev ens3" 
(/etc/sysconfig/network-scripts/route6-ens3:4): Argument for 
"fd00:fd00:fd00:1::/:::::" is not ADDR/PREFIX format
  Jan 26 14:12:45 overcloud-novacompute-0 NetworkManager[1027]:   
[1643206365.7979] ifcfg-rh: ignoring invalid route at 
"fd00:fd00:fd00::/::::: via fd00:fd00:fd00:2::fffe  dev ens3" 
(/etc/sysconfig/network-scripts/route6-ens3:5): Argument for 
"fd00:fd00:fd00::/:::::" is not ADDR/PREFIX format

  ip -6 route add fd00:fd00:fd00::/::::: via fd00:fd00:fd00::1
  Error: inet6 prefix is expected rather than 
"fd00:fd00:fd00::/:::::".

  Expected results:
  The netmask should be the decimal number in CIDR annotation.

To manage notifications about this bug go to:
https://bugs.launchpad.net/cloud-init/+bug/1959148/+subscriptions


-- 
Mailing list: https://launchpad.net/~yahoo-eng-team
Post to : yahoo-eng-team@lists.launchpad.net
Unsubscribe : https://launchpad.net/~yahoo-eng-team
More help   : https://help.launchpad.net/ListHelp


[Yahoo-eng-team] [Bug 1959148] [NEW] cloud-init writes route6-$DEVICE config with a HEX netmask. ip route does not like : Error: inet6 prefix is expected rather than "fd00:fd00:fd00::/ffff:ffff:ffff:f

2022-01-26 Thread Harald Jensås
Public bug reported:

Description of problem:
The routes put in route6-$DEVICE by cloud-init is in an invalid format.

The schema[1] for network_matadata uses a non-converntinal format for
the IPv6 netmask. It is stored as an IPv6 address, similar to how IPv4
netmasks are written 255.255.255.0 the IPv6 netmask is written as
::::: in the network metadata.

cloud-init does not translate this. So you end up with:

cat /etc/sysconfig/network-scripts/route6-ens3
# Created by cloud-init on instance boot automatically, do not edit.
#
::/:: via fd00:fd00:fd00:2::fffe  dev ens3
fd00:fd00:fd00:1::/::::: via fd00:fd00:fd00:2::fffe  dev ens3
fd00:fd00:fd00::/::::: via fd00:fd00:fd00:2::fffe  dev ens3

The result is that the routes are ignored since it is not a valid inet6
prefix.

[1]
https://docs.openstack.org/nova/latest/_downloads/9119ca7ac90aa2990e762c08baea3a36/network_data.json


Actual results:
Jan 26 14:12:45 overcloud-novacompute-0 NetworkManager[1027]:   
[1643206365.7973] ifcfg-rh: ignoring invalid route at "::/:: via 
fd00:fd00:fd00:2::fffe  dev ens3" 
(/etc/sysconfig/network-scripts/route6-ens3:3): Argument for "::/::" is not 
ADDR/PREFIX format
Jan 26 14:12:45 overcloud-novacompute-0 NetworkManager[1027]:   
[1643206365.7977] ifcfg-rh: ignoring invalid route at 
"fd00:fd00:fd00:1::/::::: via fd00:fd00:fd00:2::fffe  dev ens3" 
(/etc/sysconfig/network-scripts/route6-ens3:4): Argument for 
"fd00:fd00:fd00:1::/:::::" is not ADDR/PREFIX format
Jan 26 14:12:45 overcloud-novacompute-0 NetworkManager[1027]:   
[1643206365.7979] ifcfg-rh: ignoring invalid route at 
"fd00:fd00:fd00::/::::: via fd00:fd00:fd00:2::fffe  dev ens3" 
(/etc/sysconfig/network-scripts/route6-ens3:5): Argument for 
"fd00:fd00:fd00::/:::::" is not ADDR/PREFIX format

ip -6 route add fd00:fd00:fd00::/::::: via fd00:fd00:fd00::1
Error: inet6 prefix is expected rather than 
"fd00:fd00:fd00::/:::::".

Expected results:
The netmask should be the decimal number in CIDR annotation.

** Affects: cloud-init
 Importance: Undecided
 Status: New

-- 
You received this bug notification because you are a member of Yahoo!
Engineering Team, which is subscribed to cloud-init.
https://bugs.launchpad.net/bugs/1959148

Title:
  cloud-init writes route6-$DEVICE config with a HEX netmask. ip route
  does not like : Error: inet6 prefix is expected rather than
  "fd00:fd00:fd00::/:::::".

Status in cloud-init:
  New

Bug description:
  Description of problem:
  The routes put in route6-$DEVICE by cloud-init is in an invalid format.

  The schema[1] for network_matadata uses a non-converntinal format for
  the IPv6 netmask. It is stored as an IPv6 address, similar to how IPv4
  netmasks are written 255.255.255.0 the IPv6 netmask is written as
  ::::: in the network metadata.

  cloud-init does not translate this. So you end up with:

  cat /etc/sysconfig/network-scripts/route6-ens3
  # Created by cloud-init on instance boot automatically, do not edit.
  #
  ::/:: via fd00:fd00:fd00:2::fffe  dev ens3
  fd00:fd00:fd00:1::/::::: via fd00:fd00:fd00:2::fffe  dev ens3
  fd00:fd00:fd00::/::::: via fd00:fd00:fd00:2::fffe  dev ens3

  The result is that the routes are ignored since it is not a valid
  inet6 prefix.

  [1]
  
https://docs.openstack.org/nova/latest/_downloads/9119ca7ac90aa2990e762c08baea3a36/network_data.json

  
  Actual results:
  Jan 26 14:12:45 overcloud-novacompute-0 NetworkManager[1027]:   
[1643206365.7973] ifcfg-rh: ignoring invalid route at "::/:: via 
fd00:fd00:fd00:2::fffe  dev ens3" 
(/etc/sysconfig/network-scripts/route6-ens3:3): Argument for "::/::" is not 
ADDR/PREFIX format
  Jan 26 14:12:45 overcloud-novacompute-0 NetworkManager[1027]:   
[1643206365.7977] ifcfg-rh: ignoring invalid route at 
"fd00:fd00:fd00:1::/::::: via fd00:fd00:fd00:2::fffe  dev ens3" 
(/etc/sysconfig/network-scripts/route6-ens3:4): Argument for 
"fd00:fd00:fd00:1::/:::::" is not ADDR/PREFIX format
  Jan 26 14:12:45 overcloud-novacompute-0 NetworkManager[1027]:   
[1643206365.7979] ifcfg-rh: ignoring invalid route at 
"fd00:fd00:fd00::/::::: via fd00:fd00:fd00:2::fffe  dev ens3" 
(/etc/sysconfig/network-scripts/route6-ens3:5): Argument for 
"fd00:fd00:fd00::/:::::" is not ADDR/PREFIX format

  ip -6 route add fd00:fd00:fd00::/::::: via fd00:fd00:fd00::1
  Error: inet6 prefix is expected rather than 
"fd00:fd00:fd00::/:::::".

  Expected results:
  The netmask should be the decimal number in CIDR annotation.

To manage notifications about this bug go to:
https://bugs.launchpad.net/cloud-init/+bug/1959148/+subscriptions


-- 
Mailing list: https://launchpad.net/~yahoo-eng-team
Post to : yahoo-eng-team@lists.launchpad.net
Unsubscribe : ht

[Yahoo-eng-team] [Bug 1956785] [NEW] Duplicate validator TypeError for dict values

2022-01-07 Thread Harald Jensås
Public bug reported:

In the below logs I observe that a port update is attempted with
duplicate extra_dhcp_opts. Since the values for extra_dhcp_opts are
dicts the _collect_duplicates() method[1] fails as it attempts to add
dict's to a set.

[1] https://opendev.org/openstack/neutron-
lib/src/branch/master/neutron_lib/api/validators/__init__.py#L76-L91


2022-01-07 12:18:22.854 27 DEBUG neutron.api.v2.base 
[req-67d0c767-16c3-4bd6-8c7d-455becccaa96 - fake_project_id - - -] Request 
body: {'port': {'extra_dhcp_opts': [{'opt_name': 'tag:!ipxe6,59', 'opt_value': 
'tftp://[fd00:fd00:fd00::1]/undionly.kpxe', 'ip_version': 6}, {'opt_name': 
'tag:ipxe6,59', 'opt_value': 'http://[fd00:fd00:fd00::1]:8088/boot.ipxe', 
'ip_version': 6}, {'opt_name': 'tag:!ipxe6,59', 'opt_value': 
'tftp://[fd00:fd00:fd00::1]/undionly.kpxe', 'ip_version': 6}, {'opt_name': 
'tag:ipxe6,59', 'opt_value': 'http://[fd00:fd00:fd00::1]:8088/boot.ipxe', 
'ip_version': 6}, {'opt_name': 'tag:!ipxe6,59', 'opt_value': 
'tftp://[fd00:fd00:fd00::1]/undionly.kpxe', 'ip_version': 6}, {'opt_name': 
'tag:ipxe6,59', 'opt_value': 'http://[fd00:fd00:fd00::1]:8088/boot.ipxe', 
'ip_version': 6}, {'opt_name': 'tag:!ipxe6,59', 'opt_value': 
'tftp://[fd00:fd00:fd00::1]/undionly.kpxe', 'ip_version': 6}, {'opt_name': 
'tag:ipxe6,59', 'opt_value': 'http://[fd00:fd00:fd00::1]:8088/boot.ipxe', 
'ip_version': 6}]}} prepare_request_body 
/usr/lib/python3.6/site-packages/neutron/api/v2/base.py:729

2022-01-07 12:18:22.856 27 WARNING neutron.pecan_wsgi.hooks.body_validation 
[req-67d0c767-16c3-4bd6-8c7d-455becccaa96 - fake_project_id - - -] An exception 
happened while processing the request body. The exception message is 
[unhashable type: 'dict'].
2022-01-07 12:18:22.858 27 ERROR neutron.pecan_wsgi.hooks.translation 
[req-67d0c767-16c3-4bd6-8c7d-455becccaa96 - fake_project_id - - -] PUT failed.: 
TypeError: unhashable type: 'dict'
2022-01-07 12:18:22.858 27 ERROR neutron.pecan_wsgi.hooks.translation Traceback 
(most recent call last):
2022-01-07 12:18:22.858 27 ERROR neutron.pecan_wsgi.hooks.translation   File 
"/usr/lib/python3.6/site-packages/pecan/core.py", line 682, in __call__
2022-01-07 12:18:22.858 27 ERROR neutron.pecan_wsgi.hooks.translation 
controller, args, kwargs = self.find_controller(state)
2022-01-07 12:18:22.858 27 ERROR neutron.pecan_wsgi.hooks.translation   File 
"/usr/lib/python3.6/site-packages/pecan/core.py", line 858, in find_controller
2022-01-07 12:18:22.858 27 ERROR neutron.pecan_wsgi.hooks.translation 
controller, args, kw = super(Pecan, self).find_controller(_state)
2022-01-07 12:18:22.858 27 ERROR neutron.pecan_wsgi.hooks.translation   File 
"/usr/lib/python3.6/site-packages/pecan/core.py", line 550, in find_controller
2022-01-07 12:18:22.858 27 ERROR neutron.pecan_wsgi.hooks.translation 
self.handle_hooks(self.determine_hooks(controller), 'before', state)
2022-01-07 12:18:22.858 27 ERROR neutron.pecan_wsgi.hooks.translation   File 
"/usr/lib/python3.6/site-packages/pecan/core.py", line 865, in handle_hooks
2022-01-07 12:18:22.858 27 ERROR neutron.pecan_wsgi.hooks.translation 
return super(Pecan, self).handle_hooks(hooks, *args, **kw)
2022-01-07 12:18:22.858 27 ERROR neutron.pecan_wsgi.hooks.translation   File 
"/usr/lib/python3.6/site-packages/pecan/core.py", line 342, in handle_hooks
2022-01-07 12:18:22.858 27 ERROR neutron.pecan_wsgi.hooks.translation 
result = getattr(hook, hook_type)(*args)
2022-01-07 12:18:22.858 27 ERROR neutron.pecan_wsgi.hooks.translation   File 
"/usr/lib/python3.6/site-packages/neutron/pecan_wsgi/hooks/body_validation.py", 
line 71, in before
2022-01-07 12:18:22.858 27 ERROR neutron.pecan_wsgi.hooks.translation raise 
e
2022-01-07 12:18:22.858 27 ERROR neutron.pecan_wsgi.hooks.translation   File 
"/usr/lib/python3.6/site-packages/neutron/pecan_wsgi/hooks/body_validation.py", 
line 67, in before
2022-01-07 12:18:22.858 27 ERROR neutron.pecan_wsgi.hooks.translation 
allow_bulk=is_create)
2022-01-07 12:18:22.858 27 ERROR neutron.pecan_wsgi.hooks.translation   File 
"/usr/lib/python3.6/site-packages/neutron/api/v2/base.py", line 776, in 
prepare_request_body
2022-01-07 12:18:22.858 27 ERROR neutron.pecan_wsgi.hooks.translation 
attr_ops.convert_values(res_dict, exc_cls=webob.exc.HTTPBadRequest)
2022-01-07 12:18:22.858 27 ERROR neutron.pecan_wsgi.hooks.translation   File 
"/usr/lib/python3.6/site-packages/neutron_lib/api/attributes.py", line 233, in 
convert_values
2022-01-07 12:18:22.858 27 ERROR neutron.pecan_wsgi.hooks.translation 
attr_vals['validate'][rule])
2022-01-07 12:18:22.858 27 ERROR neutron.pecan_wsgi.hooks.translation   File 
"/usr/lib/python3.6/site-packages/neutron_lib/api/validators/__init__.py", line 
513, in validate_any_key_specs_or_none
2022-01-07 12:18:22.858 27 ERROR neutron.pecan_wsgi.hooks.translation msg = 
_validate_list_of_items(dict_validator, data)
2022-01-07 12:18:22.858 27 ERROR neutron.pecan_wsgi.hooks.translation   File 
"/usr/lib/python3.6/sit

[Yahoo-eng-team] [Bug 1921713] [NEW] Strings in tags field is limited to 60 chars

2021-03-29 Thread Harald Jensås
Public bug reported:

I have a usecase where we need to put a hostname in the tags field. This
fails for hosts with very long hostnames because the tags elemtents are
limited to 60 character strings.

Invalid input for operation: 'tripleo_hostname=centos-8-stream-vexxhost-
ca-ymq-1-0023709342' exceeds maximum length of 60."


Let's increase the field to allow 255 characters.

** Affects: neutron
 Importance: Undecided
 Status: New

-- 
You received this bug notification because you are a member of Yahoo!
Engineering Team, which is subscribed to neutron.
https://bugs.launchpad.net/bugs/1921713

Title:
  Strings in tags field is limited to 60 chars

Status in neutron:
  New

Bug description:
  I have a usecase where we need to put a hostname in the tags field.
  This fails for hosts with very long hostnames because the tags
  elemtents are limited to 60 character strings.

  Invalid input for operation: 'tripleo_hostname=centos-8-stream-
  vexxhost-ca-ymq-1-0023709342' exceeds maximum length of 60."

  
  Let's increase the field to allow 255 characters.

To manage notifications about this bug go to:
https://bugs.launchpad.net/neutron/+bug/1921713/+subscriptions

-- 
Mailing list: https://launchpad.net/~yahoo-eng-team
Post to : yahoo-eng-team@lists.launchpad.net
Unsubscribe : https://launchpad.net/~yahoo-eng-team
More help   : https://help.launchpad.net/ListHelp


[Yahoo-eng-team] [Bug 1868724] [NEW] KeyError 'gateway_ip' in neutron/services/segments/plugin.py

2020-03-24 Thread Harald Jensås
Public bug reported:

2020-03-24 00:12:05.019 35 ERROR neutron_lib.callbacks.manager 
[req-be6ef908-8d3c-4e20-84b5-80ef1d8ab94e 8a8ad2f8e3f7478b8ce5e84f620cb4db 
255eb2ea84ed4b29a55aceffcecf2a5d - default default] Error during notification 
for 
neutron.services.segments.plugin.NovaSegmentNotifier._notify_subnet_deleted--9223372036853509478
 subnet, after_delete: KeyError: 'gateway_ip'
2020-03-24 00:12:05.019 35 ERROR neutron_lib.callbacks.manager Traceback 
(most recent call last):
2020-03-24 00:12:05.019 35 ERROR neutron_lib.callbacks.manager   File 
"/usr/lib/python2.7/site-packages/neutron_lib/callbacks/manager.py", line 197, 
in _notify_loop
2020-03-24 00:12:05.019 35 ERROR neutron_lib.callbacks.manager 
callback(resource, event, trigger, **kwargs)
2020-03-24 00:12:05.019 35 ERROR neutron_lib.callbacks.manager   File 
"/usr/lib/python2.7/site-packages/neutron/services/segments/plugin.py", line 
321, in _notify_subnet_deleted
2020-03-24 00:12:05.019 35 ERROR neutron_lib.callbacks.manager total, 
reserved = self._calculate_inventory_total_and_reserved(subnet)
2020-03-24 00:12:05.019 35 ERROR neutron_lib.callbacks.manager   File 
"/usr/lib/python2.7/site-packages/neutron/services/segments/plugin.py", line 
271, in _calculate_inventory_total_and_reserved
2020-03-24 00:12:05.019 35 ERROR neutron_lib.callbacks.manager if 
subnet['gateway_ip']:
2020-03-24 00:12:05.019 35 ERROR neutron_lib.callbacks.manager KeyError: 
'gateway_ip'
2020-03-24 00:12:05.019 35 ERROR neutron_lib.callbacks.manager
2020-03-24 00:12:05.020 35 ERROR neutron_lib.callbacks.manager 
[req-be6ef908-8d3c-4e20-84b5-80ef1d8ab94e 8a8ad2f8e3f7478b8ce5e84f620cb4db 
255eb2ea84ed4b29a55aceffcecf2a5d - default default] Error during notification 
for 
neutron.services.segments.plugin.NovaSegmentNotifier._notify_subnet_deleted--9223372036852953322
 subnet, after_delete: KeyError: 'gateway_ip'
2020-03-24 00:12:05.020 35 ERROR neutron_lib.callbacks.manager Traceback 
(most recent call last):
2020-03-24 00:12:05.020 35 ERROR neutron_lib.callbacks.manager   File 
"/usr/lib/python2.7/site-packages/neutron_lib/callbacks/manager.py", line 197, 
in _notify_loop
2020-03-24 00:12:05.020 35 ERROR neutron_lib.callbacks.manager 
callback(resource, event, trigger, **kwargs)
2020-03-24 00:12:05.020 35 ERROR neutron_lib.callbacks.manager   File 
"/usr/lib/python2.7/site-packages/neutron/services/segments/plugin.py", line 
321, in _notify_subnet_deleted
2020-03-24 00:12:05.020 35 ERROR neutron_lib.callbacks.manager total, 
reserved = self._calculate_inventory_total_and_reserved(subnet)
2020-03-24 00:12:05.020 35 ERROR neutron_lib.callbacks.manager   File 
"/usr/lib/python2.7/site-packages/neutron/services/segments/plugin.py", line 
271, in _calculate_inventory_total_and_reserved
2020-03-24 00:12:05.020 35 ERROR neutron_lib.callbacks.manager if 
subnet['gateway_ip']:
2020-03-24 00:12:05.020 35 ERROR neutron_lib.callbacks.manager KeyError: 
'gateway_ip'
2020-03-24 00:12:05.020 35 ERROR neutron_lib.callbacks.manager

** Affects: neutron
 Importance: Undecided
 Status: New

-- 
You received this bug notification because you are a member of Yahoo!
Engineering Team, which is subscribed to neutron.
https://bugs.launchpad.net/bugs/1868724

Title:
  KeyError 'gateway_ip' in neutron/services/segments/plugin.py

Status in neutron:
  New

Bug description:
  2020-03-24 00:12:05.019 35 ERROR neutron_lib.callbacks.manager 
[req-be6ef908-8d3c-4e20-84b5-80ef1d8ab94e 8a8ad2f8e3f7478b8ce5e84f620cb4db 
255eb2ea84ed4b29a55aceffcecf2a5d - default default] Error during notification 
for 
neutron.services.segments.plugin.NovaSegmentNotifier._notify_subnet_deleted--9223372036853509478
 subnet, after_delete: KeyError: 'gateway_ip'
  2020-03-24 00:12:05.019 35 ERROR neutron_lib.callbacks.manager Traceback 
(most recent call last):
  2020-03-24 00:12:05.019 35 ERROR neutron_lib.callbacks.manager   File 
"/usr/lib/python2.7/site-packages/neutron_lib/callbacks/manager.py", line 197, 
in _notify_loop
  2020-03-24 00:12:05.019 35 ERROR neutron_lib.callbacks.manager 
callback(resource, event, trigger, **kwargs)
  2020-03-24 00:12:05.019 35 ERROR neutron_lib.callbacks.manager   File 
"/usr/lib/python2.7/site-packages/neutron/services/segments/plugin.py", line 
321, in _notify_subnet_deleted
  2020-03-24 00:12:05.019 35 ERROR neutron_lib.callbacks.manager total, 
reserved = self._calculate_inventory_total_and_reserved(subnet)
  2020-03-24 00:12:05.019 35 ERROR neutron_lib.callbacks.manager   File 
"/usr/lib/python2.7/site-packages/neutron/services/segments/plugin.py", line 
271, in _calculate_inventory_total_and_reserved
  2020-03-24 00:12:05.019 35 ERROR neutron_lib.callbacks.manager if 
subnet['gateway_ip']:
  2020-03-24 00:12:05.019 35 ERROR neutron_lib.callbacks.manager KeyError: 
'gateway_ip'
  2020-03-24 00:12:05.019 35 ERROR neu

[Yahoo-eng-team] [Bug 1865138] [NEW] When deleting an stateless subnet port can get allocation on subnet with invalid segment

2020-02-28 Thread Harald Jensås
Public bug reported:

A provider network with 3 stateless subnet, on different segments.
(NOTE, this output is from a dev environment with WIP fixes for bug/1864333 and 
bug/1864333)

$ for subnet in $(openstack subnet list --network providernet -f value -c ID); 
do openstack subnet show $subnet -f yaml -c segment_id -c cidr -c id; done
cidr: deaf:beef:3::/64
id: 954a1b8c-5fe7-4dcc-84bd-df24c371e651
segment_id: 632b2bab-5402-4a4d-9433-783d7051d8aa
cidr: deaf:beef:1::/64
id: ebae0025-a701-4b22-aa66-00ec48025b30
segment_id: d1930254-36c9-4490-94f7-d095a25cf3b0
cidr: deaf:beef:2::/64
id: ec2a9675-a286-4c8b-983d-2f762939cb5b
segment_id: 1586a525-e250-4003-bae4-819e18e70c0e

$ openstack port list --network providernet -f yaml -c "Fixed IP Addresses"
- Fixed IP Addresses:
  - ip_address: deaf:beef:2:0:f816:3eff:fe03:eb71
subnet_id: ec2a9675-a286-4c8b-983d-2f762939cb5b
- Fixed IP Addresses:
  - ip_address: deaf:beef:3:0:f816:3eff:fe48:bb26
subnet_id: c052289a-f8a0-464b-9413-717628fca4c2
- Fixed IP Addresses:
  - ip_address: deaf:beef:1:0:f816:3eff:fea1:1aab
subnet_id: ebae0025-a701-4b22-aa66-00ec48025b30
- Fixed IP Addresses: []  <-- Deffered allocation

$ openstack subnet delete subnet3

After deleting subnet3, the port who was on this subnet get's an
allocation on  subnet_id: ebae0025-a701-4b22-aa66-00ec48025b30 which is
not the correct segment for this host.

$ openstack port list --network providernet -f yaml -c "Fixed IP Addresses"
- Fixed IP Addresses:
  - ip_address: deaf:beef:2:0:f816:3eff:fe03:eb71
subnet_id: ec2a9675-a286-4c8b-983d-2f762939cb5b
- Fixed IP Addresses:
  - ip_address: deaf:beef:1:0:f816:3eff:fe48:bb26   <-- Allocation on invalid 
segment.
subnet_id: ebae0025-a701-4b22-aa66-00ec48025b30
- Fixed IP Addresses:
  - ip_address: deaf:beef:1:0:f816:3eff:fea1:1aab
subnet_id: ebae0025-a701-4b22-aa66-00ec48025b30
- Fixed IP Addresses: []


I belive the correct behaviour here would be to remove the allocation from the 
deleted segment and set allocaton 'deferred' on the port. Or raise SubnetInUse 
exception on subnet delete because there is no other auto-address subnet that 
can satisfy the in-use port.

** Affects: neutron
 Importance: Undecided
 Status: New


** Tags: ipv6

-- 
You received this bug notification because you are a member of Yahoo!
Engineering Team, which is subscribed to neutron.
https://bugs.launchpad.net/bugs/1865138

Title:
  When deleting an stateless subnet port can get allocation on subnet
  with invalid segment

Status in neutron:
  New

Bug description:
  A provider network with 3 stateless subnet, on different segments.
  (NOTE, this output is from a dev environment with WIP fixes for bug/1864333 
and bug/1864333)

  $ for subnet in $(openstack subnet list --network providernet -f value -c 
ID); do openstack subnet show $subnet -f yaml -c segment_id -c cidr -c id; done
  cidr: deaf:beef:3::/64
  id: 954a1b8c-5fe7-4dcc-84bd-df24c371e651
  segment_id: 632b2bab-5402-4a4d-9433-783d7051d8aa
  cidr: deaf:beef:1::/64
  id: ebae0025-a701-4b22-aa66-00ec48025b30
  segment_id: d1930254-36c9-4490-94f7-d095a25cf3b0
  cidr: deaf:beef:2::/64
  id: ec2a9675-a286-4c8b-983d-2f762939cb5b
  segment_id: 1586a525-e250-4003-bae4-819e18e70c0e

  $ openstack port list --network providernet -f yaml -c "Fixed IP Addresses"
  - Fixed IP Addresses:
- ip_address: deaf:beef:2:0:f816:3eff:fe03:eb71
  subnet_id: ec2a9675-a286-4c8b-983d-2f762939cb5b
  - Fixed IP Addresses:
- ip_address: deaf:beef:3:0:f816:3eff:fe48:bb26
  subnet_id: c052289a-f8a0-464b-9413-717628fca4c2
  - Fixed IP Addresses:
- ip_address: deaf:beef:1:0:f816:3eff:fea1:1aab
  subnet_id: ebae0025-a701-4b22-aa66-00ec48025b30
  - Fixed IP Addresses: []  <-- Deffered allocation

  $ openstack subnet delete subnet3

  After deleting subnet3, the port who was on this subnet get's an
  allocation on  subnet_id: ebae0025-a701-4b22-aa66-00ec48025b30 which
  is not the correct segment for this host.

  $ openstack port list --network providernet -f yaml -c "Fixed IP Addresses"
  - Fixed IP Addresses:
- ip_address: deaf:beef:2:0:f816:3eff:fe03:eb71
  subnet_id: ec2a9675-a286-4c8b-983d-2f762939cb5b
  - Fixed IP Addresses:
- ip_address: deaf:beef:1:0:f816:3eff:fe48:bb26   <-- Allocation on invalid 
segment.
  subnet_id: ebae0025-a701-4b22-aa66-00ec48025b30
  - Fixed IP Addresses:
- ip_address: deaf:beef:1:0:f816:3eff:fea1:1aab
  subnet_id: ebae0025-a701-4b22-aa66-00ec48025b30
  - Fixed IP Addresses: []

  
  I belive the correct behaviour here would be to remove the allocation from 
the deleted segment and set allocaton 'deferred' on the port. Or raise 
SubnetInUse exception on subnet delete because there is no other auto-address 
subnet that can satisfy the in-use port.

To manage notifications about this bug go to:
https://bugs.launchpad.net/neutron/+bug/1865138/+subscriptions

-- 
Mailing list: https://launchpad.net/~yahoo-eng-team
Post to : yahoo-eng-team@lists.la

[Yahoo-eng-team] [Bug 1865098] [NEW] logging error in _update_routed_network_host_routes

2020-02-27 Thread Harald Jensås
Public bug reported:

File "/opt/stack/neutron/neutron/services/segments/plugin.py", line 556, in 
_update_routed_network_host_routes  
  
(subnet.id, subnet.network_id)) 


 Message: "Error formatting log line msg='Updating host routes for subnet *s on 
routed network *s' err=TypeError('not enough arguments for format string',)"
 
 Arguments: (('ebae0025-a701-4b22-aa66-00ec48025b30', 
'306a1697-03a2-4445-bc78-c874fe226ffd'),)   

   
 --- Logging error ---

** Affects: neutron
 Importance: Undecided
 Status: New


** Tags: logging

-- 
You received this bug notification because you are a member of Yahoo!
Engineering Team, which is subscribed to neutron.
https://bugs.launchpad.net/bugs/1865098

Title:
  logging error in _update_routed_network_host_routes

Status in neutron:
  New

Bug description:
  File "/opt/stack/neutron/neutron/services/segments/plugin.py", line 556, in 
_update_routed_network_host_routes  
  
  (subnet.id, subnet.network_id))   

  
   Message: "Error formatting log line msg='Updating host routes for subnet *s 
on routed network *s' err=TypeError('not enough arguments for format string',)" 

   Arguments: (('ebae0025-a701-4b22-aa66-00ec48025b30', 
'306a1697-03a2-4445-bc78-c874fe226ffd'),)   

   
   --- Logging error ---

To manage notifications about this bug go to:
https://bugs.launchpad.net/neutron/+bug/1865098/+subscriptions

-- 
Mailing list: https://launchpad.net/~yahoo-eng-team
Post to : yahoo-eng-team@lists.launchpad.net
Unsubscribe : https://launchpad.net/~yahoo-eng-team
More help   : https://help.launchpad.net/ListHelp


[Yahoo-eng-team] [Bug 1864333] [NEW] When adding another stateless subnet, implicit address allocation happen for port with deferred ip allocation

2020-02-22 Thread Harald Jensås
Public bug reported:

$ openstack port create \
  --network provider test-port-deferred \
  -c fixed_ips -f yaml
fixed_ips: []

$ openstack subnet create \
  --ipv6-ra-mode dhcpv6-stateless \
  --ipv6-address-mode dhcpv6-stateless \
  --network provider \
  --network-segment provider-segment2 \
  --dhcp \
  --ip-version 6 \
  --subnet-range dead:beef:3::/64 \
  provider-subnet2-2

$ openstack subnet list --network provider -f yaml
- ID: 793bf8ce-f44a-468f-83e0-6c82375081f7
  Name: provider-subnet2-2
  Network: 45b993b2-5224-409e-9756-0be190a19cf5
  Subnet: dead:beef:3::/64
- ID: 926269c1-b05e-4b48-bafe-6be8e9cbd12c
  Name: provider-subnet1
  Network: 45b993b2-5224-409e-9756-0be190a19cf5
  Subnet: dead:beef:1::/64
- ID: cdec94ce-8e3b-4c5b-aba2-13271f8b8b91
  Name: provider-subnet2
  Network: 45b993b2-5224-409e-9756-0be190a19cf5
  Subnet: dead:beef:2::/64

$ openstack port list --network provider -f yaml
- Fixed IP Addresses:
  - ip_address: dead:beef:3:0:f816:3eff:fe9e:67f7
subnet_id: 793bf8ce-f44a-468f-83e0-6c82375081f7
  ID: 8e2fe6e9-d418-4228-aad8-f5d0704be801
  MAC Address: fa:16:3e:9e:67:f7
  Name: test-port-deferred
  Status: DOWN

$ openstack port show test-port-deferred -f yaml
admin_state_up: true
allowed_address_pairs: []
binding_host_id: ''
binding_profile: {}
binding_vif_details: {}
binding_vif_type: unbound
binding_vnic_type: normal
created_at: '2020-02-22T13:46:51Z'
data_plane_status: null
description: ''
device_id: ''
device_owner: ''
dns_assignment:
- fqdn: host-dead-beef-3-0-f816-3eff-fe9e-67f7.openstackgate.local.
  hostname: host-dead-beef-3-0-f816-3eff-fe9e-67f7
  ip_address: dead:beef:3:0:f816:3eff:fe9e:67f7
dns_domain: ''
dns_name: ''
extra_dhcp_opts: []
fixed_ips:
- ip_address: dead:beef:3:0:f816:3eff:fe9e:67f7
  subnet_id: 793bf8ce-f44a-468f-83e0-6c82375081f7
id: 8e2fe6e9-d418-4228-aad8-f5d0704be801
location:
  cloud: ''
  project:
domain_id: default
domain_name: null
id: 09295b4e443245b6b491c79f283388b9
name: demo
  region_name: RegionOne
  zone: null
mac_address: fa:16:3e:9e:67:f7
name: test-port-deferred
network_id: 45b993b2-5224-409e-9756-0be190a19cf5
port_security_enabled: true
project_id: 09295b4e443245b6b491c79f283388b9
propagate_uplink_status: false
qos_network_policy_id: null
qos_policy_id: null
resource_request: null
revision_number: 3
security_group_ids:
- a19761db-e6a5-470c-a95f-98255e16b845
status: DOWN
tags: []
trunk_details: null
updated_at: '2020-02-22T13:47:12Z'

Since the port does not have 'binding_host_id' IP allocation on the
routed provider network was deffered on create. However when adding
another ipv6 stateless subnet, implicit address allocation is added to
the port. This allocation should have been deferred.

** Affects: neutron
 Importance: Undecided
 Status: New

** Summary changed:

- When adding another stateless subnet, implicit address allocation happen for 
port wiht deffered ip allocation
+ When adding another stateless subnet, implicit address allocation happen for 
port with deffered ip allocation

** Summary changed:

- When adding another stateless subnet, implicit address allocation happen for 
port with deffered ip allocation
+ When adding another stateless subnet, implicit address allocation happen for 
port with deferred ip allocation

** Description changed:

  $ openstack port create \
-   --network provider test-port-deferred \
-   -c fixed_ips -f yaml

  
- fixed_ips: [] 


  
+   --network provider test-port-deferred \
+   -c fixed_ips -f yaml
+ fixed_ips: []
  
  $ openstack subnet create \
-   --ipv6-ra-mode dhcpv6-stateless \
-   --ipv6-address-mode dhcpv6-stateless \
-   --network provider \
-   --network-segment provider-segment2 \
-   --dhcp \
-   --ip-version 6 \
-   --subnet-range dead:beef:3::/64 \
-   provider-subnet2-2
+   --ipv6-ra-mode dhcpv6-stateless \
+   --ipv6-address-mode dhcpv6-stateless \
+   --network provider \
+   --network-segment provider-segment2 \
+   --dhcp \
+   --ip-version 6 \
+   --subnet-range dead:beef:3::/64 \
+   provider-subnet2-2
  
  $ openstack subnet list --network provider -f yaml
  - ID: 793bf8ce-f44a-468f-83e0-6c82375081f7
-   Name: provider-subnet2-2
-   Network: 45b993b2-5224-409e-9756-0be190a19cf5
-   Subnet: dead:beef:3::/64
+   Name: provider-subnet2-2
+   Network: 45b993b2-5224-409e-9756-0be190a19cf5
+   Subnet: dead:beef:3::/64
  - ID: 926269c1-b05e-4b48-bafe-6be8e9cbd12c
-   Name: provider-subnet1
-   Network: 45b993b2-5224-409e-9756-0be190a19cf5
-   Subnet: dead:beef:1::/64
+   Name: provider-subnet1
+   Network: 45b993b2-5224-409e-9756-0be190a19cf

[Yahoo-eng-team] [Bug 1864225] [NEW] IP allocation for stateless IPv6 does not filter on segment when fixed-ips contain a subnet_id

2020-02-21 Thread Harald Jensås
Public bug reported:

Network 45b993b2-5224-409e-9756-0be190a19cf5 with two segments and two
subnets:

$ openstack network segment list --network provider -f yaml
- ID: 612f96f0-7682-49f7-bfc2-c52437f6e948
  Name: provider-segment1
  Network: 45b993b2-5224-409e-9756-0be190a19cf5
  Network Type: flat
  Segment: null
- ID: 9632dc77-d8d1-4d2b-afab-23568f1d475f
  Name: provider-segment2
  Network: 45b993b2-5224-409e-9756-0be190a19cf5
  Network Type: flat
  Segment: null

$ openstack subnet list --network provider -f yaml
- ID: 926269c1-b05e-4b48-bafe-6be8e9cbd12c
  Name: provider-subnet1
  Network: 45b993b2-5224-409e-9756-0be190a19cf5
  Subnet: dead:beef:1::/64
- ID: cdec94ce-8e3b-4c5b-aba2-13271f8b8b91
  Name: provider-subnet2
  Network: 45b993b2-5224-409e-9756-0be190a19cf5
  Subnet: dead:beef:2::/64

$ openstack subnet show -c segment_id -c ipv6_address_mode \
-c ipv6_ra_mode -c address_mode provider-subnet1
+---+--+
| Field | Value|
+---+--+
| ipv6_address_mode | dhcpv6-stateless |
| ipv6_ra_mode  | dhcpv6-stateless |
| segment_id| 612f96f0-7682-49f7-bfc2-c52437f6e948 |
+---+--+

$ openstack subnet show -c segment_id -c ipv6_address_mode \
-c ipv6_ra_mode -c address_mode provider-subnet2
+---+--+
| Field | Value|
+---+--+
| ipv6_address_mode | dhcpv6-stateless |
| ipv6_ra_mode  | dhcpv6-stateless |
| segment_id| 9632dc77-d8d1-4d2b-afab-23568f1d475f |
+---+--+


The two subnets have stateless address mode and are on different segments.

When creating port, openstack port create --network provider test-port1
ip allocation is deffered because segments are used and no host id is
provided.

When creating a port with a subnet specified in fixed-ips the implicit
address allocation for stateless subnets will allocate an address in
both subnets.

$ openstack port create --network provider \
  --fixed-ip=subnet=provider-subnet1 test-port1 \
  -c fixed_ips -f yaml
fixed_ips:
- ip_address: dead:beef:1:0:f816:3eff:fe9f:4907
  subnet_id: 926269c1-b05e-4b48-bafe-6be8e9cbd12c
- ip_address: dead:beef:2:0:f816:3eff:fe9f:4907
  subnet_id: cdec94ce-8e3b-4c5b-aba2-13271f8b8b91


Upon trying to bind this port later as part of provisioning with Ironic, this 
fails because fixed_ips included invalid subnet.
---
Failed to provision instance 3340fad9-93a6-4915-a87f-5f79cb647e03: Failed to 
prepare to deploy: Unable to set binding:host_id for neutron port 
c83d24aa-4167-4d37-9d1a-833290d55d83. Error: Invalid input for operation: 
Failed to create port on network 94543fd0-3a89-4d15-ad0c-ee1da99a63a4, because 
fixed_ips included invalid subnet 9c463bf7-0d6b-498e-a8b5-2c6c8bef7b56
---

This happens because all subnets are returned as candidates when fixed_ips is 
specified, despite that host id is not included:
https://opendev.org/openstack/neutron/src/branch/master/neutron/objects/subnet.py#L330-L337
Then addresses for all stateless subnets in the candidates are allocated:
https://opendev.org/openstack/neutron/src/branch/master/neutron/db/ipam_pluggable_backend.py#L256

** Affects: neutron
 Importance: Undecided
 Status: New

-- 
You received this bug notification because you are a member of Yahoo!
Engineering Team, which is subscribed to neutron.
https://bugs.launchpad.net/bugs/1864225

Title:
  IP allocation for stateless IPv6 does not filter on segment when
  fixed-ips contain a subnet_id

Status in neutron:
  New

Bug description:
  Network 45b993b2-5224-409e-9756-0be190a19cf5 with two segments and two
  subnets:

  $ openstack network segment list --network provider -f yaml
  - ID: 612f96f0-7682-49f7-bfc2-c52437f6e948
Name: provider-segment1
Network: 45b993b2-5224-409e-9756-0be190a19cf5
Network Type: flat
Segment: null
  - ID: 9632dc77-d8d1-4d2b-afab-23568f1d475f
Name: provider-segment2
Network: 45b993b2-5224-409e-9756-0be190a19cf5
Network Type: flat
Segment: null

  $ openstack subnet list --network provider -f yaml
  - ID: 926269c1-b05e-4b48-bafe-6be8e9cbd12c
Name: provider-subnet1
Network: 45b993b2-5224-409e-9756-0be190a19cf5
Subnet: dead:beef:1::/64
  - ID: cdec94ce-8e3b-4c5b-aba2-13271f8b8b91
Name: provider-subnet2
Network: 45b993b2-5224-409e-9756-0be190a19cf5
Subnet: dead:beef:2::/64

  $ openstack subnet show -c segment_id -c ipv6_address_mode \
  -c ipv6_ra_mode -c address_mode provider-subnet1
  +---+--+
  | Field | Value|
  +---+-

[Yahoo-eng-team] [Bug 1861032] [NEW] [RFE] Add support for configuring dnsmasq with multiple IPv6 addresses in same subnet on same port

2020-01-27 Thread Harald Jensås
Public bug reported:

To enable network boot and Ironic provisioning a patch has been proposed
to dnsmasq. The patch add's the possibility to provide list's of
individual addresses as well as prefixed ranges of ipv6 addresses for a
dhcp-host reservation.

When dnsmasq recieve a request matching the clid or mac address is
recieved the server will iterate over all candidate addresses until it
find's one that is not already leased to a different clid/iaid and
advertise this address.

Using multiple reservations for a single host makes it possible to
maintain a static leases only configuration which support network
booting systems with UEFI firmware that request a new address (a new
SOLICIT with a new IA_NA option using a new IAID) for different boot
modes, for instance 'PXE over IPv6', and 'HTTP-Boot over IPv6'. Open
Virtual Machine Firmware (OVMF) and most UEFI firmware build on the EDK2
code base exhibit this behaviour.

A new configuration syntax is introduces in dnsmasq in patch:
http://lists.thekelleys.org.uk/pipermail/dnsmasq-
discuss/2020q1/013743.html

For example:

 --dhcp-host=52:54:00:3f:5c:c0,[fd12:3456::aa02][fd12:3456::aa04],host1

The above will make the two addresses fd12:3456::aa02 and
fd12:3456::aa04 available to the host with hardware address
52:54:00:3f:5c:c0.


This RFE is to add functionality to the dnsmasq dhcp-agent implementation to 
write the new configuration format in the dnsmasq hosts file.

Given a neutron port:

"ports": [
{
"dns_assignment": [
   {
  "hostname": "myport02",
   "ip_address": "fd12:3456::aa02",
   "fqdn": "myport02.my-domain.org"
   },
   {
  "hostname": "myport04",
   "ip_address": "fd12:3456::aa04",
   "fqdn": "myport04.my-domain.org"
   },
],
"fixed_ips": [
{
"ip_address": "fd12:3456::aa02",
"subnet_id": "008ba151-0b8c-4a67-98b5-0d2b87666062"
},
{
"ip_address": "fd12:3456::aa04",
"subnet_id": "008ba151-0b8c-4a67-98b5-0d2b87666062"
}

],
"id": "d80b1a3b-4fc1-49f3-952e-1e2ab7081d8b",
"mac_address": "fa:16:3e:58:42:ed",
"network_id": "70c1db1f-b701-45bd-96e0-a313ee3430b3",

},
]
}


Current behaviour
-
  dhcp-host=fa:16:3e:58:42:ed,myport02.my-domain.org,[fd12:3456::aa02]
  dhcp-host=fa:16:3e:58:42:ed,myport04.my-domain.org,[fd12:3456::aa04]

  NOTE, this configuration means dnsmasq will only ever lease
fd12:3456::aa04. As it will always find that as the first valid
configuration for mac fa:16:3e:58:42:ed. In other words, the _current
behaviour is broken_.

New behaviour
-
  
dhcp-host=fa:16:3e:58:42:ed,myport02.my-domain.org,[fd12:3456::aa02][fd12:3456::aa04]

  This will allow dnsmasq to lase both addresses when requests from the
client mac using different IAID's is recieved.

** Affects: neutron
 Importance: Undecided
 Assignee: Harald Jensås (harald-jensas)
 Status: In Progress


** Tags: rfe

-- 
You received this bug notification because you are a member of Yahoo!
Engineering Team, which is subscribed to neutron.
https://bugs.launchpad.net/bugs/1861032

Title:
  [RFE] Add support for configuring dnsmasq with multiple IPv6 addresses
  in same subnet on same port

Status in neutron:
  In Progress

Bug description:
  To enable network boot and Ironic provisioning a patch has been
  proposed to dnsmasq. The patch add's the possibility to provide list's
  of individual addresses as well as prefixed ranges of ipv6 addresses
  for a dhcp-host reservation.

  When dnsmasq recieve a request matching the clid or mac address is
  recieved the server will iterate over all candidate addresses until it
  find's one that is not already leased to a different clid/iaid and
  advertise this address.

  Using multiple reservations for a single host makes it possible to
  maintain a static leases only configuration which support network
  booting systems with UEFI firmware that request a new address (a new
  SOLICIT with a new IA_NA option using a new IAID) for different boot
  modes, for instance 'PXE over IPv6', and 'HTTP-Boot over IPv6'. Open
  Virtual Machine Firmware (OVMF) and most UEFI firmware build on the
  EDK2 code base exhibit this behaviour.

  A new configuration syntax is introduces in dnsmasq in patch:
  http://lists.thekelleys.org.uk/pipermail/dnsmasq-
  discuss/202

[Yahoo-eng-team] [Bug 1861027] [NEW] neutron-lib - api-ref - port dns_assignment is a list?

2020-01-27 Thread Harald Jensås
Public bug reported:

In the api reference documentation dns_assignment is documented as:

"dns_assignment": {
"hostname": "myport",
"ip_address": "172.24.4.2",
"fqdn": "myport.my-domain.org"
},

Is it not in actually a list?

"dns_assignment": [
{
"hostname": "myport",
"ip_address": "172.24.4.2",
"fqdn": "myport.my-domain.org"
}
]


https://opendev.org/openstack/neutron-lib/src/branch/master/api-
ref/source/v2/samples/ports/ports-list-response.json#L11-L15

** Affects: neutron
 Importance: Undecided
 Status: New


** Tags: api-ref

-- 
You received this bug notification because you are a member of Yahoo!
Engineering Team, which is subscribed to neutron.
https://bugs.launchpad.net/bugs/1861027

Title:
  neutron-lib - api-ref - port dns_assignment is a list?

Status in neutron:
  New

Bug description:
  In the api reference documentation dns_assignment is documented as:

  "dns_assignment": {
  "hostname": "myport",
  "ip_address": "172.24.4.2",
  "fqdn": "myport.my-domain.org"
  },

  Is it not in actually a list?

  "dns_assignment": [
  {
  "hostname": "myport",
  "ip_address": "172.24.4.2",
  "fqdn": "myport.my-domain.org"
  }
  ]


  https://opendev.org/openstack/neutron-lib/src/branch/master/api-
  ref/source/v2/samples/ports/ports-list-response.json#L11-L15

To manage notifications about this bug go to:
https://bugs.launchpad.net/neutron/+bug/1861027/+subscriptions

-- 
Mailing list: https://launchpad.net/~yahoo-eng-team
Post to : yahoo-eng-team@lists.launchpad.net
Unsubscribe : https://launchpad.net/~yahoo-eng-team
More help   : https://help.launchpad.net/ListHelp


[Yahoo-eng-team] [Bug 1844124] Re: Not possible to change fixed-ips if port is on routed provider network

2019-12-19 Thread Harald Jensås
This was fixed in neutron. We can close this in tripleo.

** Changed in: tripleo
   Status: Triaged => Fix Released

-- 
You received this bug notification because you are a member of Yahoo!
Engineering Team, which is subscribed to neutron.
https://bugs.launchpad.net/bugs/1844124

Title:
  Not possible to change fixed-ips if port is on routed provider network

Status in neutron:
  Fix Released
Status in tripleo:
  Fix Released

Bug description:
  For ports on normal networks (non-Routed Provider Networks) it is
  possible to change the fixed-ip of a port. When a port is on a Routed
  Provider Network the same operation return an error: "Invalid input
  for operation: IP allocation requires subnets for network." Since this
  is an unbound port, and the change does not move the port ip
  allocation to a subnet associated with a different segment this
  operation should succeed.

  
  $ grep flat_networks /etc/neutron/plugins/ml2/ml2_conf.ini
  flat_networks = public,mynetwork

  $ openstack network create \
--provider-network-type flat \
--provider-physical-network mynetwork \
mynetwork

  $ openstack subnet create \
--network mynetwork \
--network-segment $(openstack network segment list --network mynetwork -f 
value -c ID) \
--subnet-range 192.168.254.0/24 \
--allocation-pool start=192.168.254.10,end=192.168.254.100 \
mysubnet

  $ openstack network show mynetwork -f value -c id && openstack subnet show 
mysubnet -f value -c id
  57e622a0-3003-4d9f-b01e-c12613935265
  df2cbb56-12b9-4156-8a23-36023b110b75

  
  $ curl -s -X POST \
 -H "X-Auth-Token: $(openstack token issue -f value -c id)" \
 http://192.168.122.222:9696/v2.0/ports \
 -d '{"port": {"name": "test-port", "network_id": 
"57e622a0-3003-4d9f-b01e-c12613935265", "fixed_ips": [{"subnet_id": 
"df2cbb56-12b9-4156-8a23-36023b110b75"}]}}' \
| python -m json.tool
  {
  "port": {
  "admin_state_up": true,
  "allowed_address_pairs": [],
  "binding:host_id": "",
  "binding:profile": {},
  "binding:vif_details": {},
  "binding:vif_type": "unbound",
  "binding:vnic_type": "normal",
  "created_at": "2019-09-16T11:56:06Z",
  "description": "",
  "device_id": "",
  "device_owner": "",
  "dns_assignment": [
  {
  "fqdn": "host-192-168-254-44.openstackgate.local.",
  "hostname": "host-192-168-254-44",
  "ip_address": "192.168.254.44"
  }
  ],
  "dns_domain": "",
  "dns_name": "",
  "extra_dhcp_opts": [],
  "fixed_ips": [
  {
  "ip_address": "192.168.254.44",
  "subnet_id": "df2cbb56-12b9-4156-8a23-36023b110b75"
  }
  ],
  "id": "84ef332d-8c48-422a-b400-0655702b1a0e",
  "ip_allocation": "immediate",
  "mac_address": "fa:16:3e:43:7c:fe",
  "name": "test-port",
  "network_id": "57e622a0-3003-4d9f-b01e-c12613935265",
  "port_security_enabled": true,
  "project_id": "4abf7cb77b574734adf086dfa828cd84",
  "propagate_uplink_status": false,
  "qos_policy_id": null,
  "resource_request": null,
  "revision_number": 1,
  "security_groups": [
  "708b5fa0-244c-46ee-9b35-30ba45a71ccf"
  ],
  "status": "DOWN",
  "tags": [],
  "tenant_id": "4abf7cb77b574734adf086dfa828cd84",
  "updated_at": "2019-09-16T11:56:06Z"
  }
  }

  
  $ curl -s -X PUT \
 -H "X-Auth-Token: $(openstack token issue -f value -c id)" \
 
http://192.168.122.222:9696/v2.0/ports/84ef332d-8c48-422a-b400-0655702b1a0e \
 -d '{"port": {"fixed_ips": [{"ip_address": "192.168.254.100"}]}}' \
 | python -m json.tool
  {
  "NeutronError": {
  "detail": "",
  "message": "Invalid input for operation: IP allocation requires 
subnets for network.",
  "type": "InvalidInput"
  }
  }

To manage notifications about this bug go to:
https://bugs.launchpad.net/neutron/+bug/1844124/+subscriptions

-- 
Mailing list: https://launchpad.net/~yahoo-eng-team
Post to : yahoo-eng-team@lists.launchpad.net
Unsubscribe : https://launchpad.net/~yahoo-eng-team
More help   : https://help.launchpad.net/ListHelp


[Yahoo-eng-team] [Bug 1855854] [NEW] [RFE] Dynamic DHCP allocation pool

2019-12-10 Thread Harald Jensås
Public bug reported:

Neuton currently only support configuring the DHCP agent with static
/fixed-address allocations. The DHCP client id (the client MAC address
in neutron's case) is mapped to a specific IP address in the dhcp server
configuration. No range of addresses are made available for clients
without a pre-allocated fixed-address.

When network booting on IPv6 this become an issue, the DHCPv6
specification which mandetes use of the DHCP Unique Identifier (DUID)
and Identity Association Identifier (IAID) to identify a lease. When
network booting, an instance will move trough a minimum of two DHCP
clients, and these rareley end up using identical DUID's and IAID's.

The combination of static/fixed-address allocations in the DHCP server
and the changeing DUID/IAID of the clients causes the second DHCP client
request to get a ``no address available`` reply from the server, and
thus the network boot process errors.

NOTE:
  In some cases just the UEFI PXE6 end up doing two cycles
  of DHCPv6 S.A.R.R (Solicit, Advertise, Request, Reply)
  with different IAID's. Because some UEFI firwmare use's a
  non-RFC compliant random generator for the IAID see bug:
https://bugzilla.tianocore.org/show_bug.cgi?id=1518.

  While this is a bug in UEFI firmware, it's a common enough
  implementation that is used by various hardware vendors
  that it makes sense to workaround the issue where possible.


This RFE is for adding the possibility to make a subnet with dynamic
allocation pool(s).

This would solve the network booting issue with changing IAID's
described above. A new lease with a new address will be offered during
each step of network booting.

For example an instance deployment via Openstack Baremetal service
(ironic) would typically include three DHCP clients during provisioning:
UEFI firmware, iPXE, ironic-python-agent ramdisk. So a toatal of 3
leases would be consumed to complete the provisioning.

If this RFE is implemented, the dhcp server (dnsmasq) would configure
the dhcp-range for a dynamic subnet (or dynamic allocation pool of a
subnet) without the ``mode`` set to ``static``. To ensure that the dhcp
server only provide a dynamic allocation for the desired ports the
``ignore`` option is used in a ``dhcp-host`` entry with a wildcard ``*``
host (``dhcp-host="*",ignore``). Ports that require dynamic addressing
would get a ``dhcp-host`` entry with ``dhcp-host=``
(whithout the ``ignore``) so that these specific ports get addresses
from the dynamic allocation pool.

** Affects: neutron
 Importance: Undecided
 Status: New


** Tags: rfe

-- 
You received this bug notification because you are a member of Yahoo!
Engineering Team, which is subscribed to neutron.
https://bugs.launchpad.net/bugs/1855854

Title:
  [RFE] Dynamic DHCP allocation pool

Status in neutron:
  New

Bug description:
  Neuton currently only support configuring the DHCP agent with static
  /fixed-address allocations. The DHCP client id (the client MAC address
  in neutron's case) is mapped to a specific IP address in the dhcp
  server configuration. No range of addresses are made available for
  clients without a pre-allocated fixed-address.

  When network booting on IPv6 this become an issue, the DHCPv6
  specification which mandetes use of the DHCP Unique Identifier (DUID)
  and Identity Association Identifier (IAID) to identify a lease. When
  network booting, an instance will move trough a minimum of two DHCP
  clients, and these rareley end up using identical DUID's and IAID's.

  The combination of static/fixed-address allocations in the DHCP server
  and the changeing DUID/IAID of the clients causes the second DHCP
  client request to get a ``no address available`` reply from the
  server, and thus the network boot process errors.

  NOTE:
In some cases just the UEFI PXE6 end up doing two cycles
of DHCPv6 S.A.R.R (Solicit, Advertise, Request, Reply)
with different IAID's. Because some UEFI firwmare use's a
non-RFC compliant random generator for the IAID see bug:
  https://bugzilla.tianocore.org/show_bug.cgi?id=1518.

While this is a bug in UEFI firmware, it's a common enough
implementation that is used by various hardware vendors
that it makes sense to workaround the issue where possible.


  This RFE is for adding the possibility to make a subnet with dynamic
  allocation pool(s).

  This would solve the network booting issue with changing IAID's
  described above. A new lease with a new address will be offered during
  each step of network booting.

  For example an instance deployment via Openstack Baremetal service
  (ironic) would typically include three DHCP clients during
  provisioning: UEFI firmware, iPXE, ironic-python-agent ramdisk. So a
  toatal of 3 leases would be consumed to complete the provisioning.

  If this RFE is implemented, the dhcp server (dnsmasq) would configure
  the dhcp-range for a dynamic subnet (or dynamic allocation pool of a
  subnet) without the ``mode`

[Yahoo-eng-team] [Bug 1848690] [NEW] subnet_is_ipv6() function does not work for types ipv6_dhcpv6-stateless|stateful

2019-10-18 Thread Harald Jensås
Public bug reported:

def subnet_is_ipv6(subnet):
"""Common helper for checking network_state subnets for ipv6."""
# 'static6' or 'dhcp6'
if subnet['type'].endswith('6'):
# This is a request for DHCPv6.
return True
elif subnet['type'] == 'static' and is_ipv6_addr(subnet.get('address')):
return True
return False


Function return false for ipv6_dhcpv6-stateless|stateful, the eni renderer does 
not add '6' to 'inet' so it's rendered like: 'iface iface0 inet auto|dhcp' not 
'iface iface0 inet6 auto|dhcp'

** Affects: cloud-init
 Importance: Undecided
 Status: New

-- 
You received this bug notification because you are a member of Yahoo!
Engineering Team, which is subscribed to cloud-init.
https://bugs.launchpad.net/bugs/1848690

Title:
  subnet_is_ipv6() function does not work for types
  ipv6_dhcpv6-stateless|stateful

Status in cloud-init:
  New

Bug description:
  def subnet_is_ipv6(subnet):
  """Common helper for checking network_state subnets for ipv6."""
  # 'static6' or 'dhcp6'
  if subnet['type'].endswith('6'):
  # This is a request for DHCPv6.
  return True
  elif subnet['type'] == 'static' and is_ipv6_addr(subnet.get('address')):
  return True
  return False

  
  Function return false for ipv6_dhcpv6-stateless|stateful, the eni renderer 
does not add '6' to 'inet' so it's rendered like: 'iface iface0 inet auto|dhcp' 
not 'iface iface0 inet6 auto|dhcp'

To manage notifications about this bug go to:
https://bugs.launchpad.net/cloud-init/+bug/1848690/+subscriptions

-- 
Mailing list: https://launchpad.net/~yahoo-eng-team
Post to : yahoo-eng-team@lists.launchpad.net
Unsubscribe : https://launchpad.net/~yahoo-eng-team
More help   : https://help.launchpad.net/ListHelp


[Yahoo-eng-team] [Bug 1847517] [NEW] cloudinit/net/sysconfig.py writed incorrect config for dhcp-stateless openstack subnets

2019-10-09 Thread Harald Jensås
Public bug reported:

$ openstack subnet show 48c8407b-7ef3-4047-82dd-ca6d671c2162 -c 
ipv6_address_mode -c ipv6_ra_mode   

  
+---+--+
| Field | Value|
+---+--+
| ipv6_address_mode | dhcpv6-stateless |
| ipv6_ra_mode  | dhcpv6-stateless |
+---+--+

File: openstack/latest/network_data.json

{
"services": [
{
"type": "dns",
"address": "fd12:3456:789a:1::1"
}
],
"networks": [
{
"network_id": "cf79eea0-6196-45a0-b9f8-ff9dd95eaab3",
"type": "ipv6_dhcpv6-stateless",
"services": [
{
"type": "dns",
"address": "fd12:3456:789a:1::1"
}
],
"netmask": ":::::",
"link": "tap5910c6cc-2d",
"routes": [
{
"netmask": "::",
"network": "::",
"gateway": "fd12:3456:789a:1::fffe"
}
],
"ip_address": "fd12:3456:789a:1:f816:3eff:fee2:3aa3",
"id": "network0"
}
],
"links": [
{
"vif_id": "5910c6cc-2d6e-4a44-bf05-2accdefd0316",
"type": "phy",
"ethernet_mac_address": "fa:16:3e:73:0d:96",
"id": "tap5910c6cc-2d",
"mtu": 1450
}
]
}


Actual result
-
The network config forces the client to try dhcpv6, not stateless e.g slaac. 
This fails when there is no DHCPv6 configured, or DHCPv6 is only configured to 
provide advanced options such a bootfile-url etc.

# Created by cloud-init on instance boot automatically, do not edit.
#
BOOTPROTO=none
DEFROUTE=yes
DEVICE=eth0
DHCPV6C=yes
HWADDR=fa:16:3e:73:0d:96
IPV6INIT=yes
IPV6_DEFAULTGW=fd12:3456:789a:1::fffe
MTU=1450
ONBOOT=yes
TYPE=Ethernet
USERCTL=no


Expected result
---
The configuration written should differentiate between dhcp6-stateful and 
dhcp6-stateless.
For dhcp6-stateless "DHCPV6C=yes" should be replaced by IPV6_AUTOCONF=yes as 
shown in the example below.


# Created by cloud-init on instance boot automatically, do not edit.
#
BOOTPROTO=none
DEFROUTE=yes
DEVICE=eth0
IPV6_AUTOCONF=yes
HWADDR=fa:16:3e:73:0d:96
IPV6INIT=yes
IPV6_DEFAULTGW=fd12:3456:789a:1::fffe
MTU=1450
ONBOOT=yes
TYPE=Ethernet
USERCTL=no


The issue starts is in the following code[1]:
if 'dhcp' in network['type']:
t = 'dhcp6' if network['type'].startswith('ipv6') else 'dhcp4'
subnet.update({
'type': t,
})

This makes the assumption that 'ipv6_dhcpv6-stateless' and
'ipv6_dhcpv6-stateful' can be treated the same.

Then in the code[2] the subnet type is checked and DHCPV6C is always used.
if subnet_type == 'dhcp6':
# TODO need to set BOOTPROTO to dhcp6 on SUSE
iface_cfg['IPV6INIT'] = True
iface_cfg['DHCPV6C'] = True


Grepping the source code it looks like this is only affecting 
cloudinit/net/sysconfig.py.

[1] 
https://git.launchpad.net/cloud-init/tree/cloudinit/sources/helpers/openstack.py#n587
[2] https://git.launchpad.net/cloud-init/tree/cloudinit/net/sysconfig.py#n346

** Affects: cloud-init
 Importance: Undecided
 Status: New


** Tags: rhel

-- 
You received this bug notification because you are a member of Yahoo!
Engineering Team, which is subscribed to cloud-init.
https://bugs.launchpad.net/bugs/1847517

Title:
  cloudinit/net/sysconfig.py writed incorrect config for dhcp-stateless
  openstack subnets

Status in cloud-init:
  New

Bug description:
  $ openstack subnet show 48c8407b-7ef3-4047-82dd-ca6d671c2162 -c 
ipv6_address_mode -c ipv6_ra_mode   

  
  +---+--+
  | Field | Value|
  +---+--+
  | ipv6_address_mode | dhcpv6-stateless |
  | ipv6_ra_mode  | dhcpv6-stateless |
  +---+--+

  File: openstack/latest/network_data.json
  
  {
  "services": [
  {
  "type": "dns",
  "address": "fd12:3456:789a:1::1"
  }
  ],
  "networks": [
  {
  "network_id": "cf79eea0-6196-45a0-b9f8-ff9dd95eaab3",
  "type": "ipv6_dhcpv6-stateless",
  "services": [
  {
  "type": "dns",
  "address": "fd12:3456:789a:1::1"
  }
  ],
  "netmask": ":::::",
  "link": "tap5910c6cc-2d",
 

[Yahoo-eng-team] [Bug 1844124] Re: Not possible to change fixed-ips if port is on routed provider network

2019-09-16 Thread Harald Jensås
** Also affects: tripleo
   Importance: Undecided
   Status: New

** Changed in: tripleo
   Importance: Undecided => High

** Changed in: tripleo
   Status: New => Triaged

** Changed in: tripleo
Milestone: None => train-3

-- 
You received this bug notification because you are a member of Yahoo!
Engineering Team, which is subscribed to neutron.
https://bugs.launchpad.net/bugs/1844124

Title:
  Not possible to change fixed-ips if port is on routed provider network

Status in neutron:
  New
Status in tripleo:
  Triaged

Bug description:
  For ports on normal networks (non-Routed Provider Networks) it is
  possible to change the fixed-ip of a port. When a port is on a Routed
  Provider Network the same operation return an error: "Invalid input
  for operation: IP allocation requires subnets for network." Since this
  is an unbound port, and the change does not move the port ip
  allocation to a subnet associated with a different segment this
  operation should succeed.

  
  $ grep flat_networks /etc/neutron/plugins/ml2/ml2_conf.ini
  flat_networks = public,mynetwork

  $ openstack network create \
--provider-network-type flat \
--provider-physical-network mynetwork \
mynetwork

  $ openstack subnet create \
--network mynetwork \
--network-segment $(openstack network segment list --network mynetwork -f 
value -c ID) \
--subnet-range 192.168.254.0/24 \
--allocation-pool start=192.168.254.10,end=192.168.254.100 \
mysubnet

  $ openstack network show mynetwork -f value -c id && openstack subnet show 
mysubnet -f value -c id
  57e622a0-3003-4d9f-b01e-c12613935265
  df2cbb56-12b9-4156-8a23-36023b110b75

  
  $ curl -s -X POST \
 -H "X-Auth-Token: $(openstack token issue -f value -c id)" \
 http://192.168.122.222:9696/v2.0/ports \
 -d '{"port": {"name": "test-port", "network_id": 
"57e622a0-3003-4d9f-b01e-c12613935265", "fixed_ips": [{"subnet_id": 
"df2cbb56-12b9-4156-8a23-36023b110b75"}]}}' \
| python -m json.tool
  {
  "port": {
  "admin_state_up": true,
  "allowed_address_pairs": [],
  "binding:host_id": "",
  "binding:profile": {},
  "binding:vif_details": {},
  "binding:vif_type": "unbound",
  "binding:vnic_type": "normal",
  "created_at": "2019-09-16T11:56:06Z",
  "description": "",
  "device_id": "",
  "device_owner": "",
  "dns_assignment": [
  {
  "fqdn": "host-192-168-254-44.openstackgate.local.",
  "hostname": "host-192-168-254-44",
  "ip_address": "192.168.254.44"
  }
  ],
  "dns_domain": "",
  "dns_name": "",
  "extra_dhcp_opts": [],
  "fixed_ips": [
  {
  "ip_address": "192.168.254.44",
  "subnet_id": "df2cbb56-12b9-4156-8a23-36023b110b75"
  }
  ],
  "id": "84ef332d-8c48-422a-b400-0655702b1a0e",
  "ip_allocation": "immediate",
  "mac_address": "fa:16:3e:43:7c:fe",
  "name": "test-port",
  "network_id": "57e622a0-3003-4d9f-b01e-c12613935265",
  "port_security_enabled": true,
  "project_id": "4abf7cb77b574734adf086dfa828cd84",
  "propagate_uplink_status": false,
  "qos_policy_id": null,
  "resource_request": null,
  "revision_number": 1,
  "security_groups": [
  "708b5fa0-244c-46ee-9b35-30ba45a71ccf"
  ],
  "status": "DOWN",
  "tags": [],
  "tenant_id": "4abf7cb77b574734adf086dfa828cd84",
  "updated_at": "2019-09-16T11:56:06Z"
  }
  }

  
  $ curl -s -X PUT \
 -H "X-Auth-Token: $(openstack token issue -f value -c id)" \
 
http://192.168.122.222:9696/v2.0/ports/84ef332d-8c48-422a-b400-0655702b1a0e \
 -d '{"port": {"fixed_ips": [{"ip_address": "192.168.254.100"}]}}' \
 | python -m json.tool
  {
  "NeutronError": {
  "detail": "",
  "message": "Invalid input for operation: IP allocation requires 
subnets for network.",
  "type": "InvalidInput"
  }
  }

To manage notifications about this bug go to:
https://bugs.launchpad.net/neutron/+bug/1844124/+subscriptions

-- 
Mailing list: https://launchpad.net/~yahoo-eng-team
Post to : yahoo-eng-team@lists.launchpad.net
Unsubscribe : https://launchpad.net/~yahoo-eng-team
More help   : https://help.launchpad.net/ListHelp


[Yahoo-eng-team] [Bug 1844124] [NEW] Not possible to change fixed-ips if port is on routed provider network

2019-09-16 Thread Harald Jensås
Public bug reported:

For ports on normal networks (non-Routed Provider Networks) it is
possible to change the fixed-ip of a port. When a port is on a Routed
Provider Network the same operation return an error: "Invalid input for
operation: IP allocation requires subnets for network." Since this is an
unbound port, and the change does not move the port ip allocation to a
subnet associated with a different segment this operation should
succeed.


$ grep flat_networks /etc/neutron/plugins/ml2/ml2_conf.ini
flat_networks = public,mynetwork

$ openstack network create \
  --provider-network-type flat \
  --provider-physical-network mynetwork \
  mynetwork

$ openstack subnet create \
  --network mynetwork \
  --network-segment $(openstack network segment list --network mynetwork -f 
value -c ID) \
  --subnet-range 192.168.254.0/24 \
  --allocation-pool start=192.168.254.10,end=192.168.254.100 \
  mysubnet

$ openstack network show mynetwork -f value -c id && openstack subnet show 
mysubnet -f value -c id
57e622a0-3003-4d9f-b01e-c12613935265
df2cbb56-12b9-4156-8a23-36023b110b75


$ curl -s -X POST \
   -H "X-Auth-Token: $(openstack token issue -f value -c id)" \
   http://192.168.122.222:9696/v2.0/ports \
   -d '{"port": {"name": "test-port", "network_id": 
"57e622a0-3003-4d9f-b01e-c12613935265", "fixed_ips": [{"subnet_id": 
"df2cbb56-12b9-4156-8a23-36023b110b75"}]}}' \
  | python -m json.tool
{
"port": {
"admin_state_up": true,
"allowed_address_pairs": [],
"binding:host_id": "",
"binding:profile": {},
"binding:vif_details": {},
"binding:vif_type": "unbound",
"binding:vnic_type": "normal",
"created_at": "2019-09-16T11:56:06Z",
"description": "",
"device_id": "",
"device_owner": "",
"dns_assignment": [
{
"fqdn": "host-192-168-254-44.openstackgate.local.",
"hostname": "host-192-168-254-44",
"ip_address": "192.168.254.44"
}
],
"dns_domain": "",
"dns_name": "",
"extra_dhcp_opts": [],
"fixed_ips": [
{
"ip_address": "192.168.254.44",
"subnet_id": "df2cbb56-12b9-4156-8a23-36023b110b75"
}
],
"id": "84ef332d-8c48-422a-b400-0655702b1a0e",
"ip_allocation": "immediate",
"mac_address": "fa:16:3e:43:7c:fe",
"name": "test-port",
"network_id": "57e622a0-3003-4d9f-b01e-c12613935265",
"port_security_enabled": true,
"project_id": "4abf7cb77b574734adf086dfa828cd84",
"propagate_uplink_status": false,
"qos_policy_id": null,
"resource_request": null,
"revision_number": 1,
"security_groups": [
"708b5fa0-244c-46ee-9b35-30ba45a71ccf"
],
"status": "DOWN",
"tags": [],
"tenant_id": "4abf7cb77b574734adf086dfa828cd84",
"updated_at": "2019-09-16T11:56:06Z"
}
}


$ curl -s -X PUT \
   -H "X-Auth-Token: $(openstack token issue -f value -c id)" \
   http://192.168.122.222:9696/v2.0/ports/84ef332d-8c48-422a-b400-0655702b1a0e \
   -d '{"port": {"fixed_ips": [{"ip_address": "192.168.254.100"}]}}' \
   | python -m json.tool
{
"NeutronError": {
"detail": "",
"message": "Invalid input for operation: IP allocation requires subnets 
for network.",
"type": "InvalidInput"
}
}

** Affects: neutron
 Importance: Undecided
 Status: New

-- 
You received this bug notification because you are a member of Yahoo!
Engineering Team, which is subscribed to neutron.
https://bugs.launchpad.net/bugs/1844124

Title:
  Not possible to change fixed-ips if port is on routed provider network

Status in neutron:
  New

Bug description:
  For ports on normal networks (non-Routed Provider Networks) it is
  possible to change the fixed-ip of a port. When a port is on a Routed
  Provider Network the same operation return an error: "Invalid input
  for operation: IP allocation requires subnets for network." Since this
  is an unbound port, and the change does not move the port ip
  allocation to a subnet associated with a different segment this
  operation should succeed.

  
  $ grep flat_networks /etc/neutron/plugins/ml2/ml2_conf.ini
  flat_networks = public,mynetwork

  $ openstack network create \
--provider-network-type flat \
--provider-physical-network mynetwork \
mynetwork

  $ openstack subnet create \
--network mynetwork \
--network-segment $(openstack network segment list --network mynetwork -f 
value -c ID) \
--subnet-range 192.168.254.0/24 \
--allocation-pool start=192.168.254.10,end=192.168.254.100 \
mysubnet

  $ openstack network show mynetwork -f value -c id && openstack subnet show 
mysubnet -f value -c id
  57e622a0-3003-4d9f-b01e-c12613935265
  df2cbb56-12b9-4156-8a23-36023b110b75

  
  $ curl -s -X POST \
 -H "X-Auth-Token: $(openstack token issue -f value -c id

[Yahoo-eng-team] [Bug 1831811] [NEW] Unable to filter using same cidr value as used for subnet create

2019-06-05 Thread Harald Jensås
Public bug reported:

When subnets are created using a cidr the value provided is
normalized/converted to a proper subnet

https://opendev.org/openstack/neutron/src/branch/master/neutron/db/db_base_plugin_v2.py#L818-L820


818# turn the CIDR into a proper subnet
819net = netaddr.IPNetwork(s['cidr'])
820subnet['subnet']['cidr'] = '%s/%s' % (net.network, net.prefixlen)


I.e if the user create using `192.168.100.1/24` as the cidr the subnet create 
is successfull. The cidr is turned into the proper subnet `192.168.100.0/24` 
internally in the pre-commit.


When listing subnets and filtering using the same value for the cidr the return 
is an empty list. Example:

$ curl -s -H "X-Auth-Token: $(openstack token issue -c id -f value)" -H 
"Content-Type: application/json" 
http://192.168.122.103:9696/v2.0/subnets?cidr=192.168.100.1/24 | json_reformat 
{
"subnets": [

]
}

A user should be able to find the subnet by filtering using the same
`192.168.100.1/24` value used when creating the subnet.

** Affects: neutron
 Importance: Undecided
 Status: New


** Tags: queens-backport-potential

-- 
You received this bug notification because you are a member of Yahoo!
Engineering Team, which is subscribed to neutron.
https://bugs.launchpad.net/bugs/1831811

Title:
  Unable to filter using same cidr value as used for subnet create

Status in neutron:
  New

Bug description:
  When subnets are created using a cidr the value provided is
  normalized/converted to a proper subnet

  
https://opendev.org/openstack/neutron/src/branch/master/neutron/db/db_base_plugin_v2.py#L818-L820

  
  818# turn the CIDR into a proper subnet
  819net = netaddr.IPNetwork(s['cidr'])
  820subnet['subnet']['cidr'] = '%s/%s' % (net.network, 
net.prefixlen)

  
  I.e if the user create using `192.168.100.1/24` as the cidr the subnet create 
is successfull. The cidr is turned into the proper subnet `192.168.100.0/24` 
internally in the pre-commit.

  
  When listing subnets and filtering using the same value for the cidr the 
return is an empty list. Example:

  $ curl -s -H "X-Auth-Token: $(openstack token issue -c id -f value)" -H 
"Content-Type: application/json" 
http://192.168.122.103:9696/v2.0/subnets?cidr=192.168.100.1/24 | json_reformat 
  {
  "subnets": [

  ]
  }

  A user should be able to find the subnet by filtering using the same
  `192.168.100.1/24` value used when creating the subnet.

To manage notifications about this bug go to:
https://bugs.launchpad.net/neutron/+bug/1831811/+subscriptions

-- 
Mailing list: https://launchpad.net/~yahoo-eng-team
Post to : yahoo-eng-team@lists.launchpad.net
Unsubscribe : https://launchpad.net/~yahoo-eng-team
More help   : https://help.launchpad.net/ListHelp


[Yahoo-eng-team] [Bug 1828367] [NEW] Ironic notifier - Notify Ironic on port status changes

2019-05-09 Thread Harald Jensås
Public bug reported:

More details in: https://storyboard.openstack.org/#!/story/1304673

Similar to how Nova can be notified (neutron/notifiers/nova.py) Ironic
should also be notified on relevant port status changes.

** Affects: neutron
 Importance: Undecided
 Status: New

-- 
You received this bug notification because you are a member of Yahoo!
Engineering Team, which is subscribed to neutron.
https://bugs.launchpad.net/bugs/1828367

Title:
  Ironic notifier - Notify Ironic on port status changes

Status in neutron:
  New

Bug description:
  More details in: https://storyboard.openstack.org/#!/story/1304673

  Similar to how Nova can be notified (neutron/notifiers/nova.py) Ironic
  should also be notified on relevant port status changes.

To manage notifications about this bug go to:
https://bugs.launchpad.net/neutron/+bug/1828367/+subscriptions

-- 
Mailing list: https://launchpad.net/~yahoo-eng-team
Post to : yahoo-eng-team@lists.launchpad.net
Unsubscribe : https://launchpad.net/~yahoo-eng-team
More help   : https://help.launchpad.net/ListHelp


[Yahoo-eng-team] [Bug 1823633] [NEW] [RFE] L3 - netfilter Contrack Helper Support

2019-04-08 Thread Harald Jensås
Public bug reported:

OS distributions started to disable the nf_conntrack_helper
functionality by default. (Ubuntu Bionic) Without the
nf_conntrack_helper traffic such as tftp and other protocols that
require a nf_conntrack module will not work. (This became apparent with
Openstack Ironic which uses tftp transfer boot images during Pre Boot
Execution (PXE) stopped working.)

Desactivate the automatic conntrack helper assignment i better securitu 
practice, ref:
https://github.com/regit/secure-conntrack-helpers/blob/master/secure-conntrack-helpers.rst


This RFE is for adding support in Neutron to configure protocol specific CT 
target rules. This was discussed in meeting[1] 2019-03-20 with consensus on 
adding an L3 extension.


[1] 
http://eavesdrop.openstack.org/irclogs/%23openstack-meeting/%23openstack-meeting.2019-03-20.log.html#t2019-03-20T14:47:08

** Affects: neutron
 Importance: Undecided
 Status: New


** Tags: rfe

-- 
You received this bug notification because you are a member of Yahoo!
Engineering Team, which is subscribed to neutron.
https://bugs.launchpad.net/bugs/1823633

Title:
  [RFE] L3 - netfilter Contrack Helper Support

Status in neutron:
  New

Bug description:
  OS distributions started to disable the nf_conntrack_helper
  functionality by default. (Ubuntu Bionic) Without the
  nf_conntrack_helper traffic such as tftp and other protocols that
  require a nf_conntrack module will not work. (This became apparent
  with Openstack Ironic which uses tftp transfer boot images during Pre
  Boot Execution (PXE) stopped working.)

  Desactivate the automatic conntrack helper assignment i better securitu 
practice, ref:
  
https://github.com/regit/secure-conntrack-helpers/blob/master/secure-conntrack-helpers.rst

  
  This RFE is for adding support in Neutron to configure protocol specific CT 
target rules. This was discussed in meeting[1] 2019-03-20 with consensus on 
adding an L3 extension.

  
  [1] 
http://eavesdrop.openstack.org/irclogs/%23openstack-meeting/%23openstack-meeting.2019-03-20.log.html#t2019-03-20T14:47:08

To manage notifications about this bug go to:
https://bugs.launchpad.net/neutron/+bug/1823633/+subscriptions

-- 
Mailing list: https://launchpad.net/~yahoo-eng-team
Post to : yahoo-eng-team@lists.launchpad.net
Unsubscribe : https://launchpad.net/~yahoo-eng-team
More help   : https://help.launchpad.net/ListHelp


[Yahoo-eng-team] [Bug 1822100] [NEW] Networ Update if current provider net attribure key/value pair in request

2019-03-28 Thread Harald Jensås
Public bug reported:

Network initially created with:

{'network': {'provider:physical_network': 'external',
 'provider:network_type': 'flat'}

Network is then updated with:
{'network': {'provider:physical_network': 'external',
 'provider:network_type': 'flat',
 'mtu': 9000}


The net_data is checked for provider attribute's being updated[1], this raises 
the exception despite the actual values of provider net attributes did not 
change.


[1] 
https://github.com/openstack/neutron/blob/af130e79cbe5d12b7c9f9f4dcbcdc8d972bfcfd4/neutron/plugins/ml2/plugin.py#L988

** Affects: neutron
 Importance: Undecided
 Status: New

-- 
You received this bug notification because you are a member of Yahoo!
Engineering Team, which is subscribed to neutron.
https://bugs.launchpad.net/bugs/1822100

Title:
  Networ Update if current provider net attribure key/value pair in
  request

Status in neutron:
  New

Bug description:
  Network initially created with:

  {'network': {'provider:physical_network': 'external',
   'provider:network_type': 'flat'}

  Network is then updated with:
  {'network': {'provider:physical_network': 'external',
   'provider:network_type': 'flat',
   'mtu': 9000}

  
  The net_data is checked for provider attribute's being updated[1], this 
raises the exception despite the actual values of provider net attributes did 
not change.

  
  [1] 
https://github.com/openstack/neutron/blob/af130e79cbe5d12b7c9f9f4dcbcdc8d972bfcfd4/neutron/plugins/ml2/plugin.py#L988

To manage notifications about this bug go to:
https://bugs.launchpad.net/neutron/+bug/1822100/+subscriptions

-- 
Mailing list: https://launchpad.net/~yahoo-eng-team
Post to : yahoo-eng-team@lists.launchpad.net
Unsubscribe : https://launchpad.net/~yahoo-eng-team
More help   : https://help.launchpad.net/ListHelp


[Yahoo-eng-team] [Bug 1811905] [NEW] Deffered IP allocation, port update with binding_host_id + set new mac address fails

2019-01-15 Thread Harald Jensås
Public bug reported:

On a routed provider network IP allocation will be deffered if
insufficent binding information is available.

When a port is updated with binding_host_id only this works as expected:


$ openstack port create --network ctlplane testport -f yaml
admin_state_up: UP
allowed_address_pairs: ''
binding_host_id: ''
binding_profile: ''
binding_vif_details: ''
binding_vif_type: unbound
binding_vnic_type: normal
created_at: '2019-01-16T00:13:19Z'
data_plane_status: null
description: ''
device_id: ''
device_owner: ''
dns_assignment: null
dns_domain: null
dns_name: null
extra_dhcp_opts: ''
fixed_ips: ''
id: 9e05e8fe-c11a-4682-ba69-2a402094758d
mac_address: fa:16:3e:31:de:01
name: testport
network_id: 1f731773-6dcf-45ce-aa11-aaf205f2faf6
port_security_enabled: true
project_id: 9d8aea1921f04207b35a9e1fc4923ae1
qos_policy_id: null
revision_number: 1
security_group_ids: 2354cbbe-5726-42ef-8b45-e642cb9bf2ea
status: DOWN
tags: ''
trunk_details: null
updated_at: '2019-01-16T00:13:19Z'

$ openstack port set --host 05a94a66-27ca-4642-ad62-8f53827055c7
testport

$ openstack port show testport -f yaml
admin_state_up: UP
allowed_address_pairs: ''
binding_host_id: 05a94a66-27ca-4642-ad62-8f53827055c7
binding_profile: ''
binding_vif_details: ''
binding_vif_type: binding_failed
binding_vnic_type: normal
created_at: '2019-01-16T00:13:19Z'
data_plane_status: null
description: ''
device_id: ''
device_owner: ''
dns_assignment: null
dns_domain: null
dns_name: null
extra_dhcp_opts: ''
fixed_ips: ip_address='172.20.0.11', 
subnet_id='61745187-973c-4515-a025-c719776bbf44'
id: 9e05e8fe-c11a-4682-ba69-2a402094758d
mac_address: fa:16:3e:31:de:01
name: testport
network_id: 1f731773-6dcf-45ce-aa11-aaf205f2faf6
port_security_enabled: true
project_id: 9d8aea1921f04207b35a9e1fc4923ae1
qos_policy_id: null
revision_number: 3
security_group_ids: 2354cbbe-5726-42ef-8b45-e642cb9bf2ea
status: DOWN
tags: ''
trunk_details: null
updated_at: '2019-01-16T00:13:58Z'


2019-01-16 01:13:58.064 38 DEBUG neutron.api.v2.base 
[req-3baa886c-f409-4a2f-82b4-a46055e6653b 944d2af27c0e4e41bc8203acf9b4e6fb 
9d8aea1921f04207b35a9e1fc4923ae1 - default default] Request body: {u'port': 
{u'binding:host_id':
 u'05a94a66-27ca-4642-ad62-8f53827055c7'}} prepare_request_body 
/usr/lib/python2.7/site-packages/neutron/api/v2/base.py:715

2019-01-16 01:13:58.310 38 DEBUG neutron.db.db_base_plugin_common 
[req-3baa886c-f409-4a2f-82b4-a46055e6653b 944d2af27c0e4e41bc8203acf9b4e6fb 
9d8aea1921f04207b35a9e1fc4923ae1 - default default] Allocated IP 172.20.0.11 
(1f731
773-6dcf-45ce-aa11-aaf205f2faf6/61745187-973c-4515-a025-c719776bbf44/9e05e8fe-c11a-4682-ba69-2a402094758d)
 _store_ip_allocation 
/usr/lib/python2.7/site-packages/neutron/db/db_base_plugin_common.py:124


When a port update request contain both binding_host_id and a new mac address,
IP allocation does not happen:
--

$ openstack port create --network ctlplane testport -f yaml
admin_state_up: UP
allowed_address_pairs: ''
binding_host_id: ''
binding_profile: ''
binding_vif_details: ''
binding_vif_type: unbound
binding_vnic_type: normal
created_at: '2019-01-16T00:15:35Z'
data_plane_status: null
description: ''
device_id: ''
device_owner: ''
dns_assignment: null
dns_domain: null
dns_name: null
extra_dhcp_opts: ''
fixed_ips: ''
id: 3c6ecca2-3f77-4528-86c2-66971c89ef2e
mac_address: fa:16:3e:aa:f4:46
name: testport
network_id: 1f731773-6dcf-45ce-aa11-aaf205f2faf6
port_security_enabled: true
project_id: 9d8aea1921f04207b35a9e1fc4923ae1
qos_policy_id: null
revision_number: 1
security_group_ids: 2354cbbe-5726-42ef-8b45-e642cb9bf2ea
status: DOWN
tags: ''
trunk_details: null
updated_at: '2019-01-16T00:15:35Z'

$ openstack port set --host 05a94a66-27ca-4642-ad62-8f53827055c7 --mac-
address 52:54:00:76:4f:56 testport

$ openstack port show testport -f yaml
admin_state_up: UP
allowed_address_pairs: ''
binding_host_id: 05a94a66-27ca-4642-ad62-8f53827055c7
binding_profile: ''
binding_vif_details: ''
binding_vif_type: binding_failed
binding_vnic_type: normal
created_at: '2019-01-16T00:15:35Z'
data_plane_status: null
description: ''
device_id: ''
device_owner: ''
dns_assignment: null
dns_domain: null
dns_name: null
extra_dhcp_opts: ''
fixed_ips: ''
id: 3c6ecca2-3f77-4528-86c2-66971c89ef2e
mac_address: 52:54:00:76:4f:56
name: testport
network_id: 1f731773-6dcf-45ce-aa11-aaf205f2faf6
port_security_enabled: true
project_id: 9d8aea1921f04207b35a9e1fc4923ae1
qos_policy_id: null
revision_number: 3
security_group_ids: 2354cbbe-5726-42ef-8b45-e642cb9bf2ea
status: DOWN
tags: ''
trunk_details: null
updated_at: '2019-01-16T00:15:46Z'


2019-01-16 01:15:45.684 39 DEBUG neutron.api.v2.base 
[req-8373dd06-d3fe-4fdc-841e-3850ec6eb374 944d2af27c0e4e41bc8203acf9b4e6fb 
9d8aea1921f04207b35a9e1fc4923ae1 - default default] Request body: {u'port': 
{u'binding:host_id':
 u'05a94a66-27ca-4642-ad62-8f53827055c7', u'mac_address': 
u'52:54:00:76:4f:5

[Yahoo-eng-team] [Bug 1793391] [NEW] Subnet update with the subnet's current segment_id fail with: NoUpdateSubnetWhenMultipleSegmentsOnNetwork

2018-09-19 Thread Harald Jensås
Public bug reported:

When the update request contains segment_id and the provided segment_id
is equal to the id currently on the subnet, the update request will fail
if any of the checks in _validate_segment fail with
NoUpdateSubnetWhenMultipleSegmentsOnNetwork or
SubnetsNotAllAssociatedWithSegments.


[stack@heat-devstack ~]$ openstack network segment list --network testnet
+--+--+--+--+-+
| ID   | Name | Network 
 | Network Type | Segment |
+--+--+--+--+-+
| 14ec1077-7836-45ec-9ce1-1bc45c670321 | net1 | 
51394a06-75ce-401b-b46b-ebb2b34688b5 | flat | None|
| 884c98bb-22eb-4006-872b-966344d5bf8f | net2 | 
51394a06-75ce-401b-b46b-ebb2b34688b5 | flat | None|
+--+--+--+--+-+
[stack@heat-devstack ~]$ openstack subnet list --network testnet
+--+-+--+-+
| ID   | Name| Network  
| Subnet  |
+--+-+--+-+
| f21edda9-519e-4003-94f1-855c44a52cf8 | subnet1 | 
51394a06-75ce-401b-b46b-ebb2b34688b5 | 10.100.100.0/24 |
+--+-+--+-+
[stack@heat-devstack ~]$ openstack subnet show subnet1
+---+--+
| Field | Value|
+---+--+
| allocation_pools  | 10.100.100.2-10.100.100.254  |
| cidr  | 10.100.100.0/24  |
| created_at| 2018-09-19T20:37:13Z |
| description   |  |
| dns_nameservers   |  |
| enable_dhcp   | True |
| gateway_ip| 10.100.100.1 |
| host_routes   |  |
| id| f21edda9-519e-4003-94f1-855c44a52cf8 |
| ip_version| 4|
| ipv6_address_mode | None |
| ipv6_ra_mode  | None |
| name  | subnet1  |
| network_id| 51394a06-75ce-401b-b46b-ebb2b34688b5 |
| project_id| fee5807fd59146bc973f89ce2a7c70bd |
| revision_number   | 2|
| segment_id| 14ec1077-7836-45ec-9ce1-1bc45c670321 |
| service_types |  |
| subnetpool_id | None |
| tags  |  |
| updated_at| 2018-09-19T20:40:54Z |
+---+--+


Actual result:
--

[stack@heat-devstack ~]$ curl -g -i  -X PUT 
http://192.168.122.222:9696/v2.0/subnets/f21edda9-519e-4003-94f1-855c44a52cf8 
-H "Content-Type: application/json" -H "X-Auth-Token: $(openstack token issue 
-f value -c id)" -d '{"subnet": {"segment_id": 
"14ec1077-7836-45ec-9ce1-1bc45c670321"}}'
HTTP/1.1 400 Bad Request
Content-Type: application/json
Content-Length: 277
X-Openstack-Request-Id: req-999a512f-f49d-407a-bc8c-a7b9f3cb38a7
Date: Wed, 19 Sep 2018 20:43:27 GMT

{"NeutronError": {"message": "The network '51394a06-75ce-401b-b46b-
ebb2b34688b5' has multiple segments, it is only possible to associate an
existing subnet with a segment on networks with a single segment.",
"type": "NoUpdateSubnetWhenMultipleSegmentsOnNetwork", "detail": ""}}


Expected result:


[stack@heat-devstack ~]$ curl -g -i  -X PUT 
http://192.168.122.222:9696/v2.0/subnets/f21edda9-519e-4003-94f1-855c44a52cf8 
-H "Content-Type: application/json" -H "X-Auth-Token: $(openstack token issue 
-f value -c id)" -d '{"subnet": {"segment_id": 
"14ec1077-7836-45ec-9ce1-1bc45c670321"}}'
HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 670
X-Openstack-Request-Id: req-66f4d422-5a9d-4276-9eae-81142cff4aba
Date: Wed, 19 Sep 2018 21:07:08 GMT

{"subnet":{"updated_at":"2018-09-19T21:07:08Z","ipv6_ra_mode":null,"allocation_pools":[{"start":"10.100.100.2","end":"10.100.100.254"}],"host_routes":[],"revision_number":4,"ipv6_address_mode":null,"id":"f21edda9-519e-4003-94f1-855c44a52cf8","dns_nameservers":[],"gateway_ip":"10.100.100.1","project_id":"fee5807fd59146bc973f89ce2a7c70bd","description":"","tags":[],"cidr":"10.100.100.0/24","subnetpool_id":null,"service_types":[],"name":"subnet1","enable_dhcp":true,"segment_

[Yahoo-eng-team] [Bug 1694120] Re: routed-networks - segments subnet dhcp port bind to wrong segment

2018-05-21 Thread Harald Jensås
** Changed in: neutron
   Status: New => Invalid

-- 
You received this bug notification because you are a member of Yahoo!
Engineering Team, which is subscribed to neutron.
https://bugs.launchpad.net/bugs/1694120

Title:
  routed-networks - segments subnet dhcp port bind to wrong segment

Status in neutron:
  Invalid

Bug description:
  $  openstack network list -f json
  []
  $ openstack network create ctlplane

  Network created, and we have 1 default segment:

  $ openstack network segment list --network ctlplane -f json
  [
{
  "Network": "89e4aa6c-06f2-4348-9576-bec17c7526d6", 
  "Network Type": "local", 
  "Segment": null, 
  "ID": "46950790-717b-4d31-883a-a8d9d3df2e92", 
  "Name": null
}
  ]

  $  openstack network segment create subnet0 --physical-network
  ctlplane --network ctlplane --network-type flat

  $ openstack subnet create --subnet-range 172.20.0.0/26 --dhcp
  --gateway 172.20.0.62 --ip-version 4 --network ctlplane --network-
  segment subnet0 --allocation-pool start=172.20.0.10,end=172.20.0.19
  subnet0

  
  (undercloud) [stack@ocataleafs ~]$ sudo ip netns list
  qdhcp-89e4aa6c-06f2-4348-9576-bec17c7526d6
  (undercloud) [stack@ocataleafs ~]$ sudo ip netns exec 
qdhcp-89e4aa6c-06f2-4348-9576-bec17c7526d6 ip addr show | grep tap
  13: tap0170296c-f2:  mtu 1500 qdisc noqueue 
state UNKNOWN qlen 1000
  inet 172.20.0.10/26 brd 172.20.0.63 scope global tap0170296c-f2
  (undercloud) [stack@ocataleafs ~]$ sudo ip netns exec 
qdhcp-89e4aa6c-06f2-4348-9576-bec17c7526d6 ping 172.20.0.62
  PING 172.20.0.62 (172.20.0.62) 56(84) bytes of data.
  From 172.20.0.10 icmp_seq=1 Destination Host Unreachable
  From 172.20.0.10 icmp_seq=2 Destination Host Unreachable

  $ openstack network segment list -f json
  [
{
  "Network": "89e4aa6c-06f2-4348-9576-bec17c7526d6", 
  "Network Type": "local", 
  "Segment": null, 
  "ID": "46950790-717b-4d31-883a-a8d9d3df2e92", 
  "Name": null
}, 
{
  "Network": "89e4aa6c-06f2-4348-9576-bec17c7526d6", 
  "Network Type": "flat", 
  "Segment": null, 
  "ID": "32a308e9-6f2e-4252-a273-95c7bfbcc94e", 
  "Name": "subnet0"
}
  ]
  (undercloud) [stack@ocataleafs ~]$ openstack network segment delete 
46950790-717b-4d31-883a-a8d9d3df2e92
  Failed to delete network segment with ID 
'46950790-717b-4d31-883a-a8d9d3df2e92': HttpException: Conflict (HTTP 409) 
(Request-ID: req-8b1a5179-c987-47ba-b35a-68c9afdca4bc), Segment 
'46950790-717b-4d31-883a-a8d9d3df2e92' cannot be deleted: The segment is still 
bound with port(s) 0170296c-f2e5-4482-843a-3ebb0bf11381.
  1 of 1 network segments failed to delete.


  The dhcp-namespace port did not bind to the segment associated with
  subnet0, it bound to the default segment that is automatically created
  when creating a network.

  If I change the workflow to first delete the default segment, and then
  create segment: subnet0 + subnet: subnet0 the dhcp namespace is wired
  correctly.

To manage notifications about this bug go to:
https://bugs.launchpad.net/neutron/+bug/1694120/+subscriptions

-- 
Mailing list: https://launchpad.net/~yahoo-eng-team
Post to : yahoo-eng-team@lists.launchpad.net
Unsubscribe : https://launchpad.net/~yahoo-eng-team
More help   : https://help.launchpad.net/ListHelp


[Yahoo-eng-team] [Bug 1768690] [NEW] [RFE] Regenerate mac address of a port

2018-05-02 Thread Harald Jensås
Public bug reported:

Openstack Ironic need to set the mac address of neutron port to the
actual mac address of the hardware for DHCP/PXE deployment to work. When
using pre-created neutron ports there is an issue where previously used
ports cause a conflict when a new instance is scheduled onto the same
baremetal hosts.

Example:
 openstack port create --network private test-port1
 openstack port create --network private test-port2

  openstack server create \
--image cirros-0.3.5-x86_64-disk \
--port test-port1\
--flavor baremetal \
test-server

  openstack server delete test-server

  openstack server create \
--image cirros-0.3.5-x86_64-disk \
--port test-port2 \
--flavor baremetal \
test-server

The second server create command fails with:
fault:
  code: 500
  created: '2018-04-29T12:21:37Z'
  < .. snip .. >
  message: 'Build of instance 5982f29a-3d48-4eb8-88ca-cf794c8f31dd aborted: 
Failure
prepping block device.'

An in conductor log:
Apr 29 14:21:35 ironic-devstack.lab.example.com ironic-conductor[445]: ERROR 
ironic.common.neutron MacAddressInUseClient: Unable to complete operation for 
network 52497681-18f4-47de-b48e-1265799caea9. The mac address 52:54:00:53:b5:b9 
is in use.


It should be possible to "return" the port by resetting a mac in the base MAC 
address Neutron uses for VIFs. e.g a port update request that triggers 
regeneration of the mac address. Ironic would add this to it's interface detach 
method, to ensure no previously used ports cause issues when deploying new 
baremetal instances.

** Affects: neutron
 Importance: Undecided
 Status: New


** Tags: rfe

-- 
You received this bug notification because you are a member of Yahoo!
Engineering Team, which is subscribed to neutron.
https://bugs.launchpad.net/bugs/1768690

Title:
  [RFE] Regenerate mac address of a port

Status in neutron:
  New

Bug description:
  Openstack Ironic need to set the mac address of neutron port to the
  actual mac address of the hardware for DHCP/PXE deployment to work.
  When using pre-created neutron ports there is an issue where
  previously used ports cause a conflict when a new instance is
  scheduled onto the same baremetal hosts.

  Example:
   openstack port create --network private test-port1
   openstack port create --network private test-port2

openstack server create \
  --image cirros-0.3.5-x86_64-disk \
  --port test-port1\
  --flavor baremetal \
  test-server

openstack server delete test-server

openstack server create \
  --image cirros-0.3.5-x86_64-disk \
  --port test-port2 \
  --flavor baremetal \
  test-server

  The second server create command fails with:
  fault:
code: 500
created: '2018-04-29T12:21:37Z'
< .. snip .. >
message: 'Build of instance 5982f29a-3d48-4eb8-88ca-cf794c8f31dd aborted: 
Failure
  prepping block device.'

  An in conductor log:
  Apr 29 14:21:35 ironic-devstack.lab.example.com ironic-conductor[445]: ERROR 
ironic.common.neutron MacAddressInUseClient: Unable to complete operation for 
network 52497681-18f4-47de-b48e-1265799caea9. The mac address 52:54:00:53:b5:b9 
is in use.

  
  It should be possible to "return" the port by resetting a mac in the base MAC 
address Neutron uses for VIFs. e.g a port update request that triggers 
regeneration of the mac address. Ironic would add this to it's interface detach 
method, to ensure no previously used ports cause issues when deploying new 
baremetal instances.

To manage notifications about this bug go to:
https://bugs.launchpad.net/neutron/+bug/1768690/+subscriptions

-- 
Mailing list: https://launchpad.net/~yahoo-eng-team
Post to : yahoo-eng-team@lists.launchpad.net
Unsubscribe : https://launchpad.net/~yahoo-eng-team
More help   : https://help.launchpad.net/ListHelp


[Yahoo-eng-team] [Bug 1766380] [NEW] [RFE] Create host-routes for routed networks (segments)

2018-04-23 Thread Harald Jensås
Public bug reported:

When using routed networks[1] on an instance connected to multiple
networks the traffic from a segmant_a to segment_b within a L3 network
might be routed via a different network if the default router/gateway is
not on the interface connecting to the routed networks.

It would be good to (at-least have an option to) automatically configure
host_routes on the subnets in a routed L3 network. In such a way that
traffic with a destination on a different segment within the same L3
network is routed via the instance interface connecting to the L3
network.

Example:
 instance_a:
   - port_a: some_net, segmentA, subnet0  <-- default gateway
   - port_b: net1, segmentA, subnet0

 instance_b:
   - port_a: other_net, segmentA, subnet0  <-- default gateway
   - port_a: net1, segmentB, subnet0

Unless a host-route is in place, traffic from instance_a to instance_b
will use some/other-net, not net1 which both is connected to.

This RFE is to have the host_routes property on the subnets withing net1
populated, so that clients are aware of neighbour L3 networks.

[1] https://docs.openstack.org/neutron/latest/admin/config-routed-
networks.html

** Affects: neutron
 Importance: Undecided
 Status: New


** Tags: rfe

** Description changed:

  When using routed networks[1] on an instance connected to multiple
  networks the traffic from a segmant_a to segment_b within a L3 network
  might be routed via a different network if the default router/gateway is
  not on the interface connecting to the routed networks.
  
  It would be good to (at-least have an option to) automatically configure
  host_routes on the subnets in a routed L3 network. In such a way that
  traffic with a destination on a different segment within the same L3
  network is routed via the instance interface connecting to the L3
  network.
  
  Example:
-  instance_a:
-- port_a: some_net, segmentA, subnet0  <-- The default gateway via this 
interface.
-- port_b: net1, segmentA, subnet0
+  instance_a:
+    - port_a: some_net, segmentA, subnet0  <-- default gateway
+    - port_b: net1, segmentA, subnet0
  
-  instance_b:
-- port_a: other_net, segmentA, subnet0  <-- The default gateway via this 
interface.
-- port_a: net1, segmentB, subnet0
+  instance_b:
+    - port_a: other_net, segmentA, subnet0  <-- default gateway
+    - port_a: net1, segmentB, subnet0
  
  Unless a host-route is in place to use a routed on net1 is in place,
  traffic from instance_a to instance_b will use some/other-net, not net1
  which both is connected to.
  
  This RFE is to have the host_routes property on the subnets withing net1
  populated, so that clients are aware of neighbour L3 networks.
  
  [1] https://docs.openstack.org/neutron/latest/admin/config-routed-
  networks.html

** Description changed:

  When using routed networks[1] on an instance connected to multiple
  networks the traffic from a segmant_a to segment_b within a L3 network
  might be routed via a different network if the default router/gateway is
  not on the interface connecting to the routed networks.
  
  It would be good to (at-least have an option to) automatically configure
  host_routes on the subnets in a routed L3 network. In such a way that
  traffic with a destination on a different segment within the same L3
  network is routed via the instance interface connecting to the L3
  network.
  
  Example:
   instance_a:
     - port_a: some_net, segmentA, subnet0  <-- default gateway
     - port_b: net1, segmentA, subnet0
  
   instance_b:
     - port_a: other_net, segmentA, subnet0  <-- default gateway
     - port_a: net1, segmentB, subnet0
  
- Unless a host-route is in place to use a routed on net1 is in place,
- traffic from instance_a to instance_b will use some/other-net, not net1
- which both is connected to.
+ Unless a host-route is in place, traffic from instance_a to instance_b
+ will use some/other-net, not net1 which both is connected to.
  
  This RFE is to have the host_routes property on the subnets withing net1
  populated, so that clients are aware of neighbour L3 networks.
  
  [1] https://docs.openstack.org/neutron/latest/admin/config-routed-
  networks.html

-- 
You received this bug notification because you are a member of Yahoo!
Engineering Team, which is subscribed to neutron.
https://bugs.launchpad.net/bugs/1766380

Title:
  [RFE] Create host-routes for routed networks (segments)

Status in neutron:
  New

Bug description:
  When using routed networks[1] on an instance connected to multiple
  networks the traffic from a segmant_a to segment_b within a L3 network
  might be routed via a different network if the default router/gateway
  is not on the interface connecting to the routed networks.

  It would be good to (at-least have an option to) automatically
  configure host_routes on the subnets in a routed L3 network. In such a
  way that traffic with a destination on a different segment within the
  same L3 network is routed via the 

[Yahoo-eng-team] [Bug 1743579] [NEW] Concurrent report_state from multiple agents: segment_host_mapping fails - StaleDataError

2018-01-16 Thread Harald Jensås
Public bug reported:

When multiple host agents rapidly report_state for the first time we get
StaleDataError and _update_segment_host_mapping_for_agent does not
complete for all hosts.

Attached is a file with logs as well as reproducer script and
instruction on how to set up devstack environment similar to the one I
am using.

To Reproduce:
-

Run script with the delay, time.sleep(10), commented.
 Results:
  * 2x StaleDataError 
  * Only 1 attempt to add host to placement/host-aggregate.

MariaDB [neutron]> MariaDB [neutron]> SELECT * FROM segmenthostmappings;
+--+-+
| segment_id   | host|
+--+-+
| a974ae4c-1389-4e41-9ab9-820165c26acd | host2   |
| a974ae4c-1389-4e41-9ab9-820165c26acd | routed-devstack.lab.example.com |
| bc626d3d-5503-4875-9db8-e1bcfad35979 | host2   |
| bc626d3d-5503-4875-9db8-e1bcfad35979 | routed-devstack.lab.example.com |
| ec7717dd-8533-464f-a3c8-4ecc7dc08d10 | host2   |
| ec7717dd-8533-464f-a3c8-4ecc7dc08d10 | routed-devstack.lab.example.com |
+--+-+


Conclutions: 
  * 2x StaleDataError
  * 1x successfull _update_segment_host_mapping after_create.

*** We should see 3x attempts to add to placement/host-aggregate, one
for each host agent.  


Running the reproducer script with the delay uncommented (No issue):


Run script with the delay, time.sleep(10), enabled.
Results:
  * No StaleDataError
  * 3 attempts to add the host to placemenb/host-aggregate.

MariaDB [neutron]> SELECT * FROM segmenthostmappings;
+--+-+
| segment_id   | host|
+--+-+
| 11b9258f-8712-43b7-8f39-3eab627a8c7f | host0   |
| 11b9258f-8712-43b7-8f39-3eab627a8c7f | host1   |
| 11b9258f-8712-43b7-8f39-3eab627a8c7f | host2   |
| 11b9258f-8712-43b7-8f39-3eab627a8c7f | routed-devstack.lab.example.com |
| 89f96bee-424c-4ee2-8639-2ca8e07a70e6 | host0   |
| 89f96bee-424c-4ee2-8639-2ca8e07a70e6 | host1   |
| 89f96bee-424c-4ee2-8639-2ca8e07a70e6 | host2   |
| 89f96bee-424c-4ee2-8639-2ca8e07a70e6 | routed-devstack.lab.example.com |
| a7a7d2f4-c809-4ebb-916f-930c97fbec47 | host0   |
| a7a7d2f4-c809-4ebb-916f-930c97fbec47 | host1   |
| a7a7d2f4-c809-4ebb-916f-930c97fbec47 | host2   |
| a7a7d2f4-c809-4ebb-916f-930c97fbec47 | routed-devstack.lab.example.com |
+--+-+


Conclution:
  * 3x successfull _update_segment_host_mapping after_create.


** NOTE: **
The RESP BODY: {"itemNotFound": {"message": "Compute host host1 could not be 
found.", "code": 404}} errors in the logs is expected, the fake host is not in 
Nova, so this is expeced.

** Affects: neutron
 Importance: Undecided
 Status: New

** Attachment added: "Logs, a reproducer script and devstack instructions."
   
https://bugs.launchpad.net/bugs/1743579/+attachment/5037862/+files/reproducer_and_logs.txt

-- 
You received this bug notification because you are a member of Yahoo!
Engineering Team, which is subscribed to neutron.
https://bugs.launchpad.net/bugs/1743579

Title:
  Concurrent report_state from multiple agents:  segment_host_mapping
  fails - StaleDataError

Status in neutron:
  New

Bug description:
  When multiple host agents rapidly report_state for the first time we
  get StaleDataError and _update_segment_host_mapping_for_agent does not
  complete for all hosts.

  Attached is a file with logs as well as reproducer script and
  instruction on how to set up devstack environment similar to the one I
  am using.

  To Reproduce:
  -

  Run script with the delay, time.sleep(10), commented.
   Results:
* 2x StaleDataError 
* Only 1 attempt to add host to placement/host-aggregate.

  MariaDB [neutron]> MariaDB [neutron]> SELECT * FROM segmenthostmappings;
  +--+-+
  | segment_id   | host|
  +--+-+
  | a974ae4c-1389-4e41-9ab9-820165c26acd | host2   |
  | a974ae4c-1389-4e41-9ab9-820165c26acd | routed-devstack.lab.example.com |
  | bc626d3d-5503-4875-9db8-e1bcfad35979 | host2   |
  | bc626d3d-5503-4875-9db8-e1bcfad35979 | routed-devstac

[Yahoo-eng-team] [Bug 1736220] [NEW] TypeError: __init__() got an unexpected keyword argument 'topics'

2017-12-04 Thread Harald Jensås
Public bug reported:

FakeNotifier class 'topic' argument need to be updated to 'topics'. The
Notifyer class in oslo.messaging was changed in Change-Id:
Id89957411aa219cff92fafec2f448c81cb57b3ca

** Affects: neutron
 Importance: Undecided
 Status: New

-- 
You received this bug notification because you are a member of Yahoo!
Engineering Team, which is subscribed to neutron.
https://bugs.launchpad.net/bugs/1736220

Title:
  TypeError: __init__() got an unexpected keyword argument 'topics'

Status in neutron:
  New

Bug description:
  FakeNotifier class 'topic' argument need to be updated to 'topics'.
  The Notifyer class in oslo.messaging was changed in Change-Id:
  Id89957411aa219cff92fafec2f448c81cb57b3ca

To manage notifications about this bug go to:
https://bugs.launchpad.net/neutron/+bug/1736220/+subscriptions

-- 
Mailing list: https://launchpad.net/~yahoo-eng-team
Post to : yahoo-eng-team@lists.launchpad.net
Unsubscribe : https://launchpad.net/~yahoo-eng-team
More help   : https://help.launchpad.net/ListHelp


[Yahoo-eng-team] [Bug 1692567] Re: can't create neutron port fixed_ip if subnet associated with segment

2017-07-05 Thread Harald Jensås
Hi Rico Lin,

The following change in Neutron was released:
https://review.openstack.org/#/c/470788/

With this we can close both the Heat and Neutron part of this bug.

--
Harald

** Changed in: neutron
   Status: New => Fix Released

** Changed in: heat
   Status: Incomplete => Fix Released

-- 
You received this bug notification because you are a member of Yahoo!
Engineering Team, which is subscribed to neutron.
https://bugs.launchpad.net/bugs/1692567

Title:
  can't create neutron port fixed_ip if subnet associated with segment

Status in heat:
  Fix Released
Status in neutron:
  Fix Released

Bug description:
  There doesn't seem to be a way to create a fixed_ip for an
  OS::Neutron::Port if the subnet is associated with a Neutron segment.

  For example, using this:
  resources:
instance_port:
  type: OS::Neutron::Port
  properties:
network: ctlplane
fixed_ips: [{"subnet": ctlplane-subnet0, "ip_address": 10.8.146.8}]
   
my_ironic_instance:
  type: OS::Nova::Server
  properties:
key_name: default
image: overcloud-full
flavor: baremetal
networks:
  - network: ctlplane
port: {get_resource: instance_port}

  If the subnet is NOT associated with a segment, I am able to create a
  stack with a Neutron port with 10.8.146.8 as expected.

  However, in this case the subnet is associated with a neutron segment:
  [stack@host01 ~]$ neutron subnet-show ctlplane-subnet0
  
+---++
  | Field | Value   
   |
  
+---++
  | allocation_pools  | {"start": "10.8.146.5", "end": "10.8.146.20"}   
   |
  | cidr  | 10.8.146.0/24   
   |
  | created_at| 2017-05-19T21:57:53Z
   |
  | description   | 
   |
  | dns_nameservers   | 
   |
  | enable_dhcp   | True
   |
  | gateway_ip| 10.8.146.1  
   |
  | host_routes   | {"destination": "169.254.169.254/32", "nexthop": 
"10.8.146.1"} |
  | id| 2510cb92-e3f7-4ef3-98a8-ba409c33406b
   |
  | ip_version| 4   
   |
  | ipv6_address_mode | 
   |
  | ipv6_ra_mode  | 
   |
  | name  | ctlplane-subnet0
   |
  | network_id| 5f93540c-b00e-42c7-b1a1-0560906d9a8d
   |
  | project_id| 08b43a05b88c4d4089355b3aba9dd8fb
   |
  | revision_number   | 2   
   |
  | segment_id| d5b2dc5d-ee11-4057-9481-fd28fab14b31
   |
  | service_types | 
   |
  | subnetpool_id | 
   |
  | tags  | 
   |
  | tenant_id | 08b43a05b88c4d4089355b3aba9dd8fb
   |
  | updated_at| 2017-05-19T21:57:53Z
   |
  
+---++

  [stack@host01 ~]$ openstack network segment show 
d5b2dc5d-ee11-4057-9481-fd28fab14b31
  +--+--+
  | Field| Value|
  +--+--+
  | description  | None |
  | id   | d5b2dc5d-ee11-4057-9481-fd28fab14b31 |
  | name | subnet0  |
  | network_id   | 5f93540c-b00e-42c7-b1a1-0560906d9a8d |
  | network_type | flat |
  | physical_network | ctlplane |
  | segmentation_id  | None |
  +--+--+

  The stack is created successfuly, however the neutron port has a fixed_ip 
from the allocation_pool (10.8.146.15, see below) not the defined fixed_ip in 
the template.
  [stack@host01 ~]$ heat stack-list
  
+--++-+--+--+
  | id   | stack_name | stack_status| 
creat

[Yahoo-eng-team] [Bug 1699754] [NEW] [RFE] DHCP linux agent - set in dhcp-range option to support networks via ralay agent

2017-06-22 Thread Harald Jensås
Public bug reported:

To complete the DHCP support for remote routed networks via relay agent
the dhcp agent must configure the  in the --dhcp-range
option. This was previously not requred becuase dnsmasq can determine it
from the local interface information. For remote networks we need to set
this property.

DNSMASQ(8)
"""
For directly connected networks (ie, networks on which the machine running 
dnsmasq has an interface) the netmask is  optional:  dnsmasq  will  determine 
it from the interface configuration. For networks which receive DHCP service 
via a relay agent, dnsmasq cannot determine the netmask itself, so it should be 
specified, otherwise dnsmasq  will have to guess, based on the class (A, B or 
C) of the network address. The broadcast address is always optional. It is 
always allowed to have more than one dhcp-range in a single subnet.
"""

** Affects: neutron
 Importance: Undecided
 Status: New


** Tags: l3-ipam-dhcp

-- 
You received this bug notification because you are a member of Yahoo!
Engineering Team, which is subscribed to neutron.
https://bugs.launchpad.net/bugs/1699754

Title:
  [RFE] DHCP linux agent - set  in dhcp-range option to
  support networks via ralay agent

Status in neutron:
  New

Bug description:
  To complete the DHCP support for remote routed networks via relay
  agent the dhcp agent must configure the  in the --dhcp-
  range option. This was previously not requred becuase dnsmasq can
  determine it from the local interface information. For remote networks
  we need to set this property.

  DNSMASQ(8)
  """
  For directly connected networks (ie, networks on which the machine running 
dnsmasq has an interface) the netmask is  optional:  dnsmasq  will  determine 
it from the interface configuration. For networks which receive DHCP service 
via a relay agent, dnsmasq cannot determine the netmask itself, so it should be 
specified, otherwise dnsmasq  will have to guess, based on the class (A, B or 
C) of the network address. The broadcast address is always optional. It is 
always allowed to have more than one dhcp-range in a single subnet.
  """

To manage notifications about this bug go to:
https://bugs.launchpad.net/neutron/+bug/1699754/+subscriptions

-- 
Mailing list: https://launchpad.net/~yahoo-eng-team
Post to : yahoo-eng-team@lists.launchpad.net
Unsubscribe : https://launchpad.net/~yahoo-eng-team
More help   : https://help.launchpad.net/ListHelp


[Yahoo-eng-team] [Bug 1695740] [NEW] Segments, routed-networks, IPAM only usecase regression

2017-06-04 Thread Harald Jensås
Public bug reported:

Segments, routed-networks, IPAM only usecase regression

Code[1] will defer IP allocation if host is not specified.

Issues:
 a) This breaks the use case where Neutron is used for IPAM only with
routed network.
 b) A user can no longer create a port and specify a fixed IP, then later
bind the port without loosing the fixed-ip information.

 Issue b) above is a very common pattern in Heat templates.
 It is used in Heat templates examples, ref:
   - 
https://github.com/openstack/heat-templates/blob/master/hot/servers_in_new_neutron_net.yaml#L77:L82
   - 
https://github.com/openstack/heat-templates/blob/master/hot/servers_in_existing_neutron_net.yaml#L30:L46

Current behaviour with segments is that ip-allocation is deferred for _any_ 
port create. Deferring ip allocation if the host is not known does make sense. 
Before host is known the available segments are also not known and we need to 
wait until the scheduler has picked a host and nova adds binding:host_id. 
However...
... this does not make sense if the subnet or fixed-ip is specified in the port 
create request. In this case we should not defer allocation, the user specified 
exactly what they want and it is known where to allocate the IP.

When / If this port is later bound to a host, an error will be raised if
that host does not have the correct segments. This is essentially the
same update scenario already covered in the code?[2]

When creating an instance using an existing port with and IP address,
the scheduler should take the ip-allocation data from the port provided
in the request and ensure that the instance is scheduled to a host that
is connected to the correct segment. According to nova neutron-routed-
networks spec[1] this exact use case was included.

""" Use case 2:
 User has a port that has an IP address and thus is effectively
 attached to a segment (but not bound to a host). He/She
 provides it to nova boot. Nova will ask Neutron for the segment
 to which the port is bound by getting the details of the port.
 Given that segment, the scheduler should place the instance
 on a compute host belonging to the corresponding aggregate. """

[1] 
https://github.com/openstack/neutron/blob/master/neutron/db/ipam_backend_mixin.py#L662:L700
[2] 
https://github.com/openstack/neutron/blob/master/neutron/db/ipam_backend_mixin.py#L769:L777
[3] 
https://specs.openstack.org/openstack/nova-specs/specs/newton/implemented/neutron-routed-networks.html

** Affects: neutron
 Importance: Undecided
 Status: New


** Tags: l3-ipam-dhcp

** Description changed:

  Segments, routed-networks, IPAM only usecase regression
  
  Code[1] will defer IP allocation if host is not specified.
  
- Issues:  
-  a) This breaks the use case where Neutron is used for IPAM only with routed 
network.
-  b) A user can no longer create a port and specify a fixed IP, then later 
bind the 
- port without loosing the fixed-ip information.
+ Issues:
+  a) This breaks the use case where Neutron is used for IPAM only with
+ routed network.
+  b) A user can no longer create a port and specify a fixed IP, then later
+ bind the port without loosing the fixed-ip information.
  
-  Issue b) above is a very common pattern in Heat templates. It is used in 
Heat templates examples, ref:
-  - 
https://github.com/openstack/heat-templates/blob/master/hot/servers_in_new_neutron_net.yaml#L77:L82
-  - 
https://github.com/openstack/heat-templates/blob/master/hot/servers_in_existing_neutron_net.yaml#L30:L46
+  Issue b) above is a very common pattern in Heat templates.
+  It is used in Heat templates examples, ref:
+    - 
https://github.com/openstack/heat-templates/blob/master/hot/servers_in_new_neutron_net.yaml#L77:L82
+    - 
https://github.com/openstack/heat-templates/blob/master/hot/servers_in_existing_neutron_net.yaml#L30:L46
  
  Current behaviour with segments is that ip-allocation is deferred for _any_ 
port create. Deferring ip allocation if the host is not known does make sense. 
Before host is known the available segments are also not known and we need to 
wait until the scheduler has picked a host and nova adds binding:host_id. 
However...
  ... this does not make sense if the subnet or fixed-ip is specified in the 
port create request. In this case we should not defer allocation, the user 
specified exactly what they want and it is known where to allocate the IP.
  
  When / If this port is later bound to a host, an error will be raised if
  that host does not have the correct segments. This is essentially the
  same update scenario already covered in the code?[2]
  
  When creating an instance using an existing port with and IP address,
  the scheduler should take the ip-allocation data from the port provided
  in the request and ensure that the instance is scheduled to a host that
  is connected to the correct segment. According to nova neutron-routed-
  networks spec[1] this exact us

[Yahoo-eng-team] [Bug 1694120] [NEW] routed-networks - segments subnet dhcp port bind to wrong segment

2017-05-28 Thread Harald Jensås
Public bug reported:

$  openstack network list -f json
[]
$ openstack network create ctlplane

Network created, and we have 1 default segment:

$ openstack network segment list --network ctlplane -f json
[
  {
"Network": "89e4aa6c-06f2-4348-9576-bec17c7526d6", 
"Network Type": "local", 
"Segment": null, 
"ID": "46950790-717b-4d31-883a-a8d9d3df2e92", 
"Name": null
  }
]

$  openstack network segment create subnet0 --physical-network ctlplane
--network ctlplane --network-type flat

$ openstack subnet create --subnet-range 172.20.0.0/26 --dhcp --gateway
172.20.0.62 --ip-version 4 --network ctlplane --network-segment subnet0
--allocation-pool start=172.20.0.10,end=172.20.0.19 subnet0


(undercloud) [stack@ocataleafs ~]$ sudo ip netns list
qdhcp-89e4aa6c-06f2-4348-9576-bec17c7526d6
(undercloud) [stack@ocataleafs ~]$ sudo ip netns exec 
qdhcp-89e4aa6c-06f2-4348-9576-bec17c7526d6 ip addr show | grep tap
13: tap0170296c-f2:  mtu 1500 qdisc noqueue 
state UNKNOWN qlen 1000
inet 172.20.0.10/26 brd 172.20.0.63 scope global tap0170296c-f2
(undercloud) [stack@ocataleafs ~]$ sudo ip netns exec 
qdhcp-89e4aa6c-06f2-4348-9576-bec17c7526d6 ping 172.20.0.62
PING 172.20.0.62 (172.20.0.62) 56(84) bytes of data.
>From 172.20.0.10 icmp_seq=1 Destination Host Unreachable
>From 172.20.0.10 icmp_seq=2 Destination Host Unreachable

$ openstack network segment list -f json
[
  {
"Network": "89e4aa6c-06f2-4348-9576-bec17c7526d6", 
"Network Type": "local", 
"Segment": null, 
"ID": "46950790-717b-4d31-883a-a8d9d3df2e92", 
"Name": null
  }, 
  {
"Network": "89e4aa6c-06f2-4348-9576-bec17c7526d6", 
"Network Type": "flat", 
"Segment": null, 
"ID": "32a308e9-6f2e-4252-a273-95c7bfbcc94e", 
"Name": "subnet0"
  }
]
(undercloud) [stack@ocataleafs ~]$ openstack network segment delete 
46950790-717b-4d31-883a-a8d9d3df2e92
Failed to delete network segment with ID 
'46950790-717b-4d31-883a-a8d9d3df2e92': HttpException: Conflict (HTTP 409) 
(Request-ID: req-8b1a5179-c987-47ba-b35a-68c9afdca4bc), Segment 
'46950790-717b-4d31-883a-a8d9d3df2e92' cannot be deleted: The segment is still 
bound with port(s) 0170296c-f2e5-4482-843a-3ebb0bf11381.
1 of 1 network segments failed to delete.


The dhcp-namespace port did not bind to the segment associated with
subnet0, it bound to the default segment that is automatically created
when creating a network.

If I change the workflow to first delete the default segment, and then
create segment: subnet0 + subnet: subnet0 the dhcp namespace is wired
correctly.

** Affects: neutron
 Importance: Undecided
 Status: New


** Tags: l3-ipam-dhcp

-- 
You received this bug notification because you are a member of Yahoo!
Engineering Team, which is subscribed to neutron.
https://bugs.launchpad.net/bugs/1694120

Title:
  routed-networks - segments subnet dhcp port bind to wrong segment

Status in neutron:
  New

Bug description:
  $  openstack network list -f json
  []
  $ openstack network create ctlplane

  Network created, and we have 1 default segment:

  $ openstack network segment list --network ctlplane -f json
  [
{
  "Network": "89e4aa6c-06f2-4348-9576-bec17c7526d6", 
  "Network Type": "local", 
  "Segment": null, 
  "ID": "46950790-717b-4d31-883a-a8d9d3df2e92", 
  "Name": null
}
  ]

  $  openstack network segment create subnet0 --physical-network
  ctlplane --network ctlplane --network-type flat

  $ openstack subnet create --subnet-range 172.20.0.0/26 --dhcp
  --gateway 172.20.0.62 --ip-version 4 --network ctlplane --network-
  segment subnet0 --allocation-pool start=172.20.0.10,end=172.20.0.19
  subnet0

  
  (undercloud) [stack@ocataleafs ~]$ sudo ip netns list
  qdhcp-89e4aa6c-06f2-4348-9576-bec17c7526d6
  (undercloud) [stack@ocataleafs ~]$ sudo ip netns exec 
qdhcp-89e4aa6c-06f2-4348-9576-bec17c7526d6 ip addr show | grep tap
  13: tap0170296c-f2:  mtu 1500 qdisc noqueue 
state UNKNOWN qlen 1000
  inet 172.20.0.10/26 brd 172.20.0.63 scope global tap0170296c-f2
  (undercloud) [stack@ocataleafs ~]$ sudo ip netns exec 
qdhcp-89e4aa6c-06f2-4348-9576-bec17c7526d6 ping 172.20.0.62
  PING 172.20.0.62 (172.20.0.62) 56(84) bytes of data.
  From 172.20.0.10 icmp_seq=1 Destination Host Unreachable
  From 172.20.0.10 icmp_seq=2 Destination Host Unreachable

  $ openstack network segment list -f json
  [
{
  "Network": "89e4aa6c-06f2-4348-9576-bec17c7526d6", 
  "Network Type": "local", 
  "Segment": null, 
  "ID": "46950790-717b-4d31-883a-a8d9d3df2e92", 
  "Name": null
}, 
{
  "Network": "89e4aa6c-06f2-4348-9576-bec17c7526d6", 
  "Network Type": "flat", 
  "Segment": null, 
  "ID": "32a308e9-6f2e-4252-a273-95c7bfbcc94e", 
  "Name": "subnet0"
}
  ]
  (undercloud) [stack@ocataleafs ~]$ openstack network segment delete 
46950790-717b-4d31-883a-a8d9d3df2e92
  Failed to delete network segment with ID 
'46950790-717b-4d31-883a-a8d9d3df2e92': HttpException: Conflict (HT

[Yahoo-eng-team] [Bug 1693284] Re: Routed Networks - Ironic Port Binding - baremetal node on remote non-local subnet

2017-05-25 Thread Harald Jensås
** Summary changed:

- Unable to create port with fixed-ips allocation for 'baremetal' ironic 
instance
+ Routed Networks - Ironic Port Binding - baremetal node on remote non-local 
subnet

** Description changed:

  When using routed networks and a subnet is associated with a segment ip-
  allocation will be deferred unless binding:host_id is provided. This is
  all fine for ports that will end up on a nova host, we want to make sure
  the ip-allocation is for a subnet on a segment that is local to the
  target host.
  
- For the Ironic, baremtal, usecase this is however an issue since the
- port will not actually bind to any host. With the current implementation
- I think the only way to make this work would require a seperate Ironic
- node in each network segment.
+ For the Ironic, baremtal, usecase the 'host_id' used for port binding is the 
node running the Ironic services.
+ 
https://github.com/openstack/ironic/blob/master/ironic/drivers/modules/network/flat.py#L64
+ 
+ 
+ This would require a separate ironic node in each segment of a routed 
network? e.g one per rack in a spine-and-leaf datacenter?

** Also affects: ironic
   Importance: Undecided
   Status: New

-- 
You received this bug notification because you are a member of Yahoo!
Engineering Team, which is subscribed to neutron.
https://bugs.launchpad.net/bugs/1693284

Title:
  Routed Networks - Ironic Port Binding - baremetal node on remote non-
  local subnet

Status in Ironic:
  New
Status in neutron:
  In Progress

Bug description:
  When using routed networks and a subnet is associated with a segment
  ip-allocation will be deferred unless binding:host_id is provided.
  This is all fine for ports that will end up on a nova host, we want to
  make sure the ip-allocation is for a subnet on a segment that is local
  to the target host.

  For the Ironic, baremtal, usecase the 'host_id' used for port binding is the 
node running the Ironic services.
  
https://github.com/openstack/ironic/blob/master/ironic/drivers/modules/network/flat.py#L64

  
  This would require a separate ironic node in each segment of a routed 
network? e.g one per rack in a spine-and-leaf datacenter?

To manage notifications about this bug go to:
https://bugs.launchpad.net/ironic/+bug/1693284/+subscriptions

-- 
Mailing list: https://launchpad.net/~yahoo-eng-team
Post to : yahoo-eng-team@lists.launchpad.net
Unsubscribe : https://launchpad.net/~yahoo-eng-team
More help   : https://help.launchpad.net/ListHelp


[Yahoo-eng-team] [Bug 1693284] [NEW] Unable to create port with fixed-ips allocation for 'baremetal' ironic instance

2017-05-24 Thread Harald Jensås
Public bug reported:

When using routed networks and a subnet is associated with a segment ip-
allocation will be deferred unless binding:host_id is provided. This is
all fine for ports that will end up on a nova host, we want to make sure
the ip-allocation is for a subnet on a segment that is local to the
target host.

For the Ironic, baremtal, usecase this is however an issue since the
port will not actually bind to any host. With the current implementation
I think the only way to make this work would require a seperate Ironic
node in each network segment.

** Affects: neutron
 Importance: Undecided
 Status: New


** Tags: l3-ipam-dhcp

-- 
You received this bug notification because you are a member of Yahoo!
Engineering Team, which is subscribed to neutron.
https://bugs.launchpad.net/bugs/1693284

Title:
  Unable to create port with fixed-ips allocation for 'baremetal' ironic
  instance

Status in neutron:
  New

Bug description:
  When using routed networks and a subnet is associated with a segment
  ip-allocation will be deferred unless binding:host_id is provided.
  This is all fine for ports that will end up on a nova host, we want to
  make sure the ip-allocation is for a subnet on a segment that is local
  to the target host.

  For the Ironic, baremtal, usecase this is however an issue since the
  port will not actually bind to any host. With the current
  implementation I think the only way to make this work would require a
  seperate Ironic node in each network segment.

To manage notifications about this bug go to:
https://bugs.launchpad.net/neutron/+bug/1693284/+subscriptions

-- 
Mailing list: https://launchpad.net/~yahoo-eng-team
Post to : yahoo-eng-team@lists.launchpad.net
Unsubscribe : https://launchpad.net/~yahoo-eng-team
More help   : https://help.launchpad.net/ListHelp


[Yahoo-eng-team] [Bug 1692490] [NEW] [RFE] Ability to migrate a non-Segment subnet to a Segment

2017-05-22 Thread Harald Jensås
Public bug reported:

With Neutron segments it is not possible to mix subnets with segment_id:
None and subnets with a segment_id. In some cases a network will be
created, a subnet added without creating a segment. tTen later this
network need to scale, and dividing it onto multiple routed segments is
required.

To be able to support migration from non-routed, to a routed network we
would like the ability to migrate current subnets on a network with no
segments to a segment. The migration can/should be limited to migrating
the subnet to a segment that use the same "provider:physical_network".

This feature woulb enable possibility to upgrade/migrate existing Triplo
deployments to neutron routed segments model.

** Affects: neutron
 Importance: Undecided
 Status: New


** Tags: rfe

-- 
You received this bug notification because you are a member of Yahoo!
Engineering Team, which is subscribed to neutron.
https://bugs.launchpad.net/bugs/1692490

Title:
  [RFE] Ability to migrate a non-Segment subnet to a Segment

Status in neutron:
  New

Bug description:
  With Neutron segments it is not possible to mix subnets with
  segment_id: None and subnets with a segment_id. In some cases a
  network will be created, a subnet added without creating a segment.
  tTen later this network need to scale, and dividing it onto multiple
  routed segments is required.

  To be able to support migration from non-routed, to a routed network
  we would like the ability to migrate current subnets on a network with
  no segments to a segment. The migration can/should be limited to
  migrating the subnet to a segment that use the same
  "provider:physical_network".

  This feature woulb enable possibility to upgrade/migrate existing
  Triplo deployments to neutron routed segments model.

To manage notifications about this bug go to:
https://bugs.launchpad.net/neutron/+bug/1692490/+subscriptions

-- 
Mailing list: https://launchpad.net/~yahoo-eng-team
Post to : yahoo-eng-team@lists.launchpad.net
Unsubscribe : https://launchpad.net/~yahoo-eng-team
More help   : https://help.launchpad.net/ListHelp


[Yahoo-eng-team] [Bug 1692486] [NEW] [RFE] Neutron Segments DHCP-relay support

2017-05-22 Thread Harald Jensås
Public bug reported:

When using Neutron Segments we would like dhcp agent to configure DHCP
servers to serve clients on remote(non-local) subnets. The remote(non-
local) subnet will need to have a DHCP-relay/forwarder configured. The
relay agent will run on ToR switch or router in the routed underlay
network and would be configured by the operator, it does not need to be
managed by neutron.

Currently the Neutron Segments implementation expect a DHCP agent to be
available on all segments, and thus non-local subnets are filtered in
dhcp_rpc to return only subnets local to the agent.

To support DHCP relay we need to return all subnets and inform the DHCP
agent wich subnets are local vs non-local so that the DHCP agent will
only bind port/ip-address to the subnets that is local.

Implementation of the dhpc_rpc part of this has been started with these reviews:
  https://review.openstack.org/#/c/459861/
  https://review.openstack.org/#/c/438171/
  https://review.openstack.org/#/c/462209
  

The discussion in comment 10 of this bug 1668145 is relevant:
  https://bugs.launchpad.net/neutron/+bug/1668145/comments/10

** Affects: neutron
 Importance: Undecided
 Status: In Progress


** Tags: l3-ipam-dhcp

** Changed in: neutron
   Status: New => In Progress

-- 
You received this bug notification because you are a member of Yahoo!
Engineering Team, which is subscribed to neutron.
https://bugs.launchpad.net/bugs/1692486

Title:
  [RFE] Neutron Segments DHCP-relay support

Status in neutron:
  In Progress

Bug description:
  When using Neutron Segments we would like dhcp agent to configure DHCP
  servers to serve clients on remote(non-local) subnets. The remote(non-
  local) subnet will need to have a DHCP-relay/forwarder configured. The
  relay agent will run on ToR switch or router in the routed underlay
  network and would be configured by the operator, it does not need to
  be managed by neutron.

  Currently the Neutron Segments implementation expect a DHCP agent to
  be available on all segments, and thus non-local subnets are filtered
  in dhcp_rpc to return only subnets local to the agent.

  To support DHCP relay we need to return all subnets and inform the
  DHCP agent wich subnets are local vs non-local so that the DHCP agent
  will only bind port/ip-address to the subnets that is local.

  Implementation of the dhpc_rpc part of this has been started with these 
reviews:
https://review.openstack.org/#/c/459861/
https://review.openstack.org/#/c/438171/
https://review.openstack.org/#/c/462209


  The discussion in comment 10 of this bug 1668145 is relevant:
https://bugs.launchpad.net/neutron/+bug/1668145/comments/10

To manage notifications about this bug go to:
https://bugs.launchpad.net/neutron/+bug/1692486/+subscriptions

-- 
Mailing list: https://launchpad.net/~yahoo-eng-team
Post to : yahoo-eng-team@lists.launchpad.net
Unsubscribe : https://launchpad.net/~yahoo-eng-team
More help   : https://help.launchpad.net/ListHelp


[Yahoo-eng-team] [Bug 1691047] [NEW] dhcp agent - multiple interfaces, last iface coming up overwrite resolv.conf

2017-05-16 Thread Harald Jensås
Public bug reported:

The resolv.conf gets populated with whatever the last interface that
came up over DHCP provided.

Even if the 2nd network/subnet in neutron doesn’t define DNS, it still
overwrites resolv.conf.

By default the dnsmasq agent will use itself, and it's pairs as DNS servers if 
no dns_servers are provided for the neutron subnet. Ref:
  
https://github.com/openstack/neutron/blob/master/neutron/agent/linux/dhcp.py#L877:L887
  
https://github.com/openstack/neutron/blob/master/neutron/agent/linux/dhcp.py#L970

This is not always desired. Is there a way to disable this behaviour,
and simply not offer any dns servers if there are none specified in the
neutron subnet?

** Affects: neutron
 Importance: Undecided
 Status: New

-- 
You received this bug notification because you are a member of Yahoo!
Engineering Team, which is subscribed to neutron.
https://bugs.launchpad.net/bugs/1691047

Title:
  dhcp agent - multiple interfaces, last iface coming up overwrite
  resolv.conf

Status in neutron:
  New

Bug description:
  The resolv.conf gets populated with whatever the last interface that
  came up over DHCP provided.

  Even if the 2nd network/subnet in neutron doesn’t define DNS, it still
  overwrites resolv.conf.

  By default the dnsmasq agent will use itself, and it's pairs as DNS servers 
if no dns_servers are provided for the neutron subnet. Ref:

https://github.com/openstack/neutron/blob/master/neutron/agent/linux/dhcp.py#L877:L887

https://github.com/openstack/neutron/blob/master/neutron/agent/linux/dhcp.py#L970

  This is not always desired. Is there a way to disable this behaviour,
  and simply not offer any dns servers if there are none specified in
  the neutron subnet?

To manage notifications about this bug go to:
https://bugs.launchpad.net/neutron/+bug/1691047/+subscriptions

-- 
Mailing list: https://launchpad.net/~yahoo-eng-team
Post to : yahoo-eng-team@lists.launchpad.net
Unsubscribe : https://launchpad.net/~yahoo-eng-team
More help   : https://help.launchpad.net/ListHelp


[Yahoo-eng-team] [Bug 1685152] [NEW] [RFE] SR-IOV - HotPlug support

2017-04-21 Thread Harald Jensås
Public bug reported:

The Nova interface-attach API needs be enhanced to support SR-IOV.

There is a Newton blueprint for this:
https://review.openstack.org/#/c/139910/

It has been abandoned, and need to be picked up for ocata/pike.

** Affects: nova
 Importance: Undecided
 Status: New

-- 
You received this bug notification because you are a member of Yahoo!
Engineering Team, which is subscribed to OpenStack Compute (nova).
https://bugs.launchpad.net/bugs/1685152

Title:
  [RFE] SR-IOV - HotPlug support

Status in OpenStack Compute (nova):
  New

Bug description:
  The Nova interface-attach API needs be enhanced to support SR-IOV.

  There is a Newton blueprint for this:
  https://review.openstack.org/#/c/139910/

  It has been abandoned, and need to be picked up for ocata/pike.

To manage notifications about this bug go to:
https://bugs.launchpad.net/nova/+bug/1685152/+subscriptions

-- 
Mailing list: https://launchpad.net/~yahoo-eng-team
Post to : yahoo-eng-team@lists.launchpad.net
Unsubscribe : https://launchpad.net/~yahoo-eng-team
More help   : https://help.launchpad.net/ListHelp


[Yahoo-eng-team] [Bug 1669594] [NEW] DHCP host_routes should be Neutron Segment aware

2017-03-02 Thread Harald Jensås
Public bug reported:

The following code in neutron/agent/linux/dhcp.py will create on-link
/link-local routes to all subnets in a network.

 host_routes.extend(["%s,0.0.0.0" % (s.cidr) for s in
self.network.subnets
if (s.ip_version == 4 and
s.cidr != subnet.cidr)])

White the introduction of Neutron segments, this needs to be update so
that host_routes for on-link destinations are only created if
l2-adjacency is True.

We should also create host_routes for all subnets whithin the same
segment, as I understand it l2-adjacency is guaranteed within each
segment. And Segment can have multiple Subnets.


ref: 
http://specs.openstack.org/openstack/neutron-specs/specs/newton/routed-networks.html

** Affects: neutron
 Importance: Undecided
 Status: New

-- 
You received this bug notification because you are a member of Yahoo!
Engineering Team, which is subscribed to neutron.
https://bugs.launchpad.net/bugs/1669594

Title:
  DHCP host_routes should be Neutron Segment aware

Status in neutron:
  New

Bug description:
  The following code in neutron/agent/linux/dhcp.py will create on-link
  /link-local routes to all subnets in a network.

   host_routes.extend(["%s,0.0.0.0" % (s.cidr) for s in
  self.network.subnets
  if (s.ip_version == 4 and
  s.cidr != subnet.cidr)])

  White the introduction of Neutron segments, this needs to be update so
  that host_routes for on-link destinations are only created if
  l2-adjacency is True.

  We should also create host_routes for all subnets whithin the same
  segment, as I understand it l2-adjacency is guaranteed within each
  segment. And Segment can have multiple Subnets.

  
  ref: 
http://specs.openstack.org/openstack/neutron-specs/specs/newton/routed-networks.html

To manage notifications about this bug go to:
https://bugs.launchpad.net/neutron/+bug/1669594/+subscriptions

-- 
Mailing list: https://launchpad.net/~yahoo-eng-team
Post to : yahoo-eng-team@lists.launchpad.net
Unsubscribe : https://launchpad.net/~yahoo-eng-team
More help   : https://help.launchpad.net/ListHelp


[Yahoo-eng-team] [Bug 1668145] [NEW] Allow the end user control of "on-link" routes for subnets in the same Neutron network

2017-02-26 Thread Harald Jensås
Public bug reported:

When adding multiple subnets on a single network the dhcp agent will set
dhcp-options to advertise "on-link"/"same-segment" classless static
routes to all the subnets.

A couple of use cases where these on-link/link-local routes are
undesirable:

a) When using Ironic for baremetal provisioning the baremetal nodes
might be on a different L2 broadcast segment with a DHCP-relay.

b) In a Spine-Leaf deployed Openstack, a pattern is to use identical
VLAN id's for provider networks in each leaf. Same VLAN id, but
different L2 domain and different IP subnets.


IMO, creating these routes are a bit opinionated. If we don't create them by 
default, the operator/end-user is fully able to create them if they are desired 
on a per-subnet basis. But since we decided these "should" be there, the 
operator loose the ability to control this.

** Affects: neutron
     Importance: Undecided
 Assignee: Harald Jensås (harald-jensas)
 Status: In Progress

-- 
You received this bug notification because you are a member of Yahoo!
Engineering Team, which is subscribed to neutron.
https://bugs.launchpad.net/bugs/1668145

Title:
  Allow the end user control of "on-link" routes for subnets in the same
  Neutron network

Status in neutron:
  In Progress

Bug description:
  When adding multiple subnets on a single network the dhcp agent will
  set dhcp-options to advertise "on-link"/"same-segment" classless
  static routes to all the subnets.

  A couple of use cases where these on-link/link-local routes are
  undesirable:

  a) When using Ironic for baremetal provisioning the baremetal nodes
  might be on a different L2 broadcast segment with a DHCP-relay.

  b) In a Spine-Leaf deployed Openstack, a pattern is to use identical
  VLAN id's for provider networks in each leaf. Same VLAN id, but
  different L2 domain and different IP subnets.

  
  IMO, creating these routes are a bit opinionated. If we don't create them by 
default, the operator/end-user is fully able to create them if they are desired 
on a per-subnet basis. But since we decided these "should" be there, the 
operator loose the ability to control this.

To manage notifications about this bug go to:
https://bugs.launchpad.net/neutron/+bug/1668145/+subscriptions

-- 
Mailing list: https://launchpad.net/~yahoo-eng-team
Post to : yahoo-eng-team@lists.launchpad.net
Unsubscribe : https://launchpad.net/~yahoo-eng-team
More help   : https://help.launchpad.net/ListHelp


[Yahoo-eng-team] [Bug 1590310] [NEW] Reduce excessive LBaaSv2 logging

2016-06-08 Thread Harald Jensås
Public bug reported:

Description of problem:
When a tenant creates a v2 HAProxy load balancer without a listener, minimally

$ neutron lbaas-loadbalancer-create 

below kind of messages are then logged on every 10 seconds in lbaas-
agent.log for each such load balancer of any tenant:

2016-04-07 17:34:18.763 25200 WARNING
neutron_lbaas.drivers.haproxy.namespace_driver [-] Stats socket not
found for loadbalancer c86c8dd7-74a1-435f-ad60-f47d2006cb06

At minimum, the level and frequency of these messages should be
adjusted.

** Affects: neutron
 Importance: Undecided
 Status: New


** Tags: lbaas

-- 
You received this bug notification because you are a member of Yahoo!
Engineering Team, which is subscribed to neutron.
https://bugs.launchpad.net/bugs/1590310

Title:
  Reduce excessive LBaaSv2 logging

Status in neutron:
  New

Bug description:
  Description of problem:
  When a tenant creates a v2 HAProxy load balancer without a listener, minimally

  $ neutron lbaas-loadbalancer-create 

  below kind of messages are then logged on every 10 seconds in lbaas-
  agent.log for each such load balancer of any tenant:

  2016-04-07 17:34:18.763 25200 WARNING
  neutron_lbaas.drivers.haproxy.namespace_driver [-] Stats socket not
  found for loadbalancer c86c8dd7-74a1-435f-ad60-f47d2006cb06

  At minimum, the level and frequency of these messages should be
  adjusted.

To manage notifications about this bug go to:
https://bugs.launchpad.net/neutron/+bug/1590310/+subscriptions

-- 
Mailing list: https://launchpad.net/~yahoo-eng-team
Post to : yahoo-eng-team@lists.launchpad.net
Unsubscribe : https://launchpad.net/~yahoo-eng-team
More help   : https://help.launchpad.net/ListHelp