<div dir="ltr"><div><div><div>Hello Community,<br><br></div><div>Current portgroup scenario is not fully clear for me. The related spec [3] doesn't clearly describe it. And based on implementation [1] and [2] I guess it should work in the following fashion for node with 3 NICs, where eth1 and eth2 are members of Porgroup Po0/1</div><div><br><div>Node network connection info:<br></div>eth1 (aa:bb:cc:dd:ee:f1) <---> Gig0/1<br>eth2 (aa:bb:cc:dd:ee:f2) <---> Gig0/2<br>eth3 (aa:bb:cc:dd:ee:f3) <---> Gig0/3<br> <br></div><div></div><div>For FLAT network scenario:<br></div><div>1. Administrator enrol ironic node.<br></div><div>2. Administrator creates a 3 ports for each interface, and a portgroup that contains eth0 and eth1 ports. <br></div><div>3. The ports Gig0/1 and Gig0/2 are added to portgroup Po0/1 manually on the switch.<br></div>4. When user request to boot an instance, Nova randomly picks interface [2], it might be a portgroup or single NIC interface. Proposed change [1] do not allow to specify what exactly network type we would like to use single NIC or portgroup.<br><br></div><div>For multitenancy case:<br></div><div>All looks the same, in addition administrator adds local_link_connection information for each port (local_link_connection 'port_id' field is 'Gig0/1' for eth1, 'Gig0/2' for eth2 and 'Gig0/3' for eth3, ). Ironic send this information to Neutron who plugs ports to needed network.<br></div><div><br></div><div>The same user-scenario is available at the moment without any changes to Nova or Ironic. The difference is that administrator creates one port for single interface eth3 with local_link_connection 'port_id'='Gig0/3',  and a 
port that is a logical representation of portgroup (eth1 and eth2) with local_link_connection 'port_id'='Po0/1'.  <br></div><div><br></div><div>Please let me know if I've missed something or misunderstood current portgroup scenario. <br></div><div><br></div>Reference:<br>[0] <a href="https://review.openstack.org/206163">https://review.openstack.org/206163</a><br>[1] <a href="https://review.openstack.org/332177">https://review.openstack.org/332177</a><br>[2] <a href="https://github.com/openstack/nova/blob/06c537fbe5bb4ac5a3012642c899df815872267c/nova/network/neutronv2/api.py#L270">https://github.com/openstack/nova/blob/06c537fbe5bb4ac5a3012642c899df815872267c/nova/network/neutronv2/api.py#L270</a><br>[3] <a href="https://specs.openstack.org/openstack/ironic-specs/specs/not-implemented/ironic-ml2-integration.html">https://specs.openstack.org/openstack/ironic-specs/specs/not-implemented/ironic-ml2-integration.html</a><br></div></div>