N1kv trunk driver: same mac assigned to ports created

Bug #1452845 reported by Yanping Qu
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
networking-cisco
Fix Committed
Undecided
Yanping Qu
Kilo
Fix Committed
Undecided
Yanping Qu
Liberty
Fix Committed
Undecided
Yanping Qu

Bug Description

When N1kv trunk driver creates management port and ports on trunk network, the same mac address is assigned to all these ports.

Cause:
N1kv trunk driver (n1kv_trunking_driver.py) defines a p_spec and uses it to create a management port and ports on trunk network.

When creating the management port, mac_address in p_spec['port'] is assigned to attributes.ATTR_NOT_SPECIFIED.
-- The create_port function in neutron/db/db_base_plugin_v2.py will be called eventually to create this port.
-- This function will generate a new mac address since 'mac_address' is attributes.ATTR_NOT_SPECIFIED
-- This function also save the newly generated mac address back to the port dictionary

N1kv trunk driver used the same p_spec to create the ports on trunk network.
-- the p_spec['port'] is updated first, such as 'name', but NOT the 'mac_address' which is now has the mac address assigned to the management port
-- The create_port function in neutron/db/db_base_plugin_v2.py will be called eventually to create the port
-- This function, since port['mac_address'] has a mac, will not generate a new mac, but calls _create_port_with_mac to create the port.

As the result, the same mac address assigned to all the ports created.

Fix: when updating p_spec for creating the ports on trunk network, also update the mac_address in p_spec['port'] to attributes.ATTR_NOT_SPECIFIED

Yanping Qu (yanping)
Changed in networking-cisco:
assignee: nobody → Yanping Qu (yanping)
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix proposed to networking-cisco (master)

Fix proposed to branch: master
Review: https://review.openstack.org/181112

Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix merged to networking-cisco (master)

Reviewed: https://review.openstack.org/181112
Committed: https://git.openstack.org/cgit/stackforge/networking-cisco/commit/?id=25cb20f4aa86ae59063fe1ad1b43a0fa5b5878d6
Submitter: Jenkins
Branch: master

commit 25cb20f4aa86ae59063fe1ad1b43a0fa5b5878d6
Author: Yanping Qu <email address hidden>
Date: Thu May 7 11:37:11 2015 -0700

    Fix N1kv trunk driver: same mac assigned to ports created

    When update p_spec for creating the ports on trunk network, mac_address in
    p_spec['port'] should be updated and set to attributes.ATTR_NOT_SPECIFIED.
    As such a new mac address will be generated for each port created.

    Change-Id: I9515915263ed5ceebd4c1f007d4fc53d824ff64c
    Close-Bug: #1452845

Yanping Qu (yanping)
Changed in networking-cisco:
status: New → Fix Committed
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix proposed to networking-cisco (stable/kilo)

Fix proposed to branch: stable/kilo
Review: https://review.openstack.org/211270

Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix merged to networking-cisco (stable/kilo)

Reviewed: https://review.openstack.org/211270
Committed: https://git.openstack.org/cgit/openstack/networking-cisco/commit/?id=f39c6a55613a274d6d0e67409533edefbca6f9a7
Submitter: Jenkins
Branch: stable/kilo

commit f39c6a55613a274d6d0e67409533edefbca6f9a7
Author: Yanping Qu <email address hidden>
Date: Thu May 7 11:37:11 2015 -0700

    Fix N1kv trunk driver: same mac assigned to ports created

    When update p_spec for creating the ports on trunk network, mac_address in
    p_spec['port'] should be updated and set to attributes.ATTR_NOT_SPECIFIED.
    As such a new mac address will be generated for each port created.

    Change-Id: I9515915263ed5ceebd4c1f007d4fc53d824ff64c
    Close-Bug: #1452845
    (cherry picked from commit 25cb20f4aa86ae59063fe1ad1b43a0fa5b5878d6)

tags: added: in-stable-kilo
Sam Betts (sambetts)
Changed in networking-cisco:
milestone: none → 1.1.0
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix proposed to networking-cisco (master)

Fix proposed to branch: master
Review: https://review.openstack.org/246547

Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix merged to networking-cisco (master)
Download full text (23.9 KiB)

Reviewed: https://review.openstack.org/246547
Committed: https://git.openstack.org/cgit/openstack/networking-cisco/commit/?id=7b1eb2b6d5e55563c084f60e44adc1d32706eb17
Submitter: Jenkins
Branch: master

commit d9b9a6421d7ff92e920ed21b01ebc7bf49e38bd6
Author: Sam Betts <email address hidden>
Date: Tue Sep 29 09:18:10 2015 +0100

    Set default branch for stable/kilo

    Change-Id: I31f51ff60f95639f459839f4c7d929d5ec7c458d

commit f08fb31f20c2d8cc1e6b71784cdfd9604895e16d
Author: Rich Curran <email address hidden>
Date: Thu Sep 3 13:23:52 2015 -0400

    ML2 cisco_nexus MD: VLAN not created on switch

    As described in DE588,
    "With neutron multiworkers configured, there is a potential race condition
    issue where some of the VLANs will not be configured on one or more N9k
    switches.

    /etc/neutron/neutron.conf
    -------------------------
    api_workers=3
    rpc_workers=3"

    Fix is to allow the vlan create command to be sent down to a switch
    under most event conditions. Long term fix will be to introduce a new
    column in the port binding DB table that indicates the true state of the
    entry/row.

    Closes-Bug: #1491940
    Change-Id: If1da1fcf16a450c1a4107da9970b18fc64936896
    (cherry picked from commit 0e48a16e77fc5ec5fd485a85f97f3650126fb6fe)

commit d400749e43e9d5a1fc92683b40159afce81edc95
Author: Carol Bouchard <email address hidden>
Date: Thu Sep 3 15:19:48 2015 -0400

    Create knob to prevent caching ssh connection

    Create a new initialization knob named never_cache_ssh_connection.
    This boolean is False by default allowing multiple ssh connections
    to the Nexus switch to be cached as it behaves today. When there
    are multiple neutron processes/controllers and/or non-neutron ssh(xml)
    connections, this is an issue since processes hold onto a connection
    while the Nexus devices supports a maximum of 8 sessions. As a result,
    further ssh connections will fail. In this case, the boolean should be
    set to True causing each connection to be closed when a neutron event
    is complete.

    Change-Id: I61ec303856b757dd8d9d43110fec8e7844ab7c6d
    Closes-bug: #1491108
    (cherry picked from commit 23551a4198c61e2e25a6382f27d47b0665f054b8)

commit 0050ea7f1fb3c22214d7ca49cfe641da86123e2c
Author: Carol Bouchard <email address hidden>
Date: Wed Sep 2 11:10:42 2015 -0400

    Bubble up exceptions when Nexus replay enabled

    There are several changes made surrounding this bug.

    1) When replay is enabled, we should bubble exceptions
       for received port create/update/delete post_commit
       transactions. This was suppressed earlier by
       1422738.

    2) When an exception is encountered during a
       post_commit transaction, the driver will no longer
       mark the switch state to inactive to force a replay.
       This is no longer needed since 1481856 was introduced.
       So from this point on, only the replay thread will
       determine the state of the connection to the switch.

    3) In addition to accommodating 1 & 2 above, more detail
       data verification was added to the test code.

    Change-Id: I97...

To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.