Public bug reported:

ENV: devstack master


Floating IP port_forwardings with different protocols can not have the same 
internal or external port number to the same vm_port. But we can have different 
application server, for instance TCP server and UDP server, listen to the same 
port at same time.

For instance, if you create a port_forwarding to a floating IP with the 
following input:
{"port_forwarding": 
{
"internal_port_id": "3145b56c-949d-45d4-9e35-614117b5f69c", 
"internal_port": 22, 
"protocol": "tcp", 
"external_port": 22, 
"internal_ip_address": "192.168.188.3"
}
}

And then add another port_forwarding with protocol to udp and internal port 
number 22 again:
{"port_forwarding": 
{
"internal_port_id": "3145b56c-949d-45d4-9e35-614117b5f69c", 
"internal_port": 22, 
"protocol": "udp", 
"external_port": 2222, 
"internal_ip_address": "192.168.188.3"
}
}

The neutron will return 40x error.

This is the key point, these unique constraints do not consider the protocol:
https://github.com/openstack/neutron/blob/master/neutron/db/migration/alembic_migrations/versions/rocky/expand/867d39095bf4_port_forwarding.py#L53-L58

** 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/1799155

Title:
  [l3][port_forwarding] tow different protocols can not have the same
  internal/external port number at the same time

Status in neutron:
  New

Bug description:
  ENV: devstack master

  
  Floating IP port_forwardings with different protocols can not have the same 
internal or external port number to the same vm_port. But we can have different 
application server, for instance TCP server and UDP server, listen to the same 
port at same time.

  For instance, if you create a port_forwarding to a floating IP with the 
following input:
  {"port_forwarding": 
  {
  "internal_port_id": "3145b56c-949d-45d4-9e35-614117b5f69c", 
  "internal_port": 22, 
  "protocol": "tcp", 
  "external_port": 22, 
  "internal_ip_address": "192.168.188.3"
  }
  }

  And then add another port_forwarding with protocol to udp and internal port 
number 22 again:
  {"port_forwarding": 
  {
  "internal_port_id": "3145b56c-949d-45d4-9e35-614117b5f69c", 
  "internal_port": 22, 
  "protocol": "udp", 
  "external_port": 2222, 
  "internal_ip_address": "192.168.188.3"
  }
  }

  The neutron will return 40x error.

  This is the key point, these unique constraints do not consider the protocol:
  
https://github.com/openstack/neutron/blob/master/neutron/db/migration/alembic_migrations/versions/rocky/expand/867d39095bf4_port_forwarding.py#L53-L58

To manage notifications about this bug go to:
https://bugs.launchpad.net/neutron/+bug/1799155/+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

Reply via email to