)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"26780bffc4d8254dbc5aa36858f59e260699fef2","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":8,"id":"5c3e5dc4_1a37e444","updated":"2025-02-17 00:34:45.000000000","message":"restored at @vsaienko@mirantis.com request.\n\nnote that i have not look at this since it was abandoned so this may not be applaable anymore \nwe will need to effectivly start the review and design of this afresh to ensure that it still makes sense form a nova and neutron perspective based on how each have eolved since queens.","commit_id":"1d9552cd3f0f303504812a309c8496d6348785b6"},{"author":{"_account_id":15554,"name":"Bence Romsics","email":"bence.romsics@gmail.com","username":"ebenrom","status":"working for Ericsson, UTC+1 (+DST)"},"change_message_id":"7022df47766b44ba982eaae5be476a5e432b59ed","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":10,"id":"bae248d9_932193e3","updated":"2025-06-05 11:24:12.000000000","message":"I believe this makes sense overall. If I were to define the format of network_data.json I would make a few different calls, but I believe the format was defined in a liberty spec, so it does not make sense to start challanging it many years later. The current format is clearly usable.","commit_id":"004f9c0fc07b0b167d08497dc8b3fadebe2329ea"},{"author":{"_account_id":5890,"name":"Doug Goldstein","email":"cardoe@cardoe.com","username":"cardoe"},"change_message_id":"794b4ebe34858f3a74f884e205a3a0842d4cf9ed","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":10,"id":"e6e9c328_4ab09643","updated":"2025-07-22 14:58:05.000000000","message":"beep boop. Ironic would like to see this land. It\u0027s got an implementation and associated tests. It\u0027s also been deployed by multiple downstream operators. It\u0027s been brought up at nova meetings as well.","commit_id":"004f9c0fc07b0b167d08497dc8b3fadebe2329ea"},{"author":{"_account_id":5890,"name":"Doug Goldstein","email":"cardoe@cardoe.com","username":"cardoe"},"change_message_id":"b5c361dd70ecaed64b0470594cf52deeed7977ef","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":10,"id":"c1debc46_38802487","updated":"2025-10-27 15:08:29.000000000","message":"beep boop. What do I need to do to advance this? The code is written. The tests are written. Multiple operators have deployed this in production.","commit_id":"004f9c0fc07b0b167d08497dc8b3fadebe2329ea"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"08c22f4152610591e8c6c6594bd2e2ee792cb6f4","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":10,"id":"c9e01c13_ddf80c44","updated":"2025-05-15 18:39:54.000000000","message":"directionally i think this makes senses.\n\ni think its in scop of nova to provide richer metadta and i think this would work for all driver with a common implmemtaiaon which is nice.\n\nit would be good to get inpfort form the wider nova core team but if you were willing to do the work i think this is something we could do this cycle.","commit_id":"004f9c0fc07b0b167d08497dc8b3fadebe2329ea"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"79bfaf3b2c4e92f7c5b3df940be14db3fd912d36","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":10,"id":"6e4fa3be_84e65542","updated":"2025-06-17 16:31:22.000000000","message":"in stead of saying no until neutorn or other nova cores review im going ot say yes until someoen rasies an issue with the current proosal. \n\nwe coudl certenly extend the scope but im inclidned to say keep it as is.\n\nand we can refien the metadata format if needed in a future cycle.","commit_id":"004f9c0fc07b0b167d08497dc8b3fadebe2329ea"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"af094520fa0a180592c316b1fdf42b3633b81d33","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":10,"id":"3b4355a7_809ac83e","updated":"2025-06-12 17:59:28.000000000","message":"it woudl be nice to get input form ironci or neutron folks on the destired\nbeahivor of inclduing mtu for baremental network with dhcp and ro for trunk port in general.\n\nshoudl we follwo the new convetion of only adding the mtu info if there is not dhcp\nor alwasy include it for turnk ports?","commit_id":"004f9c0fc07b0b167d08497dc8b3fadebe2329ea"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"541b536df8f166286d6a986eab46b1751f4d858c","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":10,"id":"5b1eacf3_d56599a0","updated":"2025-06-20 10:26:13.000000000","message":"looks good to me.","commit_id":"004f9c0fc07b0b167d08497dc8b3fadebe2329ea"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"d3c04f7270110a476c88ecf0d6b1869c80451c7c","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":10,"id":"f2253414_be2cb258","in_reply_to":"64ea5bed_10245a34","updated":"2025-06-12 18:05:14.000000000","message":"the format is partly defiend by us and partly defeind byt cloudinit/glean/amazon\n\nwhen we change things we version the changes and create a new folder with the data/version and move latest to poitn to that but we keep the older version too\n\nwhat we dont wnat to break are existing vms that use an old cloud-init ectra.\n\nmost of the time they will  fall back to the old EC2 compatiblity mode whcih wont have this new info so its generally not as much fo a deal but ya froward comaptiabl improvment are deffeintly possible we jsut dont want to create more work ourselve and the cloud init mainteinr by changing it without a good reaon.\n\nfor what its woth i dont really have an issue with the spec in it curent from but i would just like to see some input wofmr neutron and ironic folks that they are happy with this too.","commit_id":"004f9c0fc07b0b167d08497dc8b3fadebe2329ea"},{"author":{"_account_id":5890,"name":"Doug Goldstein","email":"cardoe@cardoe.com","username":"cardoe"},"change_message_id":"acee3d3d82d302e661c16ffc3ad1666020854a35","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":10,"id":"64ea5bed_10245a34","in_reply_to":"bae248d9_932193e3","updated":"2025-06-06 16:24:24.000000000","message":"I\u0027m happy to make improvements in a forward compatible way. If you see my reply to Sean you can see there\u0027s some funkiness.","commit_id":"004f9c0fc07b0b167d08497dc8b3fadebe2329ea"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"57b0d92c50b6e4ecb039b15b105441596885f4ca","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":10,"id":"76e6fb78_506eefda","in_reply_to":"c1debc46_38802487","updated":"2025-10-28 12:37:07.000000000","message":"process wise this need to be updated to the 2026.1/approved directory for the new cycle.\n\n\none of the things that we are trying to do going forward is to only +2 if we are ok to also review the implementation.\n\nthis is a small enough change that i think i can do that this cycle\nso ill happily re add my +2 once that is done but it need at least one other core to review and agree with this. \n\nit could be good to add the ptg agenda too to socialise it more or ping on the openstack-nova irc channel and ask for review.","commit_id":"004f9c0fc07b0b167d08497dc8b3fadebe2329ea"},{"author":{"_account_id":5890,"name":"Doug Goldstein","email":"cardoe@cardoe.com","username":"cardoe"},"change_message_id":"3ac9b5be789a4cb82c8179b9ad9d585da5c9789a","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":10,"id":"70737d0b_6e3b1322","in_reply_to":"c9e01c13_ddf80c44","updated":"2025-06-03 20:14:25.000000000","message":"So the info is already implemented in a patch series here: https://review.opendev.org/c/openstack/nova/+/941227 As I noted I switched from our own implementation to the patch linked with the one fix I noted. Vasyl\u0027s organization (Vasyl and I work for different orgs and our deployment case is different) is also deploying a similar patch to production. I also know of another operator using a similar change as well.","commit_id":"004f9c0fc07b0b167d08497dc8b3fadebe2329ea"},{"author":{"_account_id":5890,"name":"Doug Goldstein","email":"cardoe@cardoe.com","username":"cardoe"},"change_message_id":"2d3880cc928a57c447cf222ff58ab86bd1b82124","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":11,"id":"85550d87_3ece7a1a","updated":"2025-12-14 17:59:19.000000000","message":"I\u0027ve updated it to 2026.1. I\u0027ve also fixed up the typos and the grammar issues pointed out by the review as well as some others I found in reading it.\n\nThe implementation continues to be the same and runs just fine on 2025.2 and applies cleanly to master. The OpenDev Zuul system stills runs on at least one cloud provider that is applying this patch downstream to their version of Nova.\n\nThere was a question as to how Ironic cores felt about this patch. So my Ironic core hat on I\u0027ll say +1. Multiple other regular Ironic contributors have updated this patch or +1\u0027d it recently so that\u0027s a +1.","commit_id":"4112e4d8ade28a9c4e73b6752d30e437e4a95730"},{"author":{"_account_id":5890,"name":"Doug Goldstein","email":"cardoe@cardoe.com","username":"cardoe"},"change_message_id":"2efb70e4671864abe0aa370ba369c2332487596b","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":11,"id":"135d02ea_9c2fa105","in_reply_to":"4bc2e375_5c6f56cf","updated":"2025-12-15 13:43:15.000000000","message":"I\u0027ve updated this now to 2026.2","commit_id":"4112e4d8ade28a9c4e73b6752d30e437e4a95730"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"cc6c6f51ec701967b2e70b5480a5c2d2f898033d","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":11,"id":"a53dc07f_00094fb3","in_reply_to":"85550d87_3ece7a1a","updated":"2025-12-15 12:07:31.000000000","message":"the problem with that is the nova spec approval deadlien was december 4th\n\nhttps://releases.openstack.org/gazpacho/schedule.html#nova-spec-freeze\n\nAll Nova Specs for features to be implemented in 2026.1 Gazpacho must be approved by 4 December 2025 (23:59 UTC).\n\ni still think it makes sense to do this but the nova core team expressed a desire to have a shorter spec peiod  at the ptg and appove less specs with the intent to complete more of the approved specs so the data wsa pulled in to december 4th instead of  milestone 2 which is january 8th\n\nThis was directly prompted by the output of the contributors survey.\n\nIn the distant past non priority spec used to have a spec deadline of milestone 1 and implation deadline of milestone 2. we didn\u0027t want to go all the way back to that but the specific date was chosen mainly to reflect a lack of quorum at the end of the year.","commit_id":"4112e4d8ade28a9c4e73b6752d30e437e4a95730"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"e5e717ea8e481441d215d98913799c5fe1ed2c94","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":11,"id":"4bc2e375_5c6f56cf","in_reply_to":"a53dc07f_00094fb3","updated":"2025-12-15 12:17:56.000000000","message":"my advice si to propose this to 2026.2 now, get it approved before 2026.1 is complete and have the code ready to merge early in 2026.2 as in in early april.\nwe usually create the spec directory for the next cycle shortly after spec freeze so if i todes not exits yet ic can be created now because we are past that point.","commit_id":"4112e4d8ade28a9c4e73b6752d30e437e4a95730"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"eba40492e120f4bad81e7b8fd7d268dcdae9c706","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":12,"id":"d6db7b44_376cb4dc","updated":"2026-03-09 14:31:37.000000000","message":"can you explain what type: ovs is and how that type value is set and shoudl be interpereted by the guest.\n\nshoudl it be type\u003dphy? confirable via neuton port in some way?\nother then that i think im ok with the proposal","commit_id":"f57a8922be6bd68a2d8de57c0a5fb9ea1d8ff161"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"4d0c671de9b37cc303cbea780988ea1fca27a53d","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":12,"id":"6c85e650_3a875013","updated":"2026-03-09 15:39:51.000000000","message":"i think after reviewing the shema i have concived my self that semantic of the type filed in the l2_link entry is currently undefined.\n\ni would prefer to use a value like phy or vif instead of ovs but i think im ok with deferring that ot the implementation review.\n\ni just dont wany to imply that this is correalted to the neutron port vif_type as it is not.","commit_id":"f57a8922be6bd68a2d8de57c0a5fb9ea1d8ff161"},{"author":{"_account_id":5890,"name":"Doug Goldstein","email":"cardoe@cardoe.com","username":"cardoe"},"change_message_id":"56cf31d6f7256e0f3de2be228d33db44727182ed","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":12,"id":"2ab7f087_9c6585ad","updated":"2026-03-03 14:04:46.000000000","message":"recheck the directory should exist now","commit_id":"f57a8922be6bd68a2d8de57c0a5fb9ea1d8ff161"}],"specs/2025.2/approved/expose-vlan-trunking.rst":[{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"08c22f4152610591e8c6c6594bd2e2ee792cb6f4","unresolved":true,"context_lines":[{"line_number":32,"context_line":"isn\u0027t a mechanism in cloud-init for the nova instance to be aware of it after"},{"line_number":33,"context_line":"boot, and to subsequently reconfigure the networking interfaces. This proposal"},{"line_number":34,"context_line":"won\u0027t attempt to address the issue of network reconfiguration in the nova"},{"line_number":35,"context_line":"instance due to subport changes after boot."},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"Use Cases"},{"line_number":38,"context_line":"---------"}],"source_content_type":"text/x-rst","patch_set":10,"id":"adfdc23c_607b1bb2","line":35,"updated":"2025-05-15 18:39:54.000000000","message":"ack.\n\ni think there actully i sa way in cloud-init to perodiclly run some steps again but i agree wiht puting this out of scope\n+1","commit_id":"004f9c0fc07b0b167d08497dc8b3fadebe2329ea"},{"author":{"_account_id":5890,"name":"Doug Goldstein","email":"cardoe@cardoe.com","username":"cardoe"},"change_message_id":"3ac9b5be789a4cb82c8179b9ad9d585da5c9789a","unresolved":false,"context_lines":[{"line_number":32,"context_line":"isn\u0027t a mechanism in cloud-init for the nova instance to be aware of it after"},{"line_number":33,"context_line":"boot, and to subsequently reconfigure the networking interfaces. This proposal"},{"line_number":34,"context_line":"won\u0027t attempt to address the issue of network reconfiguration in the nova"},{"line_number":35,"context_line":"instance due to subport changes after boot."},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"Use Cases"},{"line_number":38,"context_line":"---------"}],"source_content_type":"text/x-rst","patch_set":10,"id":"9b0a1824_3e579116","line":35,"in_reply_to":"adfdc23c_607b1bb2","updated":"2025-06-03 20:14:25.000000000","message":"Acknowledged","commit_id":"004f9c0fc07b0b167d08497dc8b3fadebe2329ea"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"08c22f4152610591e8c6c6594bd2e2ee792cb6f4","unresolved":true,"context_lines":[{"line_number":43,"context_line":"It\u0027s particularly useful with Baremetal instances. For example, a baremetal"},{"line_number":44,"context_line":"server with a single physical port may be connected to multiple vlan networks."},{"line_number":45,"context_line":"Once the BM server is booted up with Ironic, its networking interfaces can be"},{"line_number":46,"context_line":"automatically configured and brought up."},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"In some NFV use cases that understands and configures vlan subinterfaces in"},{"line_number":49,"context_line":"their own way, automatic configuration of vlan subinterfaces through cloud-init"}],"source_content_type":"text/x-rst","patch_set":10,"id":"39800e90_04cb11cd","line":46,"updated":"2025-05-15 18:39:54.000000000","message":"i think this is equally useful for vms.\n\ni also belive that the implemeation fo this can be generic over thet virt driver.\n\nwhat that measn is for testing we shoudl eb able to test this using the libvirt driver since the change would happen in the shared code\n\nhere https://github.com/openstack/nova/blob/master/nova/virt/netutils.py#L168\n\nso in terms of testign we can write a generic tempest test that will create a nova instnace with trunk prots providing a user-data script that will use the information to confiture the vlan subports\n\nthen the tempest test can ssh into the vm and assert the prot are create.\n\nWe could do a lighter-weight test in nova directly or in tempst to assert that the data we expect to exist it present without actully using cloud init to confugre the netowrking. that woudl provide a greater degree of indepence form the operating system and first boot init system.","commit_id":"004f9c0fc07b0b167d08497dc8b3fadebe2329ea"},{"author":{"_account_id":5890,"name":"Doug Goldstein","email":"cardoe@cardoe.com","username":"cardoe"},"change_message_id":"3ac9b5be789a4cb82c8179b9ad9d585da5c9789a","unresolved":true,"context_lines":[{"line_number":43,"context_line":"It\u0027s particularly useful with Baremetal instances. For example, a baremetal"},{"line_number":44,"context_line":"server with a single physical port may be connected to multiple vlan networks."},{"line_number":45,"context_line":"Once the BM server is booted up with Ironic, its networking interfaces can be"},{"line_number":46,"context_line":"automatically configured and brought up."},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"In some NFV use cases that understands and configures vlan subinterfaces in"},{"line_number":49,"context_line":"their own way, automatic configuration of vlan subinterfaces through cloud-init"}],"source_content_type":"text/x-rst","patch_set":10,"id":"a162b0b5_a7f53d88","line":46,"in_reply_to":"39800e90_04cb11cd","updated":"2025-06-03 20:14:25.000000000","message":"I believe Vasyl had a tempest test for this already.","commit_id":"004f9c0fc07b0b167d08497dc8b3fadebe2329ea"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"290e5757559372ce56ec524d88234a45ddf1c708","unresolved":true,"context_lines":[{"line_number":43,"context_line":"It\u0027s particularly useful with Baremetal instances. For example, a baremetal"},{"line_number":44,"context_line":"server with a single physical port may be connected to multiple vlan networks."},{"line_number":45,"context_line":"Once the BM server is booted up with Ironic, its networking interfaces can be"},{"line_number":46,"context_line":"automatically configured and brought up."},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"In some NFV use cases that understands and configures vlan subinterfaces in"},{"line_number":49,"context_line":"their own way, automatic configuration of vlan subinterfaces through cloud-init"}],"source_content_type":"text/x-rst","patch_set":10,"id":"9c8c8ecb_057bdbc3","line":46,"in_reply_to":"a162b0b5_a7f53d88","updated":"2025-06-03 20:36:27.000000000","message":"ack if they exist we just need to get those merged in tempest and enabled in one of our ci jobs and we shoudl be good on that front.","commit_id":"004f9c0fc07b0b167d08497dc8b3fadebe2329ea"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"455695afafdc95411d62163fd22dcdf9c6d108e5","unresolved":true,"context_lines":[{"line_number":63,"context_line":"neutron ports, and to create VIFs based on them."},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"Note that following the existing vlan trunking implementation, these trunk"},{"line_number":66,"context_line":"subport VIFs will not be exposed in the instance\u0027s domail XML as networking"},{"line_number":67,"context_line":"interfaces. They are not members of the network info cache. And therefore they"},{"line_number":68,"context_line":"are not processed by the virt driver."},{"line_number":69,"context_line":""}],"source_content_type":"text/x-rst","patch_set":10,"id":"bde6a610_22a66e1b","line":66,"range":{"start_line":66,"start_character":51,"end_line":66,"end_character":57},"updated":"2025-08-05 15:55:07.000000000","message":"\"domain\" ?","commit_id":"004f9c0fc07b0b167d08497dc8b3fadebe2329ea"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"af094520fa0a180592c316b1fdf42b3633b81d33","unresolved":true,"context_lines":[{"line_number":81,"context_line":".. code-block:: json"},{"line_number":82,"context_line":""},{"line_number":83,"context_line":"  {"},{"line_number":84,"context_line":"    \"networks\": ["},{"line_number":85,"context_line":"      {"},{"line_number":86,"context_line":"        \"network_id\": \"9f1c0636-ba1f-42fd-a741-a2d0194704b5\","},{"line_number":87,"context_line":"        \"link\": \"tapad7e2436-35\","},{"line_number":88,"context_line":"        \"type\": \"ipv4_dhcp\","},{"line_number":89,"context_line":"        \"id\": \"network0\""},{"line_number":90,"context_line":"      },"},{"line_number":91,"context_line":"      {"},{"line_number":92,"context_line":"        \"network_id\": \"ea077fad-e52a-4fa1-952f-06110e436d7d\","},{"line_number":93,"context_line":"        \"link\": \"tap143d8632-e3\","},{"line_number":94,"context_line":"        \"type\": \"ipv4_dhcp\","},{"line_number":95,"context_line":"        \"id\": \"network1\""},{"line_number":96,"context_line":"      },"},{"line_number":97,"context_line":"      {"},{"line_number":98,"context_line":"        \"network_id\": \"bbd6f034-a600-46c1-b22f-0502697e179e\","},{"line_number":99,"context_line":"        \"link\": \"tap4bc16b9c-e2\","},{"line_number":100,"context_line":"        \"type\": \"ipv4_dhcp\","},{"line_number":101,"context_line":"        \"id\": \"network2\""},{"line_number":102,"context_line":"      }"},{"line_number":103,"context_line":"    ],"},{"line_number":104,"context_line":"    \"links\": ["},{"line_number":105,"context_line":"      {"},{"line_number":106,"context_line":"        \"ethernet_mac_address\": \"fa:16:3e:54:2e:51\","}],"source_content_type":"text/x-rst","patch_set":10,"id":"214a512d_365f9a7f","line":103,"range":{"start_line":84,"start_character":1,"end_line":103,"end_character":6},"updated":"2025-06-12 17:59:28.000000000","message":"as an assied.\n\nneutron asked use not to includ MTU infromation for networks when dhcp is enabeld but it is include below.\n\ni was talking to julia about a related ironic mtu isseu on irc.\nand if we want to alwasy include it in the baremental case i.e. vnic-type\u003dbaremetal.\n\nor if we shoud only include the mtu info when there is no dhcp service for the network\n\nim not really sure but just wanted to capture that.","commit_id":"004f9c0fc07b0b167d08497dc8b3fadebe2329ea"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"08c22f4152610591e8c6c6594bd2e2ee792cb6f4","unresolved":true,"context_lines":[{"line_number":115,"context_line":"        \"vlan_link\": \"tapad7e2436-35\","},{"line_number":116,"context_line":"        \"vlan_id\": 3279,"},{"line_number":117,"context_line":"        \"type\": \"vlan\","},{"line_number":118,"context_line":"        \"id\": \"tap143d8632-e3\","},{"line_number":119,"context_line":"        \"vlan_mac_address\": \"fa:16:3e:8e:b4:99\""},{"line_number":120,"context_line":"      },"},{"line_number":121,"context_line":"      {"}],"source_content_type":"text/x-rst","patch_set":10,"id":"4324472d_66d6f5fe","line":118,"updated":"2025-05-15 18:39:54.000000000","message":"these look like the host level interface names.\n\nim not sure that should be exposed in the metadta\n\nit may be better to just use the neutron port uuid as the id\n\nis there a reason that your usign this name?\n\nit depend on the virt driver but hostirclaly a truncation fo the uuid with a prefix\nso that on linux the tap names dont exceed the max interface name length\n\nweither your using libvirt or vmware or ironic, that name will not be useful in the guest as it wont show up in the output of ip link for example\n\nthe mac adress will likely need to be used to identify the phsical interface\n\nthen form there you can fid the related info for the sub ports.\n\nThat linkage i think, would be better expressed usign the full uuid\nunless there is a reason (a cloud init requirement?) for not doing that.\n\nin a vm or phsyical host the interface names are likely goign to be some stable name like thsoe generate by systemd or biosdevnames.","commit_id":"004f9c0fc07b0b167d08497dc8b3fadebe2329ea"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"455695afafdc95411d62163fd22dcdf9c6d108e5","unresolved":true,"context_lines":[{"line_number":115,"context_line":"        \"vlan_link\": \"tapad7e2436-35\","},{"line_number":116,"context_line":"        \"vlan_id\": 3279,"},{"line_number":117,"context_line":"        \"type\": \"vlan\","},{"line_number":118,"context_line":"        \"id\": \"tap143d8632-e3\","},{"line_number":119,"context_line":"        \"vlan_mac_address\": \"fa:16:3e:8e:b4:99\""},{"line_number":120,"context_line":"      },"},{"line_number":121,"context_line":"      {"}],"source_content_type":"text/x-rst","patch_set":10,"id":"5ec537b4_961e2102","line":118,"in_reply_to":"141ad1d6_4fb39d9c","updated":"2025-08-05 15:55:07.000000000","message":"Where did this land? Using the host\u0027s interface name is definitely not something I think we should be exposing to the guest. I also am not sure what the point of `vlan_link` is, other than exposing host details (and they seem identical to the `id` in these cases.","commit_id":"004f9c0fc07b0b167d08497dc8b3fadebe2329ea"},{"author":{"_account_id":5890,"name":"Doug Goldstein","email":"cardoe@cardoe.com","username":"cardoe"},"change_message_id":"79f98be1bd1c969a11c759fa1599713861356ea9","unresolved":true,"context_lines":[{"line_number":115,"context_line":"        \"vlan_link\": \"tapad7e2436-35\","},{"line_number":116,"context_line":"        \"vlan_id\": 3279,"},{"line_number":117,"context_line":"        \"type\": \"vlan\","},{"line_number":118,"context_line":"        \"id\": \"tap143d8632-e3\","},{"line_number":119,"context_line":"        \"vlan_mac_address\": \"fa:16:3e:8e:b4:99\""},{"line_number":120,"context_line":"      },"},{"line_number":121,"context_line":"      {"}],"source_content_type":"text/x-rst","patch_set":10,"id":"eb4c0938_96fe411c","line":118,"in_reply_to":"2597b671_c7b40158","updated":"2025-08-06 03:09:34.000000000","message":"@dms@danplanet.com I agree with you. The cloud-init folks agree with you. https://github.com/canonical/cloud-init/blob/2b7d9636b303ad212d1a446ab59636c5cd75dd4a/cloudinit/sources/helpers/openstack.py#L599-L602\n\nUnfortunately that\u0027s not what nova does today or has been doing today. Here\u0027s what it does today... https://opendev.org/openstack/nova/src/commit/4100d4d8fbaa6416ea37d8cb3e64003f40ee1eb1/nova/virt/netutils.py#L252-L254 It\u0027s been exposing the host\u0027s interface name. I can trace cloud-init\u0027s complaint back at least 9 years in their code and the hope that OpenStack would expose a \u0027name\u0027 field as a hint. I can trace the implementation in nova like this back 10 years to https://github.com/openstack/nova/commit/22a0970f1898c282fe9e30e9f5ee24410831659b\n\n\u0027vlan_link\u0027 isn\u0027t the same thing as the \u0027id\u0027, it\u0027s a distinct value. Every interface needs to have an unique \u0027id\u0027 so that other parts of the networking config can refer to it. The value of \u0027vlan_link\u0027 needs to be the interface \u0027id\u0027 on which this VLAN will ride on top of. That can be a bond or a physical interface. Then \u0027id\u0027 identifies this VLAN interface to other things.","commit_id":"004f9c0fc07b0b167d08497dc8b3fadebe2329ea"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"c39dc35ee31b091bf4a8bb9df1184344faf2ecb6","unresolved":true,"context_lines":[{"line_number":115,"context_line":"        \"vlan_link\": \"tapad7e2436-35\","},{"line_number":116,"context_line":"        \"vlan_id\": 3279,"},{"line_number":117,"context_line":"        \"type\": \"vlan\","},{"line_number":118,"context_line":"        \"id\": \"tap143d8632-e3\","},{"line_number":119,"context_line":"        \"vlan_mac_address\": \"fa:16:3e:8e:b4:99\""},{"line_number":120,"context_line":"      },"},{"line_number":121,"context_line":"      {"}],"source_content_type":"text/x-rst","patch_set":10,"id":"141ad1d6_4fb39d9c","line":118,"in_reply_to":"36e3a616_d4f55ca3","updated":"2025-06-12 18:21:15.000000000","message":"i was not even aware we published that\n\nin nova we have versiond metadtats\n\nhttps://github.com/openstack/nova/blob/master/nova/api/metadata/base.py#L45-L87\n\nand the conet of network_matadata is allowed ot change if we create a new version but we stil need to rpovide it in the old format in the olde version paths\n\nhttps://github.com/openstack/nova/blob/master/doc/api_schemas/network_data.json\n\ncan evovle.\n\nthe schem for this did nto even exist until 2020\nhttps://github.com/openstack/nova/commit/69ee625a663b7877e67c938ed0d6dbca9c8fa5e7\n\nso there was a long period of time wehre it did not have an offical scphema at all.\n\nso we could add a name filed that was a short name and make id the uuid but that is  a bigger change then i think you orgianlly neeeded for your usecase.","commit_id":"004f9c0fc07b0b167d08497dc8b3fadebe2329ea"},{"author":{"_account_id":5890,"name":"Doug Goldstein","email":"cardoe@cardoe.com","username":"cardoe"},"change_message_id":"3ac9b5be789a4cb82c8179b9ad9d585da5c9789a","unresolved":true,"context_lines":[{"line_number":115,"context_line":"        \"vlan_link\": \"tapad7e2436-35\","},{"line_number":116,"context_line":"        \"vlan_id\": 3279,"},{"line_number":117,"context_line":"        \"type\": \"vlan\","},{"line_number":118,"context_line":"        \"id\": \"tap143d8632-e3\","},{"line_number":119,"context_line":"        \"vlan_mac_address\": \"fa:16:3e:8e:b4:99\""},{"line_number":120,"context_line":"      },"},{"line_number":121,"context_line":"      {"}],"source_content_type":"text/x-rst","patch_set":10,"id":"ec2a4d67_29454235","line":118,"in_reply_to":"4324472d_66d6f5fe","updated":"2025-06-03 20:14:25.000000000","message":"15 character maximum enforced by the Linux kernel which is enforced by the cloud-init jsonschema.","commit_id":"004f9c0fc07b0b167d08497dc8b3fadebe2329ea"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"a29cc1af0ee7a2f88578ff26b9dc43d355a85f98","unresolved":true,"context_lines":[{"line_number":115,"context_line":"        \"vlan_link\": \"tapad7e2436-35\","},{"line_number":116,"context_line":"        \"vlan_id\": 3279,"},{"line_number":117,"context_line":"        \"type\": \"vlan\","},{"line_number":118,"context_line":"        \"id\": \"tap143d8632-e3\","},{"line_number":119,"context_line":"        \"vlan_mac_address\": \"fa:16:3e:8e:b4:99\""},{"line_number":120,"context_line":"      },"},{"line_number":121,"context_line":"      {"}],"source_content_type":"text/x-rst","patch_set":10,"id":"2597b671_c7b40158","line":118,"in_reply_to":"5ec537b4_961e2102","updated":"2025-08-05 17:34:20.000000000","message":"its something that neutron already shows in the binding:details field however tha tmay be restricted to admin.\n\ni woudl prefer to implemnt the same truncation logic to generate valid names although we cant really knwo waht the name will actully be for the parent interfance in the guest so thsi si really best effort.\n\ntap143d8632-e3 is not somethign that will existin the guest espeiclly if that guest is  ironic...","commit_id":"004f9c0fc07b0b167d08497dc8b3fadebe2329ea"},{"author":{"_account_id":5890,"name":"Doug Goldstein","email":"cardoe@cardoe.com","username":"cardoe"},"change_message_id":"acee3d3d82d302e661c16ffc3ad1666020854a35","unresolved":true,"context_lines":[{"line_number":115,"context_line":"        \"vlan_link\": \"tapad7e2436-35\","},{"line_number":116,"context_line":"        \"vlan_id\": 3279,"},{"line_number":117,"context_line":"        \"type\": \"vlan\","},{"line_number":118,"context_line":"        \"id\": \"tap143d8632-e3\","},{"line_number":119,"context_line":"        \"vlan_mac_address\": \"fa:16:3e:8e:b4:99\""},{"line_number":120,"context_line":"      },"},{"line_number":121,"context_line":"      {"}],"source_content_type":"text/x-rst","patch_set":10,"id":"36e3a616_d4f55ca3","line":118,"in_reply_to":"d367bcda_8bfdea6f","updated":"2025-06-06 16:24:24.000000000","message":"So technically the ID shouldn\u0027t be that. It really should be something we use like even a UUID. But the nova scheme https://docs.openstack.org/nova/latest/_downloads/9119ca7ac90aa2990e762c08baea3a36/network_data.json makes an example of it being \"eth0\" so tools like cloud-init complain about that in their code base... https://github.com/canonical/cloud-init/blob/2b7d9636b303ad212d1a446ab59636c5cd75dd4a/cloudinit/sources/helpers/openstack.py#L599 but then unfortunately use it... https://github.com/canonical/cloud-init/blob/2b7d9636b303ad212d1a446ab59636c5cd75dd4a/cloudinit/sources/helpers/openstack.py#L738-L740\n\nwhich means that if the interface CAN have a VLAN on it, then it MUST conform to 15 characters.","commit_id":"004f9c0fc07b0b167d08497dc8b3fadebe2329ea"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"290e5757559372ce56ec524d88234a45ddf1c708","unresolved":true,"context_lines":[{"line_number":115,"context_line":"        \"vlan_link\": \"tapad7e2436-35\","},{"line_number":116,"context_line":"        \"vlan_id\": 3279,"},{"line_number":117,"context_line":"        \"type\": \"vlan\","},{"line_number":118,"context_line":"        \"id\": \"tap143d8632-e3\","},{"line_number":119,"context_line":"        \"vlan_mac_address\": \"fa:16:3e:8e:b4:99\""},{"line_number":120,"context_line":"      },"},{"line_number":121,"context_line":"      {"}],"source_content_type":"text/x-rst","patch_set":10,"id":"d367bcda_8bfdea6f","line":118,"in_reply_to":"ec2a4d67_29454235","updated":"2025-06-03 20:36:27.000000000","message":"ok so its set this way for the same reason we truncat in neutron today.\nok that measke sense.\nit would be nice to add a note to the spec to capture this\n```\n\n.. NOTE::\n\n   the id filed is restrict to 15 charaters as this is requried by\n   cloud init which imposes the same 15 charter limit as the linux kernel\n   as such we uses the truncated naems retruend by neutron as the id even\n   though the interfaces in the guest will not be visable with those names.\n\n```","commit_id":"004f9c0fc07b0b167d08497dc8b3fadebe2329ea"}],"specs/2026.2/approved/expose-vlan-trunking.rst":[{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"eba40492e120f4bad81e7b8fd7d268dcdae9c706","unresolved":false,"context_lines":[{"line_number":84,"context_line":"    \"networks\": ["},{"line_number":85,"context_line":"      {"},{"line_number":86,"context_line":"        \"network_id\": \"9f1c0636-ba1f-42fd-a741-a2d0194704b5\","},{"line_number":87,"context_line":"        \"link\": \"tapad7e2436-35\","},{"line_number":88,"context_line":"        \"type\": \"ipv4_dhcp\","},{"line_number":89,"context_line":"        \"id\": \"network0\""},{"line_number":90,"context_line":"      },"}],"source_content_type":"text/x-rst","patch_set":12,"id":"afddcfe7_4c216070","line":87,"range":{"start_line":87,"start_character":17,"end_line":87,"end_character":31},"updated":"2026-03-09 14:31:37.000000000","message":"the are the host netdev names generated by neutron adn are what we would provide today\nwe noted that changing these to be the uuid or something usable by the guest is out of scope.\n\ncurrently thse are used with cloud-init i believe ot rename the interface and need to be valid linux netdev names which these are.\n\nthis is i understand correctly will reuslt in the the guest interface and host interfaces happen to have the saem name. at least if its a linux guest os.","commit_id":"f57a8922be6bd68a2d8de57c0a5fb9ea1d8ff161"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"eba40492e120f4bad81e7b8fd7d268dcdae9c706","unresolved":true,"context_lines":[{"line_number":105,"context_line":"      {"},{"line_number":106,"context_line":"        \"ethernet_mac_address\": \"fa:16:3e:54:2e:51\","},{"line_number":107,"context_line":"        \"mtu\": 1500,"},{"line_number":108,"context_line":"        \"type\": \"ovs\","},{"line_number":109,"context_line":"        \"id\": \"tapad7e2436-35\","},{"line_number":110,"context_line":"        \"vif_id\": \"ad7e2436-3583-4ae3-844b-06e6b0adaf04\""},{"line_number":111,"context_line":"      },"}],"source_content_type":"text/x-rst","patch_set":12,"id":"4803ea23_2e14f822","line":108,"updated":"2026-03-09 14:31:37.000000000","message":"what is type used for in this case.\n\nwill this force ovs to be used instead of linux bridge in the guest?\nor is this just passing thtouhg the VIF_TYPE form the neutron port.\n\ni feel like this is incorerct or should be configurable in some way?\n\nperhaps this should be type\u003dphy or taking form a value set in the vif_binding details or neutron port.","commit_id":"f57a8922be6bd68a2d8de57c0a5fb9ea1d8ff161"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"4d0c671de9b37cc303cbea780988ea1fca27a53d","unresolved":true,"context_lines":[{"line_number":105,"context_line":"      {"},{"line_number":106,"context_line":"        \"ethernet_mac_address\": \"fa:16:3e:54:2e:51\","},{"line_number":107,"context_line":"        \"mtu\": 1500,"},{"line_number":108,"context_line":"        \"type\": \"ovs\","},{"line_number":109,"context_line":"        \"id\": \"tapad7e2436-35\","},{"line_number":110,"context_line":"        \"vif_id\": \"ad7e2436-3583-4ae3-844b-06e6b0adaf04\""},{"line_number":111,"context_line":"      },"}],"source_content_type":"text/x-rst","patch_set":12,"id":"1925de64_88acdefb","line":108,"in_reply_to":"4803ea23_2e14f822","updated":"2026-03-09 15:39:51.000000000","message":"https://docs.openstack.org/nova/latest/_downloads/9119ca7ac90aa2990e762c08baea3a36/network_data.json\n\nso the scema kid of clarify this\n\nlinks is an arryay wehre each item is on of l2_link l2_bond and l2_vlan\n\n```\n    \"links\": {\n      \"$id\": \"#/properties/links\",\n      \"type\": \"array\",\n      \"title\": \"L2 interfaces settings\",\n      \"items\": {\n        \"$id\": \"#/properties/links/items\",\n        \"oneOf\": [\n          {\n            \"$ref\": \"#/definitions/l2_link\"\n          },\n          {\n            \"$ref\": \"#/definitions/l2_bond\"\n          },\n          {\n            \"$ref\": \"#/definitions/l2_vlan\"\n          }\n        ]\n      }\n    },\n```\n\nwhere l2_link is defiend by \n\n```\n  \"l2_link\": {\n      \"$id\": \"#/definitions/l2_link\",\n      \"type\": \"object\",\n      \"title\": \"L2 interface configuration settings\",\n      \"required\": [\n        \"ethernet_mac_address\",\n        \"id\",\n        \"type\"\n      ],\n      \"properties\": {\n        \"id\": {\n          \"$ref\": \"#/definitions/l2_id\"\n        },\n        \"ethernet_mac_address\": {\n          \"$ref\": \"#/definitions/l2_address\"\n        },\n        \"mtu\": {\n          \"$ref\": \"#/definitions/l2_mtu\"\n        },\n        \"type\": {\n          \"$id\": \"#/definitions/l2_link/properties/type\",\n          \"type\": \"string\",\n          \"enum\": [\n            \"bridge\",\n            \"dvs\",\n            \"hw_veb\",\n            \"hyperv\",\n            \"ovs\",\n            \"tap\",\n            \"vhostuser\",\n            \"vif\",\n            \"phy\"\n          ],\n          \"title\": \"Interface type\",\n          \"examples\": [\n            \"bridge\"\n          ]\n        },\n        \"vif_id\": {\n          \"$ref\": \"#/definitions/l2_vif_id\"\n        }\n      }\n    },\n```\n\nand  l2 vlan is defiend by \n```\n \"l2_vlan\": {\n      \"$id\": \"#/definitions/l2_vlan\",\n      \"type\": \"object\",\n      \"title\": \"L2 VLAN interface configuration settings\",\n      \"required\": [\n        \"vlan_mac_address\",\n        \"id\",\n        \"type\",\n        \"vlan_link\",\n        \"vlan_id\"\n      ],\n      \"properties\": {\n        \"id\": {\n          \"$ref\": \"#/definitions/l2_id\"\n        },\n        \"vlan_mac_address\": {\n          \"$ref\": \"#/definitions/l2_address\"\n        },\n        \"mtu\": {\n          \"$ref\": \"#/definitions/l2_mtu\"\n        },\n        \"type\": {\n          \"$id\": \"#/definitions/l2_vlan/properties/type\",\n          \"type\": \"string\",\n          \"enum\": [\n            \"vlan\"\n          ],\n          \"title\": \"VLAN interface type\",\n          \"examples\": [\n            \"vlan\"\n          ]\n        },\n        \"vif_id\": {\n          \"$ref\": \"#/definitions/l2_vif_id\"\n        },\n        \"vlan_id\": {\n          \"$id\": \"#/definitions/l2_vlan/properties/vlan_id\",\n          \"type\": \"integer\",\n          \"title\": \"VLAN ID\"\n        },\n        \"vlan_link\": {\n          \"$id\": \"#/definitions/l2_vlan/properties/vlan_link\",\n          \"type\": \"string\",\n          \"title\": \"VLAN link name\"\n        }\n      }\n    },\n```\n\ntype can be one of \n\n \"enum\": [\n            \"bridge\",\n            \"dvs\",\n            \"hw_veb\",\n            \"hyperv\",\n            \"ovs\",\n            \"tap\",\n            \"vhostuser\",\n            \"vif\",\n            \"phy\"\n          ],\n          \nlooking at the allowed values these look to map to the neutron vif_types today\nalthough it not a perfixc mappting to that\n\nhttps://github.com/openstack/neutron-lib/blob/master/neutron_lib/api/definitions/portbindings.py#L81-L116\n\nthey are also not a perfect mapping to nvas constats for the same\n\nhttps://github.com/openstack/nova/blob/master/nova/network/model.py#L26-L47\n\nlooking at that i dont see how this coudl be used to make descsion form the guest regardign howe to create teh vlans its just a placeholder value\n\ni belive vif or phy woudl be more correct but we coudl defer this to the implementation.\n\n\nwhat is imporant is this link carries the neutron port mac of the parent port\n\n\"ethernet_mac_address\": \"fa:16:3e:54:2e:51\",\n\nand the id value is used to corralate the link with the Vlan subport via the vlan_link element\n\nprovided those match that should be sufficnet.","commit_id":"f57a8922be6bd68a2d8de57c0a5fb9ea1d8ff161"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"eba40492e120f4bad81e7b8fd7d268dcdae9c706","unresolved":false,"context_lines":[{"line_number":106,"context_line":"        \"ethernet_mac_address\": \"fa:16:3e:54:2e:51\","},{"line_number":107,"context_line":"        \"mtu\": 1500,"},{"line_number":108,"context_line":"        \"type\": \"ovs\","},{"line_number":109,"context_line":"        \"id\": \"tapad7e2436-35\","},{"line_number":110,"context_line":"        \"vif_id\": \"ad7e2436-3583-4ae3-844b-06e6b0adaf04\""},{"line_number":111,"context_line":"      },"},{"line_number":112,"context_line":"      {"}],"source_content_type":"text/x-rst","patch_set":12,"id":"dd524192_1bddf42c","line":109,"range":{"start_line":109,"start_character":8,"end_line":109,"end_character":30},"updated":"2026-03-09 14:31:37.000000000","message":"my comment on the network above might acctuly be more correct on the link id field\n\nagain changing this is out of scope of this spec at this time but\ni will note that ironci now uses diffent values when extendign this information\nwith bond port related to port groups\n\nhttps://review.opendev.org/c/openstack/ironic/+/946677\n\n\nit uses type\u003dphy for the physical nic\nand the ironic port uuid for the id fiels\nhttps://review.opendev.org/c/openstack/ironic/+/946677/29/ironic/conductor/configdrive_utils.py#294\n\n\ni think when the vnic type fo the parent port on the trunk port is vnic-type\u003dbaremetal it may make sense to aling the generation to what ironic does today for bond port but that is somethign we can discuss speratly.\n\n\nit would be nice not to end up with duplicate info but it would be equally nice if neutron natively support bonds/port groups so that ironic didn\u0027t have to do that itself.\n\nportgroups and therefor bonded port are out side the scope fo this spec.\n\nthe \"ethernet_mac_address\": \"fa:16:3e:54:2e:51\", is how guest operating systems actully correalte the metadata with the prot not the name so the id just needs to be self consitent and a a valid linux netdev name and the host tap value meets both requirements as it deterministicly generated form the uuid and truncated to fit the max linux netdev name.","commit_id":"f57a8922be6bd68a2d8de57c0a5fb9ea1d8ff161"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"eba40492e120f4bad81e7b8fd7d268dcdae9c706","unresolved":true,"context_lines":[{"line_number":228,"context_line":"Testing"},{"line_number":229,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":230,"context_line":""},{"line_number":231,"context_line":"Write tempest tests to check subport connectivity."},{"line_number":232,"context_line":""},{"line_number":233,"context_line":"Documentation Impact"},{"line_number":234,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":12,"id":"32cb3b93_1bcd7036","line":231,"updated":"2026-03-09 14:31:37.000000000","message":"nova-live-migration\nhttps://github.com/openstack/nova/blob/master/.zuul.yaml#L130\nis configured for trunk testing with ovn so we could run this there","commit_id":"f57a8922be6bd68a2d8de57c0a5fb9ea1d8ff161"}],"specs/pike/approved/expose-vlan-trunking.rst":[{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"0a2ade2e5d180dbb5c07569fd505f100a787ea52","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"df140735_77dbe77c","updated":"2017-06-07 16:49:37.000000000","message":"given that we are passed the spec approval deadline for pike this should be moved to queens folder.","commit_id":"070231122988a4126d06513f5a4d827d98afc68d"},{"author":{"_account_id":6685,"name":"Baodong (Robert) Li","email":"baoli@cisco.com","username":"baoli"},"change_message_id":"09fcb51a57b54344de9a6201b469dc7af8c139a2","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"df140735_7293f5a4","in_reply_to":"df140735_77dbe77c","updated":"2017-06-07 17:06:49.000000000","message":"sure","commit_id":"070231122988a4126d06513f5a4d827d98afc68d"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"0a2ade2e5d180dbb5c07569fd505f100a787ea52","unresolved":false,"context_lines":[{"line_number":25,"context_line":"associated with trunk ports are not exposed to the guest instances. After an"},{"line_number":26,"context_line":"instance is booted up, one needs to use other means to configure vlan"},{"line_number":27,"context_line":"subinterfaces in the instance. In some use cases (e.g. NFV), automatic"},{"line_number":28,"context_line":"configuration of vlan subinterfaces through cloud-init is not required or"},{"line_number":29,"context_line":"needed."},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"Note that subports may be added/removed after boot. This proposal won\u0027t attempt"},{"line_number":32,"context_line":"to address the issue of network reconfiguration in the nova instance due to"}],"source_content_type":"text/x-rst","patch_set":3,"id":"df140735_7749a730","line":29,"range":{"start_line":28,"start_character":62,"end_line":29,"end_character":7},"updated":"2017-06-07 16:49:37.000000000","message":"actually i would go one step further and say that in some case such as a vnf that understnad and process vlan internally that subport creation must not be done.","commit_id":"070231122988a4126d06513f5a4d827d98afc68d"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"44e7ac276a847b889055912c47b2d1d1f2d3cc23","unresolved":false,"context_lines":[{"line_number":25,"context_line":"associated with trunk ports are not exposed to the guest instances. After an"},{"line_number":26,"context_line":"instance is booted up, one needs to use other means to configure vlan"},{"line_number":27,"context_line":"subinterfaces in the instance. In some use cases (e.g. NFV), automatic"},{"line_number":28,"context_line":"configuration of vlan subinterfaces through cloud-init is not required or"},{"line_number":29,"context_line":"needed."},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"Note that subports may be added/removed after boot. This proposal won\u0027t attempt"},{"line_number":32,"context_line":"to address the issue of network reconfiguration in the nova instance due to"}],"source_content_type":"text/x-rst","patch_set":3,"id":"df140735_122dd945","line":29,"range":{"start_line":28,"start_character":62,"end_line":29,"end_character":7},"in_reply_to":"df140735_72aad5d2","updated":"2017-06-07 17:13:45.000000000","message":"yes it usally is so that it can be used to inject the ssh keys.","commit_id":"070231122988a4126d06513f5a4d827d98afc68d"},{"author":{"_account_id":6685,"name":"Baodong (Robert) Li","email":"baoli@cisco.com","username":"baoli"},"change_message_id":"09fcb51a57b54344de9a6201b469dc7af8c139a2","unresolved":false,"context_lines":[{"line_number":25,"context_line":"associated with trunk ports are not exposed to the guest instances. After an"},{"line_number":26,"context_line":"instance is booted up, one needs to use other means to configure vlan"},{"line_number":27,"context_line":"subinterfaces in the instance. In some use cases (e.g. NFV), automatic"},{"line_number":28,"context_line":"configuration of vlan subinterfaces through cloud-init is not required or"},{"line_number":29,"context_line":"needed."},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"Note that subports may be added/removed after boot. This proposal won\u0027t attempt"},{"line_number":32,"context_line":"to address the issue of network reconfiguration in the nova instance due to"}],"source_content_type":"text/x-rst","patch_set":3,"id":"df140735_72aad5d2","line":29,"range":{"start_line":28,"start_character":62,"end_line":29,"end_character":7},"in_reply_to":"df140735_7749a730","updated":"2017-06-07 17:06:49.000000000","message":"With this proposal, network_data.json is populated with vlan sub interfaces pertaining to trunk ports. Currently an image built with cloud-init (or glean) service will process the file and configure network interfaces. In the VNF case, is the vnf image enabled with either cloud-init or glean?","commit_id":"070231122988a4126d06513f5a4d827d98afc68d"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"0a2ade2e5d180dbb5c07569fd505f100a787ea52","unresolved":false,"context_lines":[{"line_number":62,"context_line":"created after them and added into the network_info cache."},{"line_number":63,"context_line":""},{"line_number":64,"context_line":"Note that these trunk subport VIFs will not be exposed in the instance\u0027s domail"},{"line_number":65,"context_line":"XML as networking interfaces. To do that, a special VIF type \u0027trunk_subport\u0027 is"},{"line_number":66,"context_line":"used for these VIF objects, whose plug/unplug methods will be no-op."},{"line_number":67,"context_line":""},{"line_number":68,"context_line":"A couple of new fields will be added in the VIF object as meta fields."}],"source_content_type":"text/x-rst","patch_set":3,"id":"df140735_f72c974b","line":65,"range":{"start_line":65,"start_character":61,"end_line":65,"end_character":75},"updated":"2017-06-07 16:49:37.000000000","message":"currently we do not have the concept of nested vif types in os-vif to model this so we will need to consider how best to model this.","commit_id":"070231122988a4126d06513f5a4d827d98afc68d"},{"author":{"_account_id":6685,"name":"Baodong (Robert) Li","email":"baoli@cisco.com","username":"baoli"},"change_message_id":"09fcb51a57b54344de9a6201b469dc7af8c139a2","unresolved":false,"context_lines":[{"line_number":62,"context_line":"created after them and added into the network_info cache."},{"line_number":63,"context_line":""},{"line_number":64,"context_line":"Note that these trunk subport VIFs will not be exposed in the instance\u0027s domail"},{"line_number":65,"context_line":"XML as networking interfaces. To do that, a special VIF type \u0027trunk_subport\u0027 is"},{"line_number":66,"context_line":"used for these VIF objects, whose plug/unplug methods will be no-op."},{"line_number":67,"context_line":""},{"line_number":68,"context_line":"A couple of new fields will be added in the VIF object as meta fields."}],"source_content_type":"text/x-rst","patch_set":3,"id":"df140735_f7c5b70b","line":65,"range":{"start_line":65,"start_character":61,"end_line":65,"end_character":75},"in_reply_to":"df140735_f72c974b","updated":"2017-06-07 17:06:49.000000000","message":"Oh, I am not planning to use os-vif initially.","commit_id":"070231122988a4126d06513f5a4d827d98afc68d"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"44e7ac276a847b889055912c47b2d1d1f2d3cc23","unresolved":false,"context_lines":[{"line_number":62,"context_line":"created after them and added into the network_info cache."},{"line_number":63,"context_line":""},{"line_number":64,"context_line":"Note that these trunk subport VIFs will not be exposed in the instance\u0027s domail"},{"line_number":65,"context_line":"XML as networking interfaces. To do that, a special VIF type \u0027trunk_subport\u0027 is"},{"line_number":66,"context_line":"used for these VIF objects, whose plug/unplug methods will be no-op."},{"line_number":67,"context_line":""},{"line_number":68,"context_line":"A couple of new fields will be added in the VIF object as meta fields."}],"source_content_type":"text/x-rst","patch_set":3,"id":"df140735_92e5690d","line":65,"range":{"start_line":65,"start_character":61,"end_line":65,"end_character":75},"in_reply_to":"df140735_f7c5b70b","updated":"2017-06-07 17:13:45.000000000","message":"well i dont think we should add any new vif types that are not moddeled by os-vif going forward so i think this need to be retaught in that context","commit_id":"070231122988a4126d06513f5a4d827d98afc68d"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"0a2ade2e5d180dbb5c07569fd505f100a787ea52","unresolved":false,"context_lines":[{"line_number":63,"context_line":""},{"line_number":64,"context_line":"Note that these trunk subport VIFs will not be exposed in the instance\u0027s domail"},{"line_number":65,"context_line":"XML as networking interfaces. To do that, a special VIF type \u0027trunk_subport\u0027 is"},{"line_number":66,"context_line":"used for these VIF objects, whose plug/unplug methods will be no-op."},{"line_number":67,"context_line":""},{"line_number":68,"context_line":"A couple of new fields will be added in the VIF object as meta fields."},{"line_number":69,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"df140735_17ecabf1","line":66,"range":{"start_line":66,"start_character":27,"end_line":66,"end_character":68},"updated":"2017-06-07 16:49:37.000000000","message":"vif objects do not have plug/unplug methods the plugins do.\nvif objects are just abstract data models of interfaces which are instantiated by the concrete plugins.","commit_id":"070231122988a4126d06513f5a4d827d98afc68d"},{"author":{"_account_id":6685,"name":"Baodong (Robert) Li","email":"baoli@cisco.com","username":"baoli"},"change_message_id":"09fcb51a57b54344de9a6201b469dc7af8c139a2","unresolved":false,"context_lines":[{"line_number":63,"context_line":""},{"line_number":64,"context_line":"Note that these trunk subport VIFs will not be exposed in the instance\u0027s domail"},{"line_number":65,"context_line":"XML as networking interfaces. To do that, a special VIF type \u0027trunk_subport\u0027 is"},{"line_number":66,"context_line":"used for these VIF objects, whose plug/unplug methods will be no-op."},{"line_number":67,"context_line":""},{"line_number":68,"context_line":"A couple of new fields will be added in the VIF object as meta fields."},{"line_number":69,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"df140735_9749db8c","line":66,"range":{"start_line":66,"start_character":27,"end_line":66,"end_character":68},"in_reply_to":"df140735_17ecabf1","updated":"2017-06-07 17:06:49.000000000","message":"I am actually referring to the VIF class https://github.com/openstack/nova/blob/master/nova/network/model.py#L371\n\nSorry for the confusion.","commit_id":"070231122988a4126d06513f5a4d827d98afc68d"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"44e7ac276a847b889055912c47b2d1d1f2d3cc23","unresolved":false,"context_lines":[{"line_number":63,"context_line":""},{"line_number":64,"context_line":"Note that these trunk subport VIFs will not be exposed in the instance\u0027s domail"},{"line_number":65,"context_line":"XML as networking interfaces. To do that, a special VIF type \u0027trunk_subport\u0027 is"},{"line_number":66,"context_line":"used for these VIF objects, whose plug/unplug methods will be no-op."},{"line_number":67,"context_line":""},{"line_number":68,"context_line":"A couple of new fields will be added in the VIF object as meta fields."},{"line_number":69,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"df140735_d2b401f5","line":66,"range":{"start_line":66,"start_character":27,"end_line":66,"end_character":68},"in_reply_to":"df140735_9749db8c","updated":"2017-06-07 17:13:45.000000000","message":"i dont it is desireable to contiue extending this class in this way.","commit_id":"070231122988a4126d06513f5a4d827d98afc68d"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"0a2ade2e5d180dbb5c07569fd505f100a787ea52","unresolved":false,"context_lines":[{"line_number":126,"context_line":"    ]"},{"line_number":127,"context_line":"  }"},{"line_number":128,"context_line":""},{"line_number":129,"context_line":"A config option inject_trunk_details will be added. If it\u0027s true, vlan"},{"line_number":130,"context_line":"subinterfaces associated with trunk ports will be exposed in the"},{"line_number":131,"context_line":"metadata/configdrive. Its default value is False."},{"line_number":132,"context_line":""},{"line_number":133,"context_line":"Alternatives"},{"line_number":134,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":3,"id":"df140735_b7829fff","line":131,"range":{"start_line":129,"start_character":0,"end_line":131,"end_character":49},"updated":"2017-06-07 16:49:37.000000000","message":"this should not be a config option.\nit needs to be a neutron api extention that is set via the binding profile on the neutron port and configured per interfaces not perhost.","commit_id":"070231122988a4126d06513f5a4d827d98afc68d"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"70d913d70363c998582fcf564d87669d439c6b8f","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"df140735_97d43bbf","updated":"2017-06-07 17:14:36.000000000","message":"as i mentioned on the previous patch this should be moved to queens as we are past the spec approval deadline.","commit_id":"b7b41433fa5007521bba2828935b0d28bc21c727"},{"author":{"_account_id":6685,"name":"Baodong (Robert) Li","email":"baoli@cisco.com","username":"baoli"},"change_message_id":"1308814d663cda9705bc36f60ad02a2ded130225","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"df140735_32e0dd96","in_reply_to":"df140735_97d43bbf","updated":"2017-06-07 17:29:23.000000000","message":"done","commit_id":"b7b41433fa5007521bba2828935b0d28bc21c727"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"70d913d70363c998582fcf564d87669d439c6b8f","unresolved":false,"context_lines":[{"line_number":25,"context_line":"associated with trunk ports are not exposed to the guest instances. After an"},{"line_number":26,"context_line":"instance is booted up, one needs to use other means to configure vlan"},{"line_number":27,"context_line":"subinterfaces in the instance. In some use cases (e.g. NFV), automatic"},{"line_number":28,"context_line":"configuration of vlan subinterfaces through cloud-init is not required or"},{"line_number":29,"context_line":"needed."},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"Note that subports may be added/removed after boot. Due to periodic sync"},{"line_number":32,"context_line":"between nova and neutron, nova will notice the addition/removal. Network"}],"source_content_type":"text/x-rst","patch_set":4,"id":"df140735_b7e85f7c","line":29,"range":{"start_line":28,"start_character":58,"end_line":29,"end_character":7},"updated":"2017-06-07 17:14:36.000000000","message":"actually i would go one step further and say that in some case such as a vnf that understnad and process vlan internally that subport creation must not be done.","commit_id":"b7b41433fa5007521bba2828935b0d28bc21c727"},{"author":{"_account_id":6685,"name":"Baodong (Robert) Li","email":"baoli@cisco.com","username":"baoli"},"change_message_id":"1308814d663cda9705bc36f60ad02a2ded130225","unresolved":false,"context_lines":[{"line_number":25,"context_line":"associated with trunk ports are not exposed to the guest instances. After an"},{"line_number":26,"context_line":"instance is booted up, one needs to use other means to configure vlan"},{"line_number":27,"context_line":"subinterfaces in the instance. In some use cases (e.g. NFV), automatic"},{"line_number":28,"context_line":"configuration of vlan subinterfaces through cloud-init is not required or"},{"line_number":29,"context_line":"needed."},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"Note that subports may be added/removed after boot. Due to periodic sync"},{"line_number":32,"context_line":"between nova and neutron, nova will notice the addition/removal. Network"}],"source_content_type":"text/x-rst","patch_set":4,"id":"df140735_b2ed0d8d","line":29,"range":{"start_line":28,"start_character":58,"end_line":29,"end_character":7},"in_reply_to":"df140735_b7e85f7c","updated":"2017-06-07 17:29:23.000000000","message":"I can state that","commit_id":"b7b41433fa5007521bba2828935b0d28bc21c727"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"70d913d70363c998582fcf564d87669d439c6b8f","unresolved":false,"context_lines":[{"line_number":66,"context_line":"created after them and added into the network_info cache."},{"line_number":67,"context_line":""},{"line_number":68,"context_line":"Note that these trunk subport VIFs will not be exposed in the instance\u0027s domail"},{"line_number":69,"context_line":"XML as networking interfaces. To do that, a special VIF type \u0027trunk_subport\u0027 is"},{"line_number":70,"context_line":"used for these VIF objects, whose plug/unplug methods will be no-op."},{"line_number":71,"context_line":""},{"line_number":72,"context_line":"A couple of new fields will be added in the VIF object as meta fields."}],"source_content_type":"text/x-rst","patch_set":4,"id":"df140735_37fc4f3d","line":69,"range":{"start_line":69,"start_character":62,"end_line":69,"end_character":76},"updated":"2017-06-07 17:14:36.000000000","message":"currently we do not have the concept of nested vif types in os-vif to model this so we will need to consider how best to model this.","commit_id":"b7b41433fa5007521bba2828935b0d28bc21c727"},{"author":{"_account_id":6685,"name":"Baodong (Robert) Li","email":"baoli@cisco.com","username":"baoli"},"change_message_id":"1308814d663cda9705bc36f60ad02a2ded130225","unresolved":false,"context_lines":[{"line_number":66,"context_line":"created after them and added into the network_info cache."},{"line_number":67,"context_line":""},{"line_number":68,"context_line":"Note that these trunk subport VIFs will not be exposed in the instance\u0027s domail"},{"line_number":69,"context_line":"XML as networking interfaces. To do that, a special VIF type \u0027trunk_subport\u0027 is"},{"line_number":70,"context_line":"used for these VIF objects, whose plug/unplug methods will be no-op."},{"line_number":71,"context_line":""},{"line_number":72,"context_line":"A couple of new fields will be added in the VIF object as meta fields."}],"source_content_type":"text/x-rst","patch_set":4,"id":"df140735_d29d210b","line":69,"range":{"start_line":69,"start_character":62,"end_line":69,"end_character":76},"in_reply_to":"df140735_37fc4f3d","updated":"2017-06-07 17:29:23.000000000","message":"I don\u0027t have problem using os-vif","commit_id":"b7b41433fa5007521bba2828935b0d28bc21c727"},{"author":{"_account_id":6685,"name":"Baodong (Robert) Li","email":"baoli@cisco.com","username":"baoli"},"change_message_id":"cb6b9e184b1bf734f679ebde5583d224692e4cbd","unresolved":false,"context_lines":[{"line_number":66,"context_line":"created after them and added into the network_info cache."},{"line_number":67,"context_line":""},{"line_number":68,"context_line":"Note that these trunk subport VIFs will not be exposed in the instance\u0027s domail"},{"line_number":69,"context_line":"XML as networking interfaces. To do that, a special VIF type \u0027trunk_subport\u0027 is"},{"line_number":70,"context_line":"used for these VIF objects, whose plug/unplug methods will be no-op."},{"line_number":71,"context_line":""},{"line_number":72,"context_line":"A couple of new fields will be added in the VIF object as meta fields."}],"source_content_type":"text/x-rst","patch_set":4,"id":"bf091321_14ddd013","line":69,"range":{"start_line":69,"start_character":62,"end_line":69,"end_character":76},"in_reply_to":"df140735_d29d210b","updated":"2017-06-08 14:42:34.000000000","message":"I took a closer look at those areas involving os-vif and network.model.VIF(). As it stands now, it seems to me, network.model.VIF() is still the basic building blocks.\n\nFor our purpose, this proposal presents a couple of approaches to inject sub interfaces into the metadata, one in this section, the other in the alternative section.\n\na. for each trunk subport, create a network.model.VIF() object that is saved in the instance\u0027s info cache. you can find the WIP patch with this approach at https://review.openstack.org/#/c/471874/. Note that we could either use the special vif type \u0027trunk_subport\u0027 or a special field in the VIF() dict to identify the trunk sub port VIF. The patch used the special vif type\n\nb. as discussed briefly in the Alternative section, subports details can be retrieved later when generating the metadata. It still requires adding some field in VIF(), and as I went over the areas involved, it seemed to me it\u0027d require a lot of changes in terms of method prototypes and potential new methods (e.g. in the network base_api.py).\n\nHopefully we can find some better solution as this discussion continues.","commit_id":"b7b41433fa5007521bba2828935b0d28bc21c727"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"70d913d70363c998582fcf564d87669d439c6b8f","unresolved":false,"context_lines":[{"line_number":67,"context_line":""},{"line_number":68,"context_line":"Note that these trunk subport VIFs will not be exposed in the instance\u0027s domail"},{"line_number":69,"context_line":"XML as networking interfaces. To do that, a special VIF type \u0027trunk_subport\u0027 is"},{"line_number":70,"context_line":"used for these VIF objects, whose plug/unplug methods will be no-op."},{"line_number":71,"context_line":""},{"line_number":72,"context_line":"A couple of new fields will be added in the VIF object as meta fields."},{"line_number":73,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"df140735_f26385b0","line":70,"range":{"start_line":70,"start_character":28,"end_line":70,"end_character":68},"updated":"2017-06-07 17:14:36.000000000","message":"vif objects do not have plug/unplug methods the plugins do. vif objects are just abstract data models of interfaces which are instantiated by the concrete plugins.","commit_id":"b7b41433fa5007521bba2828935b0d28bc21c727"},{"author":{"_account_id":6685,"name":"Baodong (Robert) Li","email":"baoli@cisco.com","username":"baoli"},"change_message_id":"cb6b9e184b1bf734f679ebde5583d224692e4cbd","unresolved":false,"context_lines":[{"line_number":67,"context_line":""},{"line_number":68,"context_line":"Note that these trunk subport VIFs will not be exposed in the instance\u0027s domail"},{"line_number":69,"context_line":"XML as networking interfaces. To do that, a special VIF type \u0027trunk_subport\u0027 is"},{"line_number":70,"context_line":"used for these VIF objects, whose plug/unplug methods will be no-op."},{"line_number":71,"context_line":""},{"line_number":72,"context_line":"A couple of new fields will be added in the VIF object as meta fields."},{"line_number":73,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"bf091321_94d0c0f9","line":70,"range":{"start_line":70,"start_character":28,"end_line":70,"end_character":68},"in_reply_to":"df140735_f26385b0","updated":"2017-06-08 14:42:34.000000000","message":"Sorry for the confusion. The plug/unplug methods I referred to in the text are the ones defined in the libvirt driver.","commit_id":"b7b41433fa5007521bba2828935b0d28bc21c727"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"70d913d70363c998582fcf564d87669d439c6b8f","unresolved":false,"context_lines":[{"line_number":129,"context_line":"    ]"},{"line_number":130,"context_line":"  }"},{"line_number":131,"context_line":""},{"line_number":132,"context_line":"A config option inject_trunk_details will be added. If it\u0027s true, vlan"},{"line_number":133,"context_line":"subinterfaces associated with trunk ports will be exposed in the"},{"line_number":134,"context_line":"metadata/configdrive. Its default value is False."},{"line_number":135,"context_line":""},{"line_number":136,"context_line":"Alternatives"},{"line_number":137,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":4,"id":"df140735_9272097c","line":134,"range":{"start_line":132,"start_character":0,"end_line":134,"end_character":49},"updated":"2017-06-07 17:14:36.000000000","message":"this should not be a config option. it needs to be a neutron api extention that is set via the binding profile on the neutron port and configured per interfaces not perhost.","commit_id":"b7b41433fa5007521bba2828935b0d28bc21c727"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"76e4f084f0cd58952b7feba718df779c3aa0e0b0","unresolved":false,"context_lines":[{"line_number":129,"context_line":"    ]"},{"line_number":130,"context_line":"  }"},{"line_number":131,"context_line":""},{"line_number":132,"context_line":"A config option inject_trunk_details will be added. If it\u0027s true, vlan"},{"line_number":133,"context_line":"subinterfaces associated with trunk ports will be exposed in the"},{"line_number":134,"context_line":"metadata/configdrive. Its default value is False."},{"line_number":135,"context_line":""},{"line_number":136,"context_line":"Alternatives"},{"line_number":137,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":4,"id":"df140735_a8e0fafb","line":134,"range":{"start_line":132,"start_character":0,"end_line":134,"end_character":49},"in_reply_to":"df140735_72ad3530","updated":"2017-06-07 17:57:18.000000000","message":"yes and that will depend on the workload of the instance.\n\ni also for see some instances haveing some ports auto configured and others not.\n\nfor example management and monitoring networks may be trunked over one interfaces which would use subports but the datapane interfaces for the vnf may not use subports.\n\nthis is why i would prefer this to be user configurable on a per interface basis.","commit_id":"b7b41433fa5007521bba2828935b0d28bc21c727"},{"author":{"_account_id":6685,"name":"Baodong (Robert) Li","email":"baoli@cisco.com","username":"baoli"},"change_message_id":"1308814d663cda9705bc36f60ad02a2ded130225","unresolved":false,"context_lines":[{"line_number":129,"context_line":"    ]"},{"line_number":130,"context_line":"  }"},{"line_number":131,"context_line":""},{"line_number":132,"context_line":"A config option inject_trunk_details will be added. If it\u0027s true, vlan"},{"line_number":133,"context_line":"subinterfaces associated with trunk ports will be exposed in the"},{"line_number":134,"context_line":"metadata/configdrive. Its default value is False."},{"line_number":135,"context_line":""},{"line_number":136,"context_line":"Alternatives"},{"line_number":137,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":4,"id":"df140735_72ad3530","line":134,"range":{"start_line":132,"start_character":0,"end_line":134,"end_character":49},"in_reply_to":"df140735_9272097c","updated":"2017-06-07 17:29:23.000000000","message":"I\u0027m fine making it per interface, and the default will be False.\n\nAre you thinking that in a particular deployment, some instances will use automatic configuration, and some won\u0027t?","commit_id":"b7b41433fa5007521bba2828935b0d28bc21c727"},{"author":{"_account_id":6685,"name":"Baodong (Robert) Li","email":"baoli@cisco.com","username":"baoli"},"change_message_id":"cb6b9e184b1bf734f679ebde5583d224692e4cbd","unresolved":false,"context_lines":[{"line_number":129,"context_line":"    ]"},{"line_number":130,"context_line":"  }"},{"line_number":131,"context_line":""},{"line_number":132,"context_line":"A config option inject_trunk_details will be added. If it\u0027s true, vlan"},{"line_number":133,"context_line":"subinterfaces associated with trunk ports will be exposed in the"},{"line_number":134,"context_line":"metadata/configdrive. Its default value is False."},{"line_number":135,"context_line":""},{"line_number":136,"context_line":"Alternatives"},{"line_number":137,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":4,"id":"bf091321_f7037e0c","line":134,"range":{"start_line":132,"start_character":0,"end_line":134,"end_character":49},"in_reply_to":"df140735_a8e0fafb","updated":"2017-06-08 14:42:34.000000000","message":"I looked a little deeper for this. If I understand your proposal, you seemed to suggest an API attribute to the neutron port resource. Since this is trunk specific, would it be more appropriate to have a trunk specific attribute for this? The attribute (for which I don\u0027t have a proper name yet) indicates if the trunk details should be injected into the instance during boot, and can be specified while creating the trunk. The attribute is populated into the \u0027trunk_details\u0027 dict of the neutron parent port associated with the trunk.\n\nIn either case, some changes are needed on the neutron side as well. I guess that we need an RFE for it.","commit_id":"b7b41433fa5007521bba2828935b0d28bc21c727"}],"specs/queens/approved/expose-vlan-trunking.rst":[{"author":{"_account_id":15554,"name":"Bence Romsics","email":"bence.romsics@gmail.com","username":"ebenrom","status":"working for Ericsson, UTC+1 (+DST)"},"change_message_id":"4279d5d58493713558175c0a2569ab6dc3444aeb","unresolved":false,"context_lines":[{"line_number":12,"context_line":""},{"line_number":13,"context_line":"https://blueprints.launchpad.net/nova/+spec/expose-vlan-trunking"},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"This proposal aims to expose vlan subinterfaces associatecd with trunk ports in"},{"line_number":16,"context_line":"metadata and configdrive, with which cloud-init (or possibly glean) can"},{"line_number":17,"context_line":"configure the vlan subinterfaces in the guest instances."},{"line_number":18,"context_line":""}],"source_content_type":"text/x-rst","patch_set":6,"id":"7f231b9d_bf9c695d","line":15,"range":{"start_line":15,"start_character":48,"end_line":15,"end_character":59},"updated":"2017-06-14 08:56:43.000000000","message":"nit: typo","commit_id":"033ae137bd795ef90ae1eafa2261a498ce0c7170"},{"author":{"_account_id":6685,"name":"Baodong (Robert) Li","email":"baoli@cisco.com","username":"baoli"},"change_message_id":"031001bd7f054c3d78e99a3d2aaea263b741ce7d","unresolved":false,"context_lines":[{"line_number":12,"context_line":""},{"line_number":13,"context_line":"https://blueprints.launchpad.net/nova/+spec/expose-vlan-trunking"},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"This proposal aims to expose vlan subinterfaces associatecd with trunk ports in"},{"line_number":16,"context_line":"metadata and configdrive, with which cloud-init (or possibly glean) can"},{"line_number":17,"context_line":"configure the vlan subinterfaces in the guest instances."},{"line_number":18,"context_line":""}],"source_content_type":"text/x-rst","patch_set":6,"id":"7f231b9d_09ee7db3","line":15,"range":{"start_line":15,"start_character":48,"end_line":15,"end_character":59},"in_reply_to":"7f231b9d_bf9c695d","updated":"2017-06-14 15:27:51.000000000","message":"Done","commit_id":"033ae137bd795ef90ae1eafa2261a498ce0c7170"},{"author":{"_account_id":15554,"name":"Bence Romsics","email":"bence.romsics@gmail.com","username":"ebenrom","status":"working for Ericsson, UTC+1 (+DST)"},"change_message_id":"4279d5d58493713558175c0a2569ab6dc3444aeb","unresolved":false,"context_lines":[{"line_number":20,"context_line":"Problem description"},{"line_number":21,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"Vlan trunking has been supported since Mitaka (Refer to [1]_ and [2]_). With"},{"line_number":24,"context_line":"the current metadata/configdrive support in nova, however, vlan subinterfaces"},{"line_number":25,"context_line":"associated with trunk ports are not exposed to the guest instances. After an"},{"line_number":26,"context_line":"instance is booted up, one needs to use other means to configure vlan"}],"source_content_type":"text/x-rst","patch_set":6,"id":"7f231b9d_ffbb01c1","line":23,"range":{"start_line":23,"start_character":39,"end_line":23,"end_character":45},"updated":"2017-06-14 08:56:43.000000000","message":"There was a blueprint for mitaka already, but the first implementation was merged to newton.","commit_id":"033ae137bd795ef90ae1eafa2261a498ce0c7170"},{"author":{"_account_id":6685,"name":"Baodong (Robert) Li","email":"baoli@cisco.com","username":"baoli"},"change_message_id":"031001bd7f054c3d78e99a3d2aaea263b741ce7d","unresolved":false,"context_lines":[{"line_number":20,"context_line":"Problem description"},{"line_number":21,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"Vlan trunking has been supported since Mitaka (Refer to [1]_ and [2]_). With"},{"line_number":24,"context_line":"the current metadata/configdrive support in nova, however, vlan subinterfaces"},{"line_number":25,"context_line":"associated with trunk ports are not exposed to the guest instances. After an"},{"line_number":26,"context_line":"instance is booted up, one needs to use other means to configure vlan"}],"source_content_type":"text/x-rst","patch_set":6,"id":"7f231b9d_694051a6","line":23,"range":{"start_line":23,"start_character":39,"end_line":23,"end_character":45},"in_reply_to":"7f231b9d_ffbb01c1","updated":"2017-06-14 15:27:51.000000000","message":"Done","commit_id":"033ae137bd795ef90ae1eafa2261a498ce0c7170"},{"author":{"_account_id":15554,"name":"Bence Romsics","email":"bence.romsics@gmail.com","username":"ebenrom","status":"working for Ericsson, UTC+1 (+DST)"},"change_message_id":"4279d5d58493713558175c0a2569ab6dc3444aeb","unresolved":false,"context_lines":[{"line_number":26,"context_line":"instance is booted up, one needs to use other means to configure vlan"},{"line_number":27,"context_line":"subinterfaces in the instance."},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"Note that subports may be added/removed after boot. Due to periodic sync"},{"line_number":30,"context_line":"between nova and neutron, nova will notice the addition/removal. Network"},{"line_number":31,"context_line":"metadata generated on demand will include the change as well. However, there"},{"line_number":32,"context_line":"isn\u0027t a mechanism in cloud-init for the nova instance to be aware of it after"},{"line_number":33,"context_line":"boot, and to subsequently reconfigure the networking interfaces. This proposal"}],"source_content_type":"text/x-rst","patch_set":6,"id":"7f231b9d_bf034973","line":30,"range":{"start_line":29,"start_character":52,"end_line":30,"end_character":64},"updated":"2017-06-14 08:56:43.000000000","message":"Here do you mean to describe nova as it is? Or the plan?\n\nBecause it sounds like the former, but I\u0027m not aware of a mechanism doing this. If there\u0027s something already in place could you please add a reference (to a bp or change)? AFAIK it was an explicit goal of the trunk port design to alleviate nova\u0027s need to know about the subports.","commit_id":"033ae137bd795ef90ae1eafa2261a498ce0c7170"},{"author":{"_account_id":15554,"name":"Bence Romsics","email":"bence.romsics@gmail.com","username":"ebenrom","status":"working for Ericsson, UTC+1 (+DST)"},"change_message_id":"259e0c0dd76ad412f6d56bf14d80235b81e96ae2","unresolved":false,"context_lines":[{"line_number":26,"context_line":"instance is booted up, one needs to use other means to configure vlan"},{"line_number":27,"context_line":"subinterfaces in the instance."},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"Note that subports may be added/removed after boot. Due to periodic sync"},{"line_number":30,"context_line":"between nova and neutron, nova will notice the addition/removal. Network"},{"line_number":31,"context_line":"metadata generated on demand will include the change as well. However, there"},{"line_number":32,"context_line":"isn\u0027t a mechanism in cloud-init for the nova instance to be aware of it after"},{"line_number":33,"context_line":"boot, and to subsequently reconfigure the networking interfaces. This proposal"}],"source_content_type":"text/x-rst","patch_set":6,"id":"7f231b9d_d1cda785","line":30,"range":{"start_line":29,"start_character":52,"end_line":30,"end_character":64},"in_reply_to":"7f231b9d_ac5437ff","updated":"2017-06-15 15:27:46.000000000","message":"Thanks, now I understand what you meant.","commit_id":"033ae137bd795ef90ae1eafa2261a498ce0c7170"},{"author":{"_account_id":6685,"name":"Baodong (Robert) Li","email":"baoli@cisco.com","username":"baoli"},"change_message_id":"031001bd7f054c3d78e99a3d2aaea263b741ce7d","unresolved":false,"context_lines":[{"line_number":26,"context_line":"instance is booted up, one needs to use other means to configure vlan"},{"line_number":27,"context_line":"subinterfaces in the instance."},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"Note that subports may be added/removed after boot. Due to periodic sync"},{"line_number":30,"context_line":"between nova and neutron, nova will notice the addition/removal. Network"},{"line_number":31,"context_line":"metadata generated on demand will include the change as well. However, there"},{"line_number":32,"context_line":"isn\u0027t a mechanism in cloud-init for the nova instance to be aware of it after"},{"line_number":33,"context_line":"boot, and to subsequently reconfigure the networking interfaces. This proposal"}],"source_content_type":"text/x-rst","patch_set":6,"id":"7f231b9d_ac5437ff","line":30,"range":{"start_line":29,"start_character":52,"end_line":30,"end_character":64},"in_reply_to":"7f231b9d_bf034973","updated":"2017-06-14 15:27:51.000000000","message":"Yes, it\u0027s the existing behavior that nova and neutron will do periodic sync. Since we plan to add supports into the network info cache, the sync operation will pick up any change to a trunk port from neutron after boot. That means, if metadata is requested from the instance after boot, it will be able to pick up any change as well. \n\nIn order to generate metadata with vlan subinterfaces, given the existing nova metadata implementation (refer to https://github.com/openstack/nova/blob/master/nova/virt/netutils.py#L166), sub_ports have to be available in the network_info argument. \n\nThis spec also discussed an alternative, which is to retrieve sub_ports from inside the get_network_metadata(). But it requires more change than necessary, and is not necessarily a good option from architecture point of view.","commit_id":"033ae137bd795ef90ae1eafa2261a498ce0c7170"},{"author":{"_account_id":15554,"name":"Bence Romsics","email":"bence.romsics@gmail.com","username":"ebenrom","status":"working for Ericsson, UTC+1 (+DST)"},"change_message_id":"4279d5d58493713558175c0a2569ab6dc3444aeb","unresolved":false,"context_lines":[{"line_number":30,"context_line":"between nova and neutron, nova will notice the addition/removal. Network"},{"line_number":31,"context_line":"metadata generated on demand will include the change as well. However, there"},{"line_number":32,"context_line":"isn\u0027t a mechanism in cloud-init for the nova instance to be aware of it after"},{"line_number":33,"context_line":"boot, and to subsequently reconfigure the networking interfaces. This proposal"},{"line_number":34,"context_line":"won\u0027t attempt to address the issue of network reconfiguration in the nova"},{"line_number":35,"context_line":"instance due to subport changes after boot."},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"Use Cases"},{"line_number":38,"context_line":"---------"}],"source_content_type":"text/x-rst","patch_set":6,"id":"7f231b9d_bf5fc970","line":35,"range":{"start_line":33,"start_character":65,"end_line":35,"end_character":43},"updated":"2017-06-14 08:56:43.000000000","message":"I guess this is a bit more nuanced:\n\n* configdrive cannot change after boot\n* we can update metadata with subport changes after boot (should we?), so if the instance asks, it may learn about changes, but there won\u0027t be a notification mechanism","commit_id":"033ae137bd795ef90ae1eafa2261a498ce0c7170"},{"author":{"_account_id":6685,"name":"Baodong (Robert) Li","email":"baoli@cisco.com","username":"baoli"},"change_message_id":"031001bd7f054c3d78e99a3d2aaea263b741ce7d","unresolved":false,"context_lines":[{"line_number":30,"context_line":"between nova and neutron, nova will notice the addition/removal. Network"},{"line_number":31,"context_line":"metadata generated on demand will include the change as well. However, there"},{"line_number":32,"context_line":"isn\u0027t a mechanism in cloud-init for the nova instance to be aware of it after"},{"line_number":33,"context_line":"boot, and to subsequently reconfigure the networking interfaces. This proposal"},{"line_number":34,"context_line":"won\u0027t attempt to address the issue of network reconfiguration in the nova"},{"line_number":35,"context_line":"instance due to subport changes after boot."},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"Use Cases"},{"line_number":38,"context_line":"---------"}],"source_content_type":"text/x-rst","patch_set":6,"id":"7f231b9d_6c75ff63","line":35,"range":{"start_line":33,"start_character":65,"end_line":35,"end_character":43},"in_reply_to":"7f231b9d_bf5fc970","updated":"2017-06-14 15:27:51.000000000","message":"You are right that configdrive is mounted as a virtual volume, and therefore it can\u0027t be changed after boot. But if the instance sends a request through the metadata API endpoint (169.254.169.254), nova will generate the metadata again that will contain any change so far, and send it back to the instance.","commit_id":"033ae137bd795ef90ae1eafa2261a498ce0c7170"},{"author":{"_account_id":15554,"name":"Bence Romsics","email":"bence.romsics@gmail.com","username":"ebenrom","status":"working for Ericsson, UTC+1 (+DST)"},"change_message_id":"4279d5d58493713558175c0a2569ab6dc3444aeb","unresolved":false,"context_lines":[{"line_number":40,"context_line":"A user would like to see a nova instance with trunk ports booted up with the"},{"line_number":41,"context_line":"trunks and their associated subinterfaces properly configured and brought up."},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"It\u0027s particularly useful with Baremetal instances. For example, a baremetal"},{"line_number":44,"context_line":"server with a single physical port may be connected to multiple vlan networks."},{"line_number":45,"context_line":"Once the BM server is booted up with Ironic, its networking interfaces can be"},{"line_number":46,"context_line":"automatically configured and brought up."}],"source_content_type":"text/x-rst","patch_set":6,"id":"7f231b9d_9f608d03","line":43,"range":{"start_line":43,"start_character":30,"end_line":43,"end_character":49},"updated":"2017-06-14 08:56:43.000000000","message":"If you mean this:\n\nhttps://bugs.launchpad.net/neutron/+bug/1648129\n\nthen it may be worth to link to it.","commit_id":"033ae137bd795ef90ae1eafa2261a498ce0c7170"},{"author":{"_account_id":6685,"name":"Baodong (Robert) Li","email":"baoli@cisco.com","username":"baoli"},"change_message_id":"031001bd7f054c3d78e99a3d2aaea263b741ce7d","unresolved":false,"context_lines":[{"line_number":40,"context_line":"A user would like to see a nova instance with trunk ports booted up with the"},{"line_number":41,"context_line":"trunks and their associated subinterfaces properly configured and brought up."},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"It\u0027s particularly useful with Baremetal instances. For example, a baremetal"},{"line_number":44,"context_line":"server with a single physical port may be connected to multiple vlan networks."},{"line_number":45,"context_line":"Once the BM server is booted up with Ironic, its networking interfaces can be"},{"line_number":46,"context_line":"automatically configured and brought up."}],"source_content_type":"text/x-rst","patch_set":6,"id":"7f231b9d_4ce5a308","line":43,"range":{"start_line":43,"start_character":30,"end_line":43,"end_character":49},"in_reply_to":"7f231b9d_9f608d03","updated":"2017-06-14 15:27:51.000000000","message":"I can add a reference to that.","commit_id":"033ae137bd795ef90ae1eafa2261a498ce0c7170"},{"author":{"_account_id":15554,"name":"Bence Romsics","email":"bence.romsics@gmail.com","username":"ebenrom","status":"working for Ericsson, UTC+1 (+DST)"},"change_message_id":"4279d5d58493713558175c0a2569ab6dc3444aeb","unresolved":false,"context_lines":[{"line_number":45,"context_line":"Once the BM server is booted up with Ironic, its networking interfaces can be"},{"line_number":46,"context_line":"automatically configured and brought up."},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"in some NFV use cases that understands and configures vlan subinterfaces in"},{"line_number":49,"context_line":"their own way, automatic configuration of vlan subinterfaces through cloud-init"},{"line_number":50,"context_line":"must not be done. A deployment may have both nova instances that require"},{"line_number":51,"context_line":"automatic vlan configuration, and those that don\u0027t. The solution should support"}],"source_content_type":"text/x-rst","patch_set":6,"id":"7f231b9d_65c63e4b","line":48,"range":{"start_line":48,"start_character":0,"end_line":48,"end_character":1},"updated":"2017-06-14 08:56:43.000000000","message":"nit: typo","commit_id":"033ae137bd795ef90ae1eafa2261a498ce0c7170"},{"author":{"_account_id":6685,"name":"Baodong (Robert) Li","email":"baoli@cisco.com","username":"baoli"},"change_message_id":"031001bd7f054c3d78e99a3d2aaea263b741ce7d","unresolved":false,"context_lines":[{"line_number":45,"context_line":"Once the BM server is booted up with Ironic, its networking interfaces can be"},{"line_number":46,"context_line":"automatically configured and brought up."},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"in some NFV use cases that understands and configures vlan subinterfaces in"},{"line_number":49,"context_line":"their own way, automatic configuration of vlan subinterfaces through cloud-init"},{"line_number":50,"context_line":"must not be done. A deployment may have both nova instances that require"},{"line_number":51,"context_line":"automatic vlan configuration, and those that don\u0027t. The solution should support"}],"source_content_type":"text/x-rst","patch_set":6,"id":"7f231b9d_4ccec382","line":48,"range":{"start_line":48,"start_character":0,"end_line":48,"end_character":1},"in_reply_to":"7f231b9d_65c63e4b","updated":"2017-06-14 15:27:51.000000000","message":"Done","commit_id":"033ae137bd795ef90ae1eafa2261a498ce0c7170"},{"author":{"_account_id":15554,"name":"Bence Romsics","email":"bence.romsics@gmail.com","username":"ebenrom","status":"working for Ericsson, UTC+1 (+DST)"},"change_message_id":"4279d5d58493713558175c0a2569ab6dc3444aeb","unresolved":false,"context_lines":[{"line_number":62,"context_line":"part of an instance\u0027s info_cache. This needs to be changed in order to support"},{"line_number":63,"context_line":"vlan subinterfaces configuration. Trunk subport information is available in the"},{"line_number":64,"context_line":"trunk_details dictionary in a trunk port. Neutron ports corresponding to the"},{"line_number":65,"context_line":"trunk subports in trunk_details will be retrieved, new type of VIFs will be"},{"line_number":66,"context_line":"created after them and added into the network_info cache."},{"line_number":67,"context_line":""},{"line_number":68,"context_line":"Note that following the existing vlan trunking implementation, these trunk"}],"source_content_type":"text/x-rst","patch_set":6,"id":"7f231b9d_aa28a5e1","line":65,"range":{"start_line":65,"start_character":63,"end_line":65,"end_character":67},"updated":"2017-06-14 08:56:43.000000000","message":"I\u0027m just thinking aloud. A VIF in my mind is something that needs both nova and neutron to collaborate on. So a VIF in nova is an object with behavior.\n\nBut for subport details nova can be just the conduit. Nova could treat all subport info as a blob, not knowing about its meaning just passing it on to the instance.\n\nBecause of this difference I find it a bit confusing to turn a the subport info into a VIF with all its behavior being noop.\n\nIf I were a maintainer I would scratch my head and ask: Why is this thing a VIF if it is never treated as a VIF?\n\nAlso if subports were not represented as VIFs, then all the special cases about ignoring subport VIFs would not be needed.","commit_id":"033ae137bd795ef90ae1eafa2261a498ce0c7170"},{"author":{"_account_id":6685,"name":"Baodong (Robert) Li","email":"baoli@cisco.com","username":"baoli"},"change_message_id":"031001bd7f054c3d78e99a3d2aaea263b741ce7d","unresolved":false,"context_lines":[{"line_number":62,"context_line":"part of an instance\u0027s info_cache. This needs to be changed in order to support"},{"line_number":63,"context_line":"vlan subinterfaces configuration. Trunk subport information is available in the"},{"line_number":64,"context_line":"trunk_details dictionary in a trunk port. Neutron ports corresponding to the"},{"line_number":65,"context_line":"trunk subports in trunk_details will be retrieved, new type of VIFs will be"},{"line_number":66,"context_line":"created after them and added into the network_info cache."},{"line_number":67,"context_line":""},{"line_number":68,"context_line":"Note that following the existing vlan trunking implementation, these trunk"}],"source_content_type":"text/x-rst","patch_set":6,"id":"7f231b9d_faa2e1ad","line":65,"range":{"start_line":65,"start_character":63,"end_line":65,"end_character":67},"in_reply_to":"7f231b9d_aa28a5e1","updated":"2017-06-14 15:27:51.000000000","message":"For VIF, refer to https://github.com/openstack/nova/blob/master/nova/network/model.py#L375\n\nRefer to [3] for network_data.json, which is used by cloud-init and glean to configure instance networking. We\u0027re not inventing a new format for the instance to consume.\n\nSee comments to \u0027subport_ids\u0027 in below. That approach seems to be more desirable considering it doesn\u0027t need to change the virt driver.","commit_id":"033ae137bd795ef90ae1eafa2261a498ce0c7170"},{"author":{"_account_id":6685,"name":"Baodong (Robert) Li","email":"baoli@cisco.com","username":"baoli"},"change_message_id":"031001bd7f054c3d78e99a3d2aaea263b741ce7d","unresolved":false,"context_lines":[{"line_number":76,"context_line":"A couple of new fields will be added in the VIF object as meta fields (or"},{"line_number":77,"context_line":"regular fields?)."},{"line_number":78,"context_line":""},{"line_number":79,"context_line":"* subport_ids: this field is available for a trunk_port VIF"},{"line_number":80,"context_line":"* segmentation_id: this filed is available for a sub port VIF"},{"line_number":81,"context_line":""},{"line_number":82,"context_line":"An example network_data.json file for an instance booted with one trunk port"}],"source_content_type":"text/x-rst","patch_set":6,"id":"7f231b9d_5ae55508","line":79,"range":{"start_line":79,"start_character":2,"end_line":79,"end_character":59},"updated":"2017-06-14 15:27:51.000000000","message":"An alternative approach would make this field as subport_details, which is  a list of sub_port VIFs. By doing so, we\u0027d no longer need to expose these VIFs as members of network_info, and therefore virt driver plug/unplug methods are no longer needed.","commit_id":"033ae137bd795ef90ae1eafa2261a498ce0c7170"},{"author":{"_account_id":15554,"name":"Bence Romsics","email":"bence.romsics@gmail.com","username":"ebenrom","status":"working for Ericsson, UTC+1 (+DST)"},"change_message_id":"4279d5d58493713558175c0a2569ab6dc3444aeb","unresolved":false,"context_lines":[{"line_number":77,"context_line":"regular fields?)."},{"line_number":78,"context_line":""},{"line_number":79,"context_line":"* subport_ids: this field is available for a trunk_port VIF"},{"line_number":80,"context_line":"* segmentation_id: this filed is available for a sub port VIF"},{"line_number":81,"context_line":""},{"line_number":82,"context_line":"An example network_data.json file for an instance booted with one trunk port"},{"line_number":83,"context_line":"that has two subports may look like in below:"}],"source_content_type":"text/x-rst","patch_set":6,"id":"7f231b9d_aa56655b","line":80,"range":{"start_line":80,"start_character":2,"end_line":80,"end_character":17},"updated":"2017-06-14 08:56:43.000000000","message":"Please don\u0027t forget segmentation_type.","commit_id":"033ae137bd795ef90ae1eafa2261a498ce0c7170"},{"author":{"_account_id":15554,"name":"Bence Romsics","email":"bence.romsics@gmail.com","username":"ebenrom","status":"working for Ericsson, UTC+1 (+DST)"},"change_message_id":"4279d5d58493713558175c0a2569ab6dc3444aeb","unresolved":false,"context_lines":[{"line_number":77,"context_line":"regular fields?)."},{"line_number":78,"context_line":""},{"line_number":79,"context_line":"* subport_ids: this field is available for a trunk_port VIF"},{"line_number":80,"context_line":"* segmentation_id: this filed is available for a sub port VIF"},{"line_number":81,"context_line":""},{"line_number":82,"context_line":"An example network_data.json file for an instance booted with one trunk port"},{"line_number":83,"context_line":"that has two subports may look like in below:"}],"source_content_type":"text/x-rst","patch_set":6,"id":"7f231b9d_8a684921","line":80,"range":{"start_line":80,"start_character":24,"end_line":80,"end_character":29},"updated":"2017-06-14 08:56:43.000000000","message":"nit: typo","commit_id":"033ae137bd795ef90ae1eafa2261a498ce0c7170"},{"author":{"_account_id":6685,"name":"Baodong (Robert) Li","email":"baoli@cisco.com","username":"baoli"},"change_message_id":"031001bd7f054c3d78e99a3d2aaea263b741ce7d","unresolved":false,"context_lines":[{"line_number":77,"context_line":"regular fields?)."},{"line_number":78,"context_line":""},{"line_number":79,"context_line":"* subport_ids: this field is available for a trunk_port VIF"},{"line_number":80,"context_line":"* segmentation_id: this filed is available for a sub port VIF"},{"line_number":81,"context_line":""},{"line_number":82,"context_line":"An example network_data.json file for an instance booted with one trunk port"},{"line_number":83,"context_line":"that has two subports may look like in below:"}],"source_content_type":"text/x-rst","patch_set":6,"id":"7f231b9d_0f30bde7","line":80,"range":{"start_line":80,"start_character":24,"end_line":80,"end_character":29},"in_reply_to":"7f231b9d_8a684921","updated":"2017-06-14 15:27:51.000000000","message":"Done","commit_id":"033ae137bd795ef90ae1eafa2261a498ce0c7170"},{"author":{"_account_id":6685,"name":"Baodong (Robert) Li","email":"baoli@cisco.com","username":"baoli"},"change_message_id":"031001bd7f054c3d78e99a3d2aaea263b741ce7d","unresolved":false,"context_lines":[{"line_number":77,"context_line":"regular fields?)."},{"line_number":78,"context_line":""},{"line_number":79,"context_line":"* subport_ids: this field is available for a trunk_port VIF"},{"line_number":80,"context_line":"* segmentation_id: this filed is available for a sub port VIF"},{"line_number":81,"context_line":""},{"line_number":82,"context_line":"An example network_data.json file for an instance booted with one trunk port"},{"line_number":83,"context_line":"that has two subports may look like in below:"}],"source_content_type":"text/x-rst","patch_set":6,"id":"7f231b9d_4f3fd5b3","line":80,"range":{"start_line":80,"start_character":2,"end_line":80,"end_character":17},"in_reply_to":"7f231b9d_aa56655b","updated":"2017-06-14 15:27:51.000000000","message":"The assumption is that we only support vlan. No change to VIF for other types of segmentations.","commit_id":"033ae137bd795ef90ae1eafa2261a498ce0c7170"},{"author":{"_account_id":15554,"name":"Bence Romsics","email":"bence.romsics@gmail.com","username":"ebenrom","status":"working for Ericsson, UTC+1 (+DST)"},"change_message_id":"4279d5d58493713558175c0a2569ab6dc3444aeb","unresolved":false,"context_lines":[{"line_number":116,"context_line":"      {"},{"line_number":117,"context_line":"        \"vif_id\": \"143d8632-e320-4fdb-aa07-bf2767085efd\","},{"line_number":118,"context_line":"        \"mtu\": 1500,"},{"line_number":119,"context_line":"        \"vlan_link\": \"tapad7e2436-35\","},{"line_number":120,"context_line":"        \"vlan_id\": 3279,"},{"line_number":121,"context_line":"        \"type\": \"vlan\","},{"line_number":122,"context_line":"        \"id\": \"tap143d8632-e3\","},{"line_number":123,"context_line":"        \"vlan_mac_address\": \"fa:16:3e:8e:b4:99\""},{"line_number":124,"context_line":"      },"}],"source_content_type":"text/x-rst","patch_set":6,"id":"7f231b9d_4a2a3190","line":121,"range":{"start_line":119,"start_character":0,"end_line":121,"end_character":23},"updated":"2017-06-14 08:56:43.000000000","message":"I think the data model would be more flexible like this:\n\n \"parent\": {\n   \"vif_id\": \"ad7e2436-3583-4ae3-844b-06e6b0adaf04\",\n   \"segmentation_type\": \"vlan\",\n   \"segmentation_id\": 3279\n }","commit_id":"033ae137bd795ef90ae1eafa2261a498ce0c7170"},{"author":{"_account_id":6685,"name":"Baodong (Robert) Li","email":"baoli@cisco.com","username":"baoli"},"change_message_id":"031001bd7f054c3d78e99a3d2aaea263b741ce7d","unresolved":false,"context_lines":[{"line_number":116,"context_line":"      {"},{"line_number":117,"context_line":"        \"vif_id\": \"143d8632-e320-4fdb-aa07-bf2767085efd\","},{"line_number":118,"context_line":"        \"mtu\": 1500,"},{"line_number":119,"context_line":"        \"vlan_link\": \"tapad7e2436-35\","},{"line_number":120,"context_line":"        \"vlan_id\": 3279,"},{"line_number":121,"context_line":"        \"type\": \"vlan\","},{"line_number":122,"context_line":"        \"id\": \"tap143d8632-e3\","},{"line_number":123,"context_line":"        \"vlan_mac_address\": \"fa:16:3e:8e:b4:99\""},{"line_number":124,"context_line":"      },"}],"source_content_type":"text/x-rst","patch_set":6,"id":"7f231b9d_6f6bb1b6","line":121,"range":{"start_line":119,"start_character":0,"end_line":121,"end_character":23},"in_reply_to":"7f231b9d_4a2a3190","updated":"2017-06-14 15:27:51.000000000","message":"refere to [3]","commit_id":"033ae137bd795ef90ae1eafa2261a498ce0c7170"},{"author":{"_account_id":15554,"name":"Bence Romsics","email":"bence.romsics@gmail.com","username":"ebenrom","status":"working for Ericsson, UTC+1 (+DST)"},"change_message_id":"259e0c0dd76ad412f6d56bf14d80235b81e96ae2","unresolved":false,"context_lines":[{"line_number":116,"context_line":"      {"},{"line_number":117,"context_line":"        \"vif_id\": \"143d8632-e320-4fdb-aa07-bf2767085efd\","},{"line_number":118,"context_line":"        \"mtu\": 1500,"},{"line_number":119,"context_line":"        \"vlan_link\": \"tapad7e2436-35\","},{"line_number":120,"context_line":"        \"vlan_id\": 3279,"},{"line_number":121,"context_line":"        \"type\": \"vlan\","},{"line_number":122,"context_line":"        \"id\": \"tap143d8632-e3\","},{"line_number":123,"context_line":"        \"vlan_mac_address\": \"fa:16:3e:8e:b4:99\""},{"line_number":124,"context_line":"      },"}],"source_content_type":"text/x-rst","patch_set":6,"id":"7f231b9d_b1f0eb92","line":121,"range":{"start_line":119,"start_character":0,"end_line":121,"end_character":23},"in_reply_to":"7f231b9d_6f6bb1b6","updated":"2017-06-15 15:27:46.000000000","message":"Oh, I see. So the format is defined already and we have to live with it.","commit_id":"033ae137bd795ef90ae1eafa2261a498ce0c7170"},{"author":{"_account_id":15554,"name":"Bence Romsics","email":"bence.romsics@gmail.com","username":"ebenrom","status":"working for Ericsson, UTC+1 (+DST)"},"change_message_id":"4279d5d58493713558175c0a2569ab6dc3444aeb","unresolved":false,"context_lines":[{"line_number":119,"context_line":"        \"vlan_link\": \"tapad7e2436-35\","},{"line_number":120,"context_line":"        \"vlan_id\": 3279,"},{"line_number":121,"context_line":"        \"type\": \"vlan\","},{"line_number":122,"context_line":"        \"id\": \"tap143d8632-e3\","},{"line_number":123,"context_line":"        \"vlan_mac_address\": \"fa:16:3e:8e:b4:99\""},{"line_number":124,"context_line":"      },"},{"line_number":125,"context_line":"      {"}],"source_content_type":"text/x-rst","patch_set":6,"id":"7f231b9d_2a325511","line":122,"range":{"start_line":122,"start_character":8,"end_line":122,"end_character":31},"updated":"2017-06-14 08:56:43.000000000","message":"What does this field want to be? AFAICT there will be no such device neither inside nor outside the instance.\n\nOr is it how we should rename the interface? Then the example could be better, like: \"tapad7e2436-35.3279\"?","commit_id":"033ae137bd795ef90ae1eafa2261a498ce0c7170"},{"author":{"_account_id":6685,"name":"Baodong (Robert) Li","email":"baoli@cisco.com","username":"baoli"},"change_message_id":"031001bd7f054c3d78e99a3d2aaea263b741ce7d","unresolved":false,"context_lines":[{"line_number":119,"context_line":"        \"vlan_link\": \"tapad7e2436-35\","},{"line_number":120,"context_line":"        \"vlan_id\": 3279,"},{"line_number":121,"context_line":"        \"type\": \"vlan\","},{"line_number":122,"context_line":"        \"id\": \"tap143d8632-e3\","},{"line_number":123,"context_line":"        \"vlan_mac_address\": \"fa:16:3e:8e:b4:99\""},{"line_number":124,"context_line":"      },"},{"line_number":125,"context_line":"      {"}],"source_content_type":"text/x-rst","patch_set":6,"id":"7f231b9d_4f68f5b7","line":122,"range":{"start_line":122,"start_character":8,"end_line":122,"end_character":31},"in_reply_to":"7f231b9d_2a325511","updated":"2017-06-14 15:27:51.000000000","message":"dito","commit_id":"033ae137bd795ef90ae1eafa2261a498ce0c7170"},{"author":{"_account_id":15554,"name":"Bence Romsics","email":"bence.romsics@gmail.com","username":"ebenrom","status":"working for Ericsson, UTC+1 (+DST)"},"change_message_id":"4279d5d58493713558175c0a2569ab6dc3444aeb","unresolved":false,"context_lines":[{"line_number":120,"context_line":"        \"vlan_id\": 3279,"},{"line_number":121,"context_line":"        \"type\": \"vlan\","},{"line_number":122,"context_line":"        \"id\": \"tap143d8632-e3\","},{"line_number":123,"context_line":"        \"vlan_mac_address\": \"fa:16:3e:8e:b4:99\""},{"line_number":124,"context_line":"      },"},{"line_number":125,"context_line":"      {"},{"line_number":126,"context_line":"        \"vif_id\": \"4bc16b9c-e2b6-4c09-ba98-e94160cce12d\","}],"source_content_type":"text/x-rst","patch_set":6,"id":"7f231b9d_85203ab2","line":123,"range":{"start_line":123,"start_character":9,"end_line":123,"end_character":14},"updated":"2017-06-14 08:56:43.000000000","message":"Why is this \"vlan_mac_address\" instead of just simply \"mac_address\"?","commit_id":"033ae137bd795ef90ae1eafa2261a498ce0c7170"},{"author":{"_account_id":6685,"name":"Baodong (Robert) Li","email":"baoli@cisco.com","username":"baoli"},"change_message_id":"031001bd7f054c3d78e99a3d2aaea263b741ce7d","unresolved":false,"context_lines":[{"line_number":120,"context_line":"        \"vlan_id\": 3279,"},{"line_number":121,"context_line":"        \"type\": \"vlan\","},{"line_number":122,"context_line":"        \"id\": \"tap143d8632-e3\","},{"line_number":123,"context_line":"        \"vlan_mac_address\": \"fa:16:3e:8e:b4:99\""},{"line_number":124,"context_line":"      },"},{"line_number":125,"context_line":"      {"},{"line_number":126,"context_line":"        \"vif_id\": \"4bc16b9c-e2b6-4c09-ba98-e94160cce12d\","}],"source_content_type":"text/x-rst","patch_set":6,"id":"7f231b9d_cfa1a5fa","line":123,"range":{"start_line":123,"start_character":9,"end_line":123,"end_character":14},"in_reply_to":"7f231b9d_85203ab2","updated":"2017-06-14 15:27:51.000000000","message":"dito","commit_id":"033ae137bd795ef90ae1eafa2261a498ce0c7170"},{"author":{"_account_id":15554,"name":"Bence Romsics","email":"bence.romsics@gmail.com","username":"ebenrom","status":"working for Ericsson, UTC+1 (+DST)"},"change_message_id":"4279d5d58493713558175c0a2569ab6dc3444aeb","unresolved":false,"context_lines":[{"line_number":136,"context_line":""},{"line_number":137,"context_line":"To support the use case that vlan subinterfaces must not be configured through"},{"line_number":138,"context_line":"cloud-init, a new attribute will be added in the neutron trunk API to indicate"},{"line_number":139,"context_line":"that. The default value of the attribute, if desirable, can be configurable"},{"line_number":140,"context_line":"through a config option called default_auto_vlan. The config"},{"line_number":141,"context_line":"option has a default value of False. The attribute will be populated in the"},{"line_number":142,"context_line":"trunk_details."},{"line_number":143,"context_line":""}],"source_content_type":"text/x-rst","patch_set":6,"id":"7f231b9d_659f5e5f","line":140,"range":{"start_line":139,"start_character":6,"end_line":140,"end_character":49},"updated":"2017-06-14 08:56:43.000000000","message":"An API default should not come from configuration. Because that makes the API\u0027s behavior unpredictable for everyone not knowing the configuration. And the API user by definition does not know the configuration.","commit_id":"033ae137bd795ef90ae1eafa2261a498ce0c7170"},{"author":{"_account_id":6685,"name":"Baodong (Robert) Li","email":"baoli@cisco.com","username":"baoli"},"change_message_id":"031001bd7f054c3d78e99a3d2aaea263b741ce7d","unresolved":false,"context_lines":[{"line_number":136,"context_line":""},{"line_number":137,"context_line":"To support the use case that vlan subinterfaces must not be configured through"},{"line_number":138,"context_line":"cloud-init, a new attribute will be added in the neutron trunk API to indicate"},{"line_number":139,"context_line":"that. The default value of the attribute, if desirable, can be configurable"},{"line_number":140,"context_line":"through a config option called default_auto_vlan. The config"},{"line_number":141,"context_line":"option has a default value of False. The attribute will be populated in the"},{"line_number":142,"context_line":"trunk_details."},{"line_number":143,"context_line":""}],"source_content_type":"text/x-rst","patch_set":6,"id":"7f231b9d_ef6101ab","line":140,"range":{"start_line":139,"start_character":6,"end_line":140,"end_character":49},"in_reply_to":"7f231b9d_659f5e5f","updated":"2017-06-14 15:27:51.000000000","message":"This is to simplify the case where the entire deployment is either supporting auto config for all the trunks or not. If this is desirable, it\u0027d documented as part of the API.","commit_id":"033ae137bd795ef90ae1eafa2261a498ce0c7170"},{"author":{"_account_id":15554,"name":"Bence Romsics","email":"bence.romsics@gmail.com","username":"ebenrom","status":"working for Ericsson, UTC+1 (+DST)"},"change_message_id":"259e0c0dd76ad412f6d56bf14d80235b81e96ae2","unresolved":false,"context_lines":[{"line_number":136,"context_line":""},{"line_number":137,"context_line":"To support the use case that vlan subinterfaces must not be configured through"},{"line_number":138,"context_line":"cloud-init, a new attribute will be added in the neutron trunk API to indicate"},{"line_number":139,"context_line":"that. The default value of the attribute, if desirable, can be configurable"},{"line_number":140,"context_line":"through a config option called default_auto_vlan. The config"},{"line_number":141,"context_line":"option has a default value of False. The attribute will be populated in the"},{"line_number":142,"context_line":"trunk_details."},{"line_number":143,"context_line":""}],"source_content_type":"text/x-rst","patch_set":6,"id":"7f231b9d_34a289fd","line":140,"range":{"start_line":139,"start_character":6,"end_line":140,"end_character":49},"in_reply_to":"7f231b9d_ef6101ab","updated":"2017-06-15 15:27:46.000000000","message":"I think this is a trade of API client programmer nuisance for cloud admin convenience and we should keep in mind that the admin is not our end-user.","commit_id":"033ae137bd795ef90ae1eafa2261a498ce0c7170"},{"author":{"_account_id":15554,"name":"Bence Romsics","email":"bence.romsics@gmail.com","username":"ebenrom","status":"working for Ericsson, UTC+1 (+DST)"},"change_message_id":"4279d5d58493713558175c0a2569ab6dc3444aeb","unresolved":false,"context_lines":[{"line_number":134,"context_line":"    ]"},{"line_number":135,"context_line":"  }"},{"line_number":136,"context_line":""},{"line_number":137,"context_line":"To support the use case that vlan subinterfaces must not be configured through"},{"line_number":138,"context_line":"cloud-init, a new attribute will be added in the neutron trunk API to indicate"},{"line_number":139,"context_line":"that. The default value of the attribute, if desirable, can be configurable"},{"line_number":140,"context_line":"through a config option called default_auto_vlan. The config"},{"line_number":141,"context_line":"option has a default value of False. The attribute will be populated in the"},{"line_number":142,"context_line":"trunk_details."},{"line_number":143,"context_line":""},{"line_number":144,"context_line":"Alternatives"},{"line_number":145,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":6,"id":"7f231b9d_850efa2f","line":142,"range":{"start_line":137,"start_character":0,"end_line":142,"end_character":14},"updated":"2017-06-14 08:56:43.000000000","message":"I fail to see the reason to introduce that complexity. What if we always expose the subport details, don\u0027t control the exposure from the API and whatever runs in the instance chooses to use or ignore the information in its own jurisdiction?\n\nIf that\u0027s not enough can you add a reason why?","commit_id":"033ae137bd795ef90ae1eafa2261a498ce0c7170"},{"author":{"_account_id":6685,"name":"Baodong (Robert) Li","email":"baoli@cisco.com","username":"baoli"},"change_message_id":"031001bd7f054c3d78e99a3d2aaea263b741ce7d","unresolved":false,"context_lines":[{"line_number":134,"context_line":"    ]"},{"line_number":135,"context_line":"  }"},{"line_number":136,"context_line":""},{"line_number":137,"context_line":"To support the use case that vlan subinterfaces must not be configured through"},{"line_number":138,"context_line":"cloud-init, a new attribute will be added in the neutron trunk API to indicate"},{"line_number":139,"context_line":"that. The default value of the attribute, if desirable, can be configurable"},{"line_number":140,"context_line":"through a config option called default_auto_vlan. The config"},{"line_number":141,"context_line":"option has a default value of False. The attribute will be populated in the"},{"line_number":142,"context_line":"trunk_details."},{"line_number":143,"context_line":""},{"line_number":144,"context_line":"Alternatives"},{"line_number":145,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":6,"id":"7f231b9d_8fe96db8","line":142,"range":{"start_line":137,"start_character":0,"end_line":142,"end_character":14},"in_reply_to":"7f231b9d_850efa2f","updated":"2017-06-14 15:27:51.000000000","message":"Here we are assuming that the instance uses either cloud-init or glean to grab network_data.json in the metadata or configdrive and configure the instance\u0027s networking. Sean has a use case in which the instance still uses cloud-init for other purposes, but must not use cloud-init to configure the vlan sub interfaces. In that case, network_data.json in the metadata would confuse the instance.","commit_id":"033ae137bd795ef90ae1eafa2261a498ce0c7170"},{"author":{"_account_id":15554,"name":"Bence Romsics","email":"bence.romsics@gmail.com","username":"ebenrom","status":"working for Ericsson, UTC+1 (+DST)"},"change_message_id":"259e0c0dd76ad412f6d56bf14d80235b81e96ae2","unresolved":false,"context_lines":[{"line_number":134,"context_line":"    ]"},{"line_number":135,"context_line":"  }"},{"line_number":136,"context_line":""},{"line_number":137,"context_line":"To support the use case that vlan subinterfaces must not be configured through"},{"line_number":138,"context_line":"cloud-init, a new attribute will be added in the neutron trunk API to indicate"},{"line_number":139,"context_line":"that. The default value of the attribute, if desirable, can be configurable"},{"line_number":140,"context_line":"through a config option called default_auto_vlan. The config"},{"line_number":141,"context_line":"option has a default value of False. The attribute will be populated in the"},{"line_number":142,"context_line":"trunk_details."},{"line_number":143,"context_line":""},{"line_number":144,"context_line":"Alternatives"},{"line_number":145,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":6,"id":"7f231b9d_d1afe727","line":142,"range":{"start_line":137,"start_character":0,"end_line":142,"end_character":14},"in_reply_to":"7f231b9d_8fe96db8","updated":"2017-06-15 15:27:46.000000000","message":"I\u0027m not against. I just think if there is a use case it would be a good idea to document it here.","commit_id":"033ae137bd795ef90ae1eafa2261a498ce0c7170"},{"author":{"_account_id":15554,"name":"Bence Romsics","email":"bence.romsics@gmail.com","username":"ebenrom","status":"working for Ericsson, UTC+1 (+DST)"},"change_message_id":"4279d5d58493713558175c0a2569ab6dc3444aeb","unresolved":false,"context_lines":[{"line_number":165,"context_line":"  RESOURCE_ATTRIBUTE_MAP \u003d {"},{"line_number":166,"context_line":"      TRUNKS: {"},{"line_number":167,"context_line":"          ..."},{"line_number":168,"context_line":"          \u0027auto_vlan\u0027: {\u0027allow_post\u0027: True, \u0027allow_put\u0027: True,"},{"line_number":169,"context_line":"                        \u0027default\u0027: False,"},{"line_number":170,"context_line":"                        \u0027convert_to\u0027: lib_converters.convert_to_boolean,"},{"line_number":171,"context_line":"                        \u0027is_visible\u0027: True},"}],"source_content_type":"text/x-rst","patch_set":6,"id":"7f231b9d_2585e65a","line":168,"range":{"start_line":168,"start_character":16,"end_line":168,"end_character":20},"updated":"2017-06-14 08:56:43.000000000","message":"I\u0027d avoid hardcoding the choice of vlan as a segmentation type. Right now there\u0027s no other segmentation type implemented, but the API was intentionally left generic to make that possible in the future. So for example I\u0027d suggest \u0027auto_subports\u0027.\n\nAlso this part belongs to neutron folks.","commit_id":"033ae137bd795ef90ae1eafa2261a498ce0c7170"},{"author":{"_account_id":6685,"name":"Baodong (Robert) Li","email":"baoli@cisco.com","username":"baoli"},"change_message_id":"031001bd7f054c3d78e99a3d2aaea263b741ce7d","unresolved":false,"context_lines":[{"line_number":165,"context_line":"  RESOURCE_ATTRIBUTE_MAP \u003d {"},{"line_number":166,"context_line":"      TRUNKS: {"},{"line_number":167,"context_line":"          ..."},{"line_number":168,"context_line":"          \u0027auto_vlan\u0027: {\u0027allow_post\u0027: True, \u0027allow_put\u0027: True,"},{"line_number":169,"context_line":"                        \u0027default\u0027: False,"},{"line_number":170,"context_line":"                        \u0027convert_to\u0027: lib_converters.convert_to_boolean,"},{"line_number":171,"context_line":"                        \u0027is_visible\u0027: True},"}],"source_content_type":"text/x-rst","patch_set":6,"id":"7f231b9d_6f6e1130","line":168,"range":{"start_line":168,"start_character":16,"end_line":168,"end_character":20},"in_reply_to":"7f231b9d_2585e65a","updated":"2017-06-14 15:27:51.000000000","message":"auto_subports sound better actually.\n\nI\u0027m trying to get a consensus first about the API change. If we all agree that this is where we should go, I need to create an neutron RFE for it. You are right, the API change belongs to neutron","commit_id":"033ae137bd795ef90ae1eafa2261a498ce0c7170"},{"author":{"_account_id":15554,"name":"Bence Romsics","email":"bence.romsics@gmail.com","username":"ebenrom","status":"working for Ericsson, UTC+1 (+DST)"},"change_message_id":"259e0c0dd76ad412f6d56bf14d80235b81e96ae2","unresolved":false,"context_lines":[{"line_number":165,"context_line":"  RESOURCE_ATTRIBUTE_MAP \u003d {"},{"line_number":166,"context_line":"      TRUNKS: {"},{"line_number":167,"context_line":"          ..."},{"line_number":168,"context_line":"          \u0027auto_vlan\u0027: {\u0027allow_post\u0027: True, \u0027allow_put\u0027: True,"},{"line_number":169,"context_line":"                        \u0027default\u0027: False,"},{"line_number":170,"context_line":"                        \u0027convert_to\u0027: lib_converters.convert_to_boolean,"},{"line_number":171,"context_line":"                        \u0027is_visible\u0027: True},"}],"source_content_type":"text/x-rst","patch_set":6,"id":"7f231b9d_71c81321","line":168,"range":{"start_line":168,"start_character":16,"end_line":168,"end_character":20},"in_reply_to":"7f231b9d_6f6e1130","updated":"2017-06-15 15:27:46.000000000","message":"That sounds good. Approaching both nova and neutron folks at the same time during design helps a lot in my experience.","commit_id":"033ae137bd795ef90ae1eafa2261a498ce0c7170"},{"author":{"_account_id":15554,"name":"Bence Romsics","email":"bence.romsics@gmail.com","username":"ebenrom","status":"working for Ericsson, UTC+1 (+DST)"},"change_message_id":"4279d5d58493713558175c0a2569ab6dc3444aeb","unresolved":false,"context_lines":[{"line_number":185,"context_line":"Other end user impact"},{"line_number":186,"context_line":"---------------------"},{"line_number":187,"context_line":""},{"line_number":188,"context_line":"With the proposed change, \u0027nova list\u0027 will be able to see not only the trunk"},{"line_number":189,"context_line":"ports but also the associated subports. If this is not desirable, it can be"},{"line_number":190,"context_line":"changed not to do so."},{"line_number":191,"context_line":""},{"line_number":192,"context_line":"Performance Impact"}],"source_content_type":"text/x-rst","patch_set":6,"id":"7f231b9d_c544f21d","line":189,"range":{"start_line":188,"start_character":0,"end_line":189,"end_character":39},"updated":"2017-06-14 08:56:43.000000000","message":"I\u0027m not sure this is needed. In my mind the less nova knows about subports the smaller the change will be.","commit_id":"033ae137bd795ef90ae1eafa2261a498ce0c7170"},{"author":{"_account_id":15554,"name":"Bence Romsics","email":"bence.romsics@gmail.com","username":"ebenrom","status":"working for Ericsson, UTC+1 (+DST)"},"change_message_id":"4279d5d58493713558175c0a2569ab6dc3444aeb","unresolved":false,"context_lines":[{"line_number":245,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":246,"context_line":""},{"line_number":247,"context_line":".. [1] `Neutron/TrunkPort \u003chttps://wiki.openstack.org/wiki/Neutron/TrunkPort\u003e`_."},{"line_number":248,"context_line":".. [2] `VLAN trunking networks for NFV \u003chttps://specs.openstack.org/openstack/neutron-specs/specs/kilo/nfv-vlan-trunks.html\u003e`_."},{"line_number":249,"context_line":".. [3] `API: Proxy neutron configuration to guest instance \u003chttps://specs.openstack.org/openstack/nova-specs/specs/liberty/implemented/metadata-service-network-info.html\u003e`_."},{"line_number":250,"context_line":""},{"line_number":251,"context_line":"History"}],"source_content_type":"text/x-rst","patch_set":6,"id":"7f231b9d_a56d7633","line":248,"range":{"start_line":248,"start_character":8,"end_line":248,"end_character":124},"updated":"2017-06-14 08:56:43.000000000","message":"This is the wrong spec. Instead:\n\nhttp://specs.openstack.org/openstack/neutron-specs/specs/newton/vlan-aware-vms.html","commit_id":"033ae137bd795ef90ae1eafa2261a498ce0c7170"},{"author":{"_account_id":6685,"name":"Baodong (Robert) Li","email":"baoli@cisco.com","username":"baoli"},"change_message_id":"031001bd7f054c3d78e99a3d2aaea263b741ce7d","unresolved":false,"context_lines":[{"line_number":245,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":246,"context_line":""},{"line_number":247,"context_line":".. [1] `Neutron/TrunkPort \u003chttps://wiki.openstack.org/wiki/Neutron/TrunkPort\u003e`_."},{"line_number":248,"context_line":".. [2] `VLAN trunking networks for NFV \u003chttps://specs.openstack.org/openstack/neutron-specs/specs/kilo/nfv-vlan-trunks.html\u003e`_."},{"line_number":249,"context_line":".. [3] `API: Proxy neutron configuration to guest instance \u003chttps://specs.openstack.org/openstack/nova-specs/specs/liberty/implemented/metadata-service-network-info.html\u003e`_."},{"line_number":250,"context_line":""},{"line_number":251,"context_line":"History"}],"source_content_type":"text/x-rst","patch_set":6,"id":"7f231b9d_0f71dd0c","line":248,"range":{"start_line":248,"start_character":8,"end_line":248,"end_character":124},"in_reply_to":"7f231b9d_a56d7633","updated":"2017-06-14 15:27:51.000000000","message":"Done","commit_id":"033ae137bd795ef90ae1eafa2261a498ce0c7170"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"317c61d2cc93891a627894aecf1913394ef20367","unresolved":false,"context_lines":[{"line_number":139,"context_line":"that. The default value of the attribute, if desirable, can be configurable"},{"line_number":140,"context_line":"through a config option called default_auto_subports. The config"},{"line_number":141,"context_line":"option has a default value of False. The attribute will be populated in the"},{"line_number":142,"context_line":"trunk_details. TBD: Refer to the companion neutron RFE for this."},{"line_number":143,"context_line":""},{"line_number":144,"context_line":"Alternatives"},{"line_number":145,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":7,"id":"1f1a1f67_f200c603","line":142,"in_reply_to":"","updated":"2017-07-17 02:09:53.000000000","message":"Provided the default value is false i think this is ok as it maintains the current behavior. That said it should probably be a neutron config option not nova and it must be discoverable via the api. Otherwise we should not introduce a new config optio and require it to be set as an attribute on the port object.","commit_id":"2c6ab911f49933b358f8df695d1ff52224a454d2"},{"author":{"_account_id":6685,"name":"Baodong (Robert) Li","email":"baoli@cisco.com","username":"baoli"},"change_message_id":"8f2218d9ed954b05369bbd40f9e25460f9c895eb","unresolved":false,"context_lines":[{"line_number":139,"context_line":"that. The default value of the attribute, if desirable, can be configurable"},{"line_number":140,"context_line":"through a config option called default_auto_subports. The config"},{"line_number":141,"context_line":"option has a default value of False. The attribute will be populated in the"},{"line_number":142,"context_line":"trunk_details. TBD: Refer to the companion neutron RFE for this."},{"line_number":143,"context_line":""},{"line_number":144,"context_line":"Alternatives"},{"line_number":145,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":7,"id":"1f1a1f67_e4a8f68c","line":142,"in_reply_to":"1f1a1f67_f200c603","updated":"2017-07-17 13:46:04.000000000","message":"Yeah, the config option default_auto_subports is a neutron option. \nIf you agree, I\u0027d like to go ahead to create the neutron RFE","commit_id":"2c6ab911f49933b358f8df695d1ff52224a454d2"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"317c61d2cc93891a627894aecf1913394ef20367","unresolved":false,"context_lines":[{"line_number":223,"context_line":"Testing"},{"line_number":224,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":225,"context_line":""},{"line_number":226,"context_line":"Do we need tempest tests to check subport connectivity?"},{"line_number":227,"context_line":""},{"line_number":228,"context_line":"Documentation Impact"},{"line_number":229,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":7,"id":"1f1a1f67_5723ecbd","line":226,"updated":"2017-07-17 02:09:53.000000000","message":"I think that would be best","commit_id":"2c6ab911f49933b358f8df695d1ff52224a454d2"},{"author":{"_account_id":6685,"name":"Baodong (Robert) Li","email":"baoli@cisco.com","username":"baoli"},"change_message_id":"8f2218d9ed954b05369bbd40f9e25460f9c895eb","unresolved":false,"context_lines":[{"line_number":223,"context_line":"Testing"},{"line_number":224,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":225,"context_line":""},{"line_number":226,"context_line":"Do we need tempest tests to check subport connectivity?"},{"line_number":227,"context_line":""},{"line_number":228,"context_line":"Documentation Impact"},{"line_number":229,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":7,"id":"1f1a1f67_649ce669","line":226,"in_reply_to":"1f1a1f67_5723ecbd","updated":"2017-07-17 13:46:04.000000000","message":"sounds good","commit_id":"2c6ab911f49933b358f8df695d1ff52224a454d2"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"a35783e832de7db7b41c97c75a42c3dc71a91c0e","unresolved":false,"context_lines":[{"line_number":140,"context_line":"through a config option called default_auto_subports. The config"},{"line_number":141,"context_line":"option has a default value of False. The attribute will be populated in the"},{"line_number":142,"context_line":"trunk_details. Refer to the neutron RFE"},{"line_number":143,"context_line":"https://bugs.launchpad.net/neutron/+bug/1705084."},{"line_number":144,"context_line":""},{"line_number":145,"context_line":"Alternatives"},{"line_number":146,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":8,"id":"df7087c5_9e95a689","line":143,"range":{"start_line":143,"start_character":0,"end_line":143,"end_character":47},"updated":"2018-03-15 14:59:22.000000000","message":"This is marked as won\u0027t fix.","commit_id":"1d9552cd3f0f303504812a309c8496d6348785b6"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"a35783e832de7db7b41c97c75a42c3dc71a91c0e","unresolved":false,"context_lines":[{"line_number":166,"context_line":"REST API impact"},{"line_number":167,"context_line":"---------------"},{"line_number":168,"context_line":""},{"line_number":169,"context_line":"None"},{"line_number":170,"context_line":""},{"line_number":171,"context_line":"Security impact"},{"line_number":172,"context_line":"---------------"}],"source_content_type":"text/x-rst","patch_set":8,"id":"df7087c5_1eef561e","line":169,"updated":"2018-03-15 14:59:22.000000000","message":"Well, there is an API impact here for the metadata API yes? We\u0027d be changing the network data response and bump the version right?","commit_id":"1d9552cd3f0f303504812a309c8496d6348785b6"}]}
