)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":5890,"name":"Doug Goldstein","email":"cardoe@cardoe.com","username":"cardoe"},"change_message_id":"f8cfe8082bd058d01adf508d18fa6b3b1469add6","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":2,"id":"737de59d_cd33ae06","updated":"2025-11-12 17:53:21.000000000","message":"@jay@jvf.cc \u0026 @me@clifhouck.com So with Trait Based Port Scheduling will the end user be able to run \"openstack server create -nic net_id\u003dmy-neutron-network,I_WANT_A_BONDED_LINK\u003dYES\" or is that something that as an administrator I\u0027ll have to have special flavors or special images which select bonds or don\u0027t select bonds?\n\nI have users that today use the same Linux image and we\u0027re achieving this with \"--property bond\u003dactive-backup\"","commit_id":"5908b8957c7faa02c2727a1eb9e41f65338c59fb"},{"author":{"_account_id":14228,"name":"Clif Houck","email":"me@clifhouck.com","username":"clif_h"},"change_message_id":"130e7be5a97d335c0d76284592cbf30162d0cd62","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"78e2e98c_1fe10a99","updated":"2025-09-27 14:28:39.000000000","message":"Have you seen https://opendev.org/openstack/ironic-specs/src/branch/master/specs/approved/trait-based-port-scheduling.rst ? I\u0027m in the middle of implementing this spec. I\u0027m currently referring to it as Trait Based Networking or TBN. \n\nIt\u0027s hard to imagine a scenario where these two specs don\u0027t heavily overlap or interact somehow. It would seem remiss to merge this spec as-is without acknowledging TBN at least. \n\nAt a minimum I would imagine the need for configuration options to select which method Ironic is going to use to attach ports/portgroups. i.e. original method, TBN, or tag-only based.\n\nIMHO, ideally TBN incorporates tags as part of its filter expressions and provides enough functionality to cover the use cases tag-based scheduling is trying to solve for.","commit_id":"5908b8957c7faa02c2727a1eb9e41f65338c59fb"},{"author":{"_account_id":24828,"name":"Kaifeng Wang","email":"kaifeng.w@gmail.com","username":"wangkf"},"change_message_id":"6a890cdab935a20091c760d0870261b962b66a31","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"75a97844_c39604d1","updated":"2025-11-26 00:18:34.000000000","message":"I take a deeper look on the trait based port scheduling, and think there are two distinct differences between the two specs.\ntrait based scheduling is somewhat similar with introspection rules matching by extending a few port properties, while some choices are passed from the nova perspective and coupled with ironic configuration, this could not be a easy task for a cluster with different machines.\ntag base scheduling is simpler by just matching tags, which has a more defined result. In practice tag is preconfigured by administrators at ironic side, during cluster provisioning vif with desired plane was tagged to match ironic configuration to reach a deterministic result, this is crucial to the telecom area in our observation. nova is not involved in this process.","commit_id":"5908b8957c7faa02c2727a1eb9e41f65338c59fb"},{"author":{"_account_id":5890,"name":"Doug Goldstein","email":"cardoe@cardoe.com","username":"cardoe"},"change_message_id":"daed023b0e89981537804fccf87844411b0462db","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"a5ae41dd_835b0fa8","updated":"2025-02-06 23:55:20.000000000","message":"So I\u0027ve got similar wants to be able to create these mappings.\n\nI see in your bug you mention that VXLAN does not allow for physical_network to be set. Should we ask for neutron to lift this limitation?\n\nWhen I originally approached this I was using redfish to fetch the name of the port and set the name of the port. Unfortunately Ironic requires the name to be unique so instead I\u0027ve fallen back to prefixing it with a shortened node identifier. Not great but it could be a way that the name could be used.\n\nAnother thing I\u0027ve noticed is that the neutron port has binding_host_id set to the baremetal node UUID as well as the device_id while setting the device_owner to \"baremetal:none\". To better make the connection we could be setting the actual Ironic port info here.\n\nFurther Neutron\u0027s added support for Cyborg with device_profile on ports, which can be used by Nova and Placement to influence scheduling. Which would likely be a want by users. In this case our Ironic ports could have extra data on them so that scheduling with traits could work here as well it would be a win.","commit_id":"5908b8957c7faa02c2727a1eb9e41f65338c59fb"},{"author":{"_account_id":24828,"name":"Kaifeng Wang","email":"kaifeng.w@gmail.com","username":"wangkf"},"change_message_id":"4644b59fac13a8ba0280a1286b07618edbb6e83e","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"de0d0f30_a4b61947","updated":"2025-06-24 01:24:12.000000000","message":"There is also a trait based proposal, I think basically they are same technique and both will work, one thing worth to mention is that the format of traits is a bit of tight, I would avoid such limit out of nova region.","commit_id":"5908b8957c7faa02c2727a1eb9e41f65338c59fb"},{"author":{"_account_id":10342,"name":"Jay Faulkner","display_name":"JayF","email":"jay@jvf.cc","username":"JayF","status":"youtube.com/@oss-gr / podcast.gr-oss.io"},"change_message_id":"358df36feaa3f020bdbc7d5b6f87034ebeaca185","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":2,"id":"ef72849a_915ad589","updated":"2025-09-26 20:05:11.000000000","message":"Would supporting ironic_port.tag and neutron_port.tag in the Trait Based Networking spec solve this problem as well? Ideally we\u0027d have one way to do port scheduling if possible.","commit_id":"5908b8957c7faa02c2727a1eb9e41f65338c59fb"},{"author":{"_account_id":24828,"name":"Kaifeng Wang","email":"kaifeng.w@gmail.com","username":"wangkf"},"change_message_id":"2d9a792c67d384f0c76d6a2a30dcb30124e2bcae","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":2,"id":"685dc7c4_db9ef0aa","in_reply_to":"6416acbd_145cf210","updated":"2025-02-09 08:08:55.000000000","message":"In neutron the physical_network is related with the physical interface that packets should go through, but vxlan is L3 over L2 that packets will be routed by vtep point that can be elsewhere.","commit_id":"5908b8957c7faa02c2727a1eb9e41f65338c59fb"},{"author":{"_account_id":5890,"name":"Doug Goldstein","email":"cardoe@cardoe.com","username":"cardoe"},"change_message_id":"4ea6657eff889dc34137a67bb8ba03fb2585ae72","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":2,"id":"d6cfd1b9_9eb05299","in_reply_to":"685dc7c4_db9ef0aa","updated":"2025-02-10 03:28:02.000000000","message":"Absolutely but you can have multiple physical fabrics carrying that VTEP traffic. Many of my bare metal servers are connected to two physically separate fabrics and join in BGP EVPN for L2VNI VXLAN. The lack of the ability to distinguish those two fabrics is definitely an issue for me.","commit_id":"5908b8957c7faa02c2727a1eb9e41f65338c59fb"},{"author":{"_account_id":14228,"name":"Clif Houck","email":"me@clifhouck.com","username":"clif_h"},"change_message_id":"ec6839fef4c2779e23aee847f02f8d65e21718da","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":2,"id":"b544c84b_259c91cc","in_reply_to":"737de59d_cd33ae06","updated":"2025-11-12 18:41:23.000000000","message":"It\u0027s a matter of plumbing that information to the TBN/TBPS layer. If that\u0027s information that is exposed on a neutron network object or ironic port/portgroup object it should be relatively easy to plumb. \n\nIn terms of a TBN trait it would look something like:\n\nCUSTOM_BONDED_LINK_TRAIT:\n  - action: attach_port # Or perhaps bond_port\n    filter: port.category \u003d\u003d \u0027bonded_link\u0027 \u0026\u0026 network.id \u003d\u003d \u0027my-neutron-network\u0027\n    \nThen a port with the category \u0027bonded_link\u0027 would be attached to a network with ID \u0027my-neutron-network\u0027.","commit_id":"5908b8957c7faa02c2727a1eb9e41f65338c59fb"},{"author":{"_account_id":10342,"name":"Jay Faulkner","display_name":"JayF","email":"jay@jvf.cc","username":"JayF","status":"youtube.com/@oss-gr / podcast.gr-oss.io"},"change_message_id":"962af6e777be7123f1fe2e41bc5e55ba00839551","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":2,"id":"7bfc8638_07046cda","in_reply_to":"75a97844_c39604d1","updated":"2026-01-13 22:12:01.000000000","message":"I\u0027m 99.999% certain TBN will fulfill this need with a simple yaml rule file matching [network].tag \u003d\u003d [port].tag. Should we discuss in detail? Clif and I can get on a call if you want.","commit_id":"5908b8957c7faa02c2727a1eb9e41f65338c59fb"},{"author":{"_account_id":10342,"name":"Jay Faulkner","display_name":"JayF","email":"jay@jvf.cc","username":"JayF","status":"youtube.com/@oss-gr / podcast.gr-oss.io"},"change_message_id":"5800acbabaf63de96df0e7320f7d988d654cb67b","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":2,"id":"563a3b47_f2046e6f","in_reply_to":"8bc43915_710baa82","updated":"2025-11-10 18:41:00.000000000","message":"I am not sure I agree -- there\u0027s a place where these specs intersect and figuring that out is much better than having two parallel ways of doing things.","commit_id":"5908b8957c7faa02c2727a1eb9e41f65338c59fb"},{"author":{"_account_id":5890,"name":"Doug Goldstein","email":"cardoe@cardoe.com","username":"cardoe"},"change_message_id":"96dbc866c145b6bae97a5b8d1cb7a2a6872f9ece","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":2,"id":"45131787_e8a00fce","in_reply_to":"93ee0193_0ed9113c","updated":"2025-11-12 19:34:17.000000000","message":"So my example is for users that wouldn\u0027t see Ironic or really interact with it but would do these requests via Nova without having an admin / Ironic access person touching those nodes specifically. Those users are self deterministic so they might make their networks right before they run the command to build a server.\n\nSo how would that work? Cause I understand how my request would work with @kaifeng.w@gmail.com\u0027s proposal and that\u0027s why I agree with @juliaashleykreger@gmail.com that they\u0027re more complimentary.","commit_id":"5908b8957c7faa02c2727a1eb9e41f65338c59fb"},{"author":{"_account_id":5890,"name":"Doug Goldstein","email":"cardoe@cardoe.com","username":"cardoe"},"change_message_id":"2e5eab458a4cd9210e5ae551df86491579ac0259","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":2,"id":"6416acbd_145cf210","in_reply_to":"a5ae41dd_835b0fa8","updated":"2025-02-06 23:55:45.000000000","message":"Meant to leave this unresolved.","commit_id":"5908b8957c7faa02c2727a1eb9e41f65338c59fb"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"993591fca0b11c82e8248984b15501043bd5c330","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":2,"id":"8bc43915_710baa82","in_reply_to":"af4503cb_2e668cc4","updated":"2025-11-10 18:05:15.000000000","message":"I personally believe complimenting is better. There are always different approaches and I just had a discussion with folks using tags today. Granted, they may be using tags differently, but that is okay. There is already an expectation there and the overall use case and modeling is different, and that is okay.","commit_id":"5908b8957c7faa02c2727a1eb9e41f65338c59fb"},{"author":{"_account_id":14228,"name":"Clif Houck","email":"me@clifhouck.com","username":"clif_h"},"change_message_id":"7fe8ea940520643fce6aac87536639f188a6fb03","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":2,"id":"93ee0193_0ed9113c","in_reply_to":"b544c84b_259c91cc","updated":"2025-11-12 18:50:03.000000000","message":"You can also stack actions in TBN traits so you could have a \u0027bond_ports\u0027 action followed by an \u0027attach_port\u0027 action with the appropriate filters set to do everything you want theoretically.","commit_id":"5908b8957c7faa02c2727a1eb9e41f65338c59fb"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"ee6406d552223954bb97cbe17959649645d8f794","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"1da2be4e_d9d37748","in_reply_to":"de0d0f30_a4b61947","updated":"2025-07-16 14:58:54.000000000","message":"I don\u0027t think there is a mutual exclusion or requirement. I guess my stance is more is better, and both ways are valid approaches. In the case of the users, they simply cannot know/understand/comprehend tags at the lower level. They can only conceptually understand what they need at a higher level and the other spec is geared towards that.\n\nThink of it as entirely different use cases and models. You view it as a constraint but your pre-creating with tags. In the other case, the users can\u0027t possibly do that, their needs are more abstract due to seeking the maximum predictable behavior.","commit_id":"5908b8957c7faa02c2727a1eb9e41f65338c59fb"},{"author":{"_account_id":24828,"name":"Kaifeng Wang","email":"kaifeng.w@gmail.com","username":"wangkf"},"change_message_id":"106e323843cc48c2a2a76f6f0c12a225b0fb7561","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":2,"id":"af4503cb_2e668cc4","in_reply_to":"ef72849a_915ad589","updated":"2025-09-29 14:44:51.000000000","message":"As previously said I think two spec is overlapping, I\u0027ll take a further look if everything is satisfied, but I don\u0027t think they are essentially different.","commit_id":"5908b8957c7faa02c2727a1eb9e41f65338c59fb"}],"specs/approved/port-tag-scheduling.rst":[{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"ba06dea06478b04462d4c812b7258f25f216fcbf","unresolved":true,"context_lines":[{"line_number":24,"context_line":"ports. Physical network awareness addressed this demand to some extent, but"},{"line_number":25,"context_line":"not all networking have separate network plane for physical networks."},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"As a tunneling network technique VxLAN does not have the concept of network"},{"line_number":28,"context_line":"plane at all, there is no way for users to utilize features like physical"},{"line_number":29,"context_line":"network awareness."},{"line_number":30,"context_line":""},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"Proposed change"}],"source_content_type":"text/x-rst","patch_set":2,"id":"03992969_91f76f87","line":29,"range":{"start_line":27,"start_character":0,"end_line":29,"end_character":18},"updated":"2025-06-23 19:24:34.000000000","message":"Nit: this feels kind of out of place. It IS a valid observation, but more so around neutron and the tie-in. I guess I don\u0027t understand why it is being mentioned.","commit_id":"5908b8957c7faa02c2727a1eb9e41f65338c59fb"},{"author":{"_account_id":14228,"name":"Clif Houck","email":"me@clifhouck.com","username":"clif_h"},"change_message_id":"130e7be5a97d335c0d76284592cbf30162d0cd62","unresolved":true,"context_lines":[{"line_number":40,"context_line":"port2 with tags \"foo,bar\" and \"samwell,tarly\", a VIF with tag \"foo\" will be"},{"line_number":41,"context_line":"attached to port1, a VIF with tag \"tarly\" will be attached to port2. And if a"},{"line_number":42,"context_line":"VIF has tag that doesn\u0027t fit as any subset of ironic ports, \"john\" for"},{"line_number":43,"context_line":"example, the attaching failed."},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"The tag matching has higher priority before normal port select process."},{"line_number":46,"context_line":"It means if a VIF has tag set, current port selection logic will be bypassed."}],"source_content_type":"text/x-rst","patch_set":2,"id":"61a40eb6_ecfc7967","line":43,"updated":"2025-09-27 14:28:39.000000000","message":"This seems to dovetail/overlap a bunch with intended TBN behavior.","commit_id":"5908b8957c7faa02c2727a1eb9e41f65338c59fb"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"ba06dea06478b04462d4c812b7258f25f216fcbf","unresolved":true,"context_lines":[{"line_number":41,"context_line":"attached to port1, a VIF with tag \"tarly\" will be attached to port2. And if a"},{"line_number":42,"context_line":"VIF has tag that doesn\u0027t fit as any subset of ironic ports, \"john\" for"},{"line_number":43,"context_line":"example, the attaching failed."},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"The tag matching has higher priority before normal port select process."},{"line_number":46,"context_line":"It means if a VIF has tag set, current port selection logic will be bypassed."},{"line_number":47,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"5e08cf42_2deb778c","line":44,"updated":"2025-06-23 19:24:34.000000000","message":"Off hand, I\u0027m not really a fan of tag usage, in part because Ironic never completed tag work, and it is clear based upon the \"upper case characters don\u0027t work\" issues noted on the mailing list last week, that its also lightly used.\n\nThat being said, its also not an *awful* solution for just weight/direct attach. It doesn\u0027t solve the complex cases operators are seeing, but would definitely sort of work for users who just need to directly attach. I don\u0027t think the general nova user will work for that though, just given the matrix of users to a node. i.e. users who use a network instead of a port would not be able to tag onto a port.","commit_id":"5908b8957c7faa02c2727a1eb9e41f65338c59fb"},{"author":{"_account_id":24828,"name":"Kaifeng Wang","email":"kaifeng.w@gmail.com","username":"wangkf"},"change_message_id":"a1979ba732722bd40415d0f45bc08b10a9f07dd8","unresolved":true,"context_lines":[{"line_number":41,"context_line":"attached to port1, a VIF with tag \"tarly\" will be attached to port2. And if a"},{"line_number":42,"context_line":"VIF has tag that doesn\u0027t fit as any subset of ironic ports, \"john\" for"},{"line_number":43,"context_line":"example, the attaching failed."},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"The tag matching has higher priority before normal port select process."},{"line_number":46,"context_line":"It means if a VIF has tag set, current port selection logic will be bypassed."},{"line_number":47,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"683df8f2_e3e08a74","line":44,"in_reply_to":"5e08cf42_2deb778c","updated":"2025-06-24 01:17:25.000000000","message":"It\u0027s true that this solution doesn\u0027t work for specifying network instead of port, our main use case is provisioning container clusters that are coordinated by magnum, it pre-creates and tag ports that follows LLD. I guess nova may have little help here.","commit_id":"5908b8957c7faa02c2727a1eb9e41f65338c59fb"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"ba06dea06478b04462d4c812b7258f25f216fcbf","unresolved":true,"context_lines":[{"line_number":48,"context_line":"Alternatives"},{"line_number":49,"context_line":"------------"},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"Physical network awareness can be used under some scenarios, but there is no"},{"line_number":52,"context_line":"method to do similar thing for VxLAN."},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"Data model impact"},{"line_number":55,"context_line":"-----------------"}],"source_content_type":"text/x-rst","patch_set":2,"id":"1fd2aace_71abcddf","line":52,"range":{"start_line":51,"start_character":0,"end_line":52,"end_character":37},"updated":"2025-06-23 19:24:34.000000000","message":"Yeah, Cardoe on IRC has tried to have some discussions around changing this situation, but they haven\u0027t really been fruitful with Neutron. The issue being you can have it in a real infra, they just don\u0027t see a reason/case where you would delineate VM traffic.","commit_id":"5908b8957c7faa02c2727a1eb9e41f65338c59fb"},{"author":{"_account_id":14228,"name":"Clif Houck","email":"me@clifhouck.com","username":"clif_h"},"change_message_id":"130e7be5a97d335c0d76284592cbf30162d0cd62","unresolved":true,"context_lines":[{"line_number":54,"context_line":"Data model impact"},{"line_number":55,"context_line":"-----------------"},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"A string field named ``tags`` will be added to the DB model for Port and"},{"line_number":58,"context_line":"Portgroup separately."},{"line_number":59,"context_line":""},{"line_number":60,"context_line":"State Machine Impact"}],"source_content_type":"text/x-rst","patch_set":2,"id":"3a79e635_c7a8d05b","line":57,"updated":"2025-09-27 14:28:39.000000000","message":"Trait based networking could easily add support for considering port.tags and portgroup.tags as part of it\u0027s filter expressions.","commit_id":"5908b8957c7faa02c2727a1eb9e41f65338c59fb"},{"author":{"_account_id":14228,"name":"Clif Houck","email":"me@clifhouck.com","username":"clif_h"},"change_message_id":"130e7be5a97d335c0d76284592cbf30162d0cd62","unresolved":true,"context_lines":[{"line_number":151,"context_line":"----------"},{"line_number":152,"context_line":""},{"line_number":153,"context_line":"* Update DB model and objects to support the ``tags`` field."},{"line_number":154,"context_line":"* Change logic to the ``vif_attach`` to be aware of ``tags`` field and proper"},{"line_number":155,"context_line":"  use of the information for port/portgroup selection."},{"line_number":156,"context_line":"* Update API with microversion validation."},{"line_number":157,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"a5c5ed87_0217db8c","line":154,"updated":"2025-09-27 14:28:39.000000000","message":"This would definitely interact/come into contact with TBN related features/code.","commit_id":"5908b8957c7faa02c2727a1eb9e41f65338c59fb"}]}
