[openstack-dev] [neutron] weird behavior of neutron create port with extra dhcp option

Gary Kotton gkotton at vmware.com
Sun Jul 31 11:35:22 UTC 2016


Hi,
This also seems related - https://review.openstack.org/345717 and https://review.openstack.org/345720
Thanks
Gary

On 7/30/16, 12:49 AM, "Moshe Levi" <moshele at mellanox.com> wrote:

    Hi,
    I encounter a weird behavior with neutron create port command.
    I am using neutron master.
    
    When I run this neutron create-port command 
    stack at r-dcs88:/opt/devstack$ neutron port-create --device-id=984b4a6d-a66d-4db7-8acc-1113cd1097ef --device-owner=baremetal:none --mac-address 7c:fe:90:29:22:4e --extra-dhcp-opt 'opt_value'='ff:00:00:00:00:00:02:00:00:02:c9:00:7c:fe:90:03:00:29:22:4e','opt_name'='client-id' --admin_state_up=True private
    port is created as expected see [1]
    
    when I create a port with the following command:
    stack at r-dcs88:/opt/devstack$ neutron port-create --device-id=984b4a6d-a66d-4db7-8acc-1113cd1097ef --device-owner=baremetal:none --mac-address 7c:fe:90:29:22:4e --extra-dhcp-opt 'opt_value'='ff:00:00:00:00:00:02:00:00:02:c9:00:7c:fe:90:03:00:29:22:4e','opt_name'='client-id' --vnic_type=baremetal --admin_state_up=True private
    port is created but in neutron client  show the extra_dhcp_opts attribute without the options. The only difference in the command is that I added --vnic_type=baremetal to it.
    I looked in the neutron database and I can see the extra_dhcp_opts in the table.
    
    I debugged the neutron server and the problem is with 
    https://urldefense.proofpoint.com/v2/url?u=https-3A__github.com_openstack_neutron_blob_master_neutron_plugins_ml2_plugin.py-23L1217&d=CwICAg&c=Sqcl0Ez6M0X8aeM67LKIiDJAXVeAw-YihVMNtXt-uEs&r=VlZxHpZBmzzkWT5jqz9JYBk8YTeq9N3-diTlNj4GyNc&m=NK7N9hNHtDeWUv7zz2bSdzSl9vcPX6zcxEyxfJ6o4vw&s=hbtQu6retP3sM2NcUcu-dUT0ysPA6dAQJ_MpYwYkRck&e=  that calling the _extend_port_dict_extra_dhcp_opt and clearing the 
    extra_dhcp_opts from the result variable. If I comment this line(_apply_dict_extend_functions)  I will get the correct result.
    Commenting it don't seem to me as the correct fix and I have a hard time understating the code.
    It seems that the dhcp opt extend the result in 2 places  here [3] and here [4].
    
    Does anyone know what is the proper way to fix this issue? Help would be much appreciated 
    
    
    [1] - http://paste.openstack.org/show/544013/
    [2] - http://paste.openstack.org/show/544014/ 
    [3] - https://urldefense.proofpoint.com/v2/url?u=https-3A__github.com_openstack_neutron_blob_master_neutron_db_extradhcpopt-5Fdb.py-23L37-2DL53&d=CwICAg&c=Sqcl0Ez6M0X8aeM67LKIiDJAXVeAw-YihVMNtXt-uEs&r=VlZxHpZBmzzkWT5jqz9JYBk8YTeq9N3-diTlNj4GyNc&m=NK7N9hNHtDeWUv7zz2bSdzSl9vcPX6zcxEyxfJ6o4vw&s=f3iiNIAfJJDgEuxyDUJ3R4wzduAs4jtIQQN2TBL1aSU&e= 
    [4] - https://urldefense.proofpoint.com/v2/url?u=https-3A__github.com_openstack_neutron_blob_1fd1b505ca0a4dcaa7184df02dbd53ba63355083_neutron_db_extradhcpopt-5Fdb.py-23L116-2DL121&d=CwICAg&c=Sqcl0Ez6M0X8aeM67LKIiDJAXVeAw-YihVMNtXt-uEs&r=VlZxHpZBmzzkWT5jqz9JYBk8YTeq9N3-diTlNj4GyNc&m=NK7N9hNHtDeWUv7zz2bSdzSl9vcPX6zcxEyxfJ6o4vw&s=TQ3P-nBoomj9g6UoZkRgAqXoBTfYFMGdOnzPCl85Xl0&e= 
    
    
    
    __________________________________________________________________________
    OpenStack Development Mailing List (not for usage questions)
    Unsubscribe: OpenStack-dev-request at lists.openstack.org?subject:unsubscribe
    http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev
    



More information about the OpenStack-dev mailing list