Monday, 2022-03-07

opendevreviewZhouHeng proposed openstack/neutron master: [ovn]Rescheduler router gateway chassis  https://review.opendev.org/c/openstack/neutron/+/82507302:46
opendevreviewMerged openstack/neutron master: change skydive source to skydive-project  https://review.opendev.org/c/openstack/neutron/+/83011405:05
ralonsohlajoskatona, slaweq if you have time: three upper reviews https://review.opendev.org/q/project:openstack%252Fpython-neutronclient+status:open06:29
ralonsohin particular https://review.opendev.org/c/openstack/python-neutronclient/+/83177706:29
ralonsohthat is fixing the CI error06:30
opendevreviewyatin proposed openstack/neutron-tempest-plugin master: Add script which configures patch ports between bridges  https://review.opendev.org/c/openstack/neutron-tempest-plugin/+/76362807:15
lajoskatonaralonsoh: I will check it07:22
gibiralonsoh: good morning! Friday I tried to make the MAC overwrite in the port OVO but the GET /ports/<port_id> calls are not going through the OVO. https://review.opendev.org/c/openstack/neutron/+/829247/3#message-823d9eedee5177676e7b92fa784e761cd79a2f6b07:49
*** zhouhenglc__ is now known as zhouhenglc08:30
*** gthiemon1e is now known as gthiemonge08:39
opendevreviewLajos Katona proposed openstack/neutron stable/queens: Fix local doc builds  https://review.opendev.org/c/openstack/neutron/+/83185608:57
ralonsohgibi, sorry, I didn't check IRC. Let me push a patch today.09:13
gibiOK09:13
gibithanks09:13
gibiI am happy to work on these patches so for me a decision (and some pointers) would be enough09:20
opendevreviewHemanth N proposed openstack/neutron stable/victoria: [OVN] Allow schema checks to happen before starting connection  https://review.opendev.org/c/openstack/neutron/+/83073109:37
ralonsohgibi, to be honest, the code handling the port data is quite old09:48
ralonsohand it was implemented before the fully adoption of OVOS09:48
ralonsohthe creation/update methods depend on the DB object, not the OVO09:48
ralonsohthis is why we have so many *_to_dict methods09:49
gibiralonsoh: OK, so what would be the way forward?09:53
ralonsohgibi, let me check09:53
gibiOK09:53
gibithanks09:53
ralonsohgibi, the official (and blessed) way to do this is an ML2 extension, same as for port NUMA affinity or port device profile10:03
ralonsohin this case you don't need to modify any DB model or make any DB change10:03
ralonsohexample10:03
ralonsohhttps://review.opendev.org/c/openstack/neutron/+/74006710:03
ralonsohwith an extension, you create a hook the will be processed with the rest of extensions10:04
ralonsohyou can modify the port dictionary object that is built10:04
ralonsohfor example: https://review.opendev.org/c/openstack/neutron/+/740067/28/neutron/plugins/ml2/extensions/port_numa_affinity_policy.py10:04
gibiwhat about the original concern that if only the dict is changed then other parts of neutrons that are using the port OVO will not see the changed MAC?10:05
ralonsohyou need to implement only "extend_port_dict"10:05
ralonsohgibi, that's the point, in the driver's meeting we decided that the original mac was not going to be modified10:05
ralonsohand with this extension you can update the MAC of the dictionary in a similar way you are modifying it in your patch10:06
ralonsohbut using the "Neutron's official way"10:06
gibiand this way other code in neutron reading the port via the OVO will also see the new MAC from the profile?10:06
ralonsohgibi, not the OVO but the dictionary that is built from the DB/OVO10:07
gibibut then you mean it is not a concern that other parts of neutron using the port OVO will not see thins change. Is it so?10:08
* gibi is confused10:08
ralonsohI know10:08
ralonsohthe problem is that many parts of the code doesn't use the OVO10:08
ralonsohbut the ML2 method that uses the DB object10:08
ralonsohlet me check where the OVO is used10:09
gibiOK10:09
gibiso if the ovo is used then we need to change both paths the dict and the OVO path. OR we revisit the idea to overwrite the port.mac_address in the DB 10:10
ralonsohright10:10
ralonsohgibi, I think we use only use the extension. The new MAC is consumed only by Nova and makes sense that we make this extension discoverable (we don't have micro versioning)10:15
ralonsohwe should*10:15
gibiif we make this as an extension, does it mean we cannot backport his fix to stable branches?10:16
ralonsohbcafarel, ^^10:17
ralonsohcould we?10:17
gibi"MAC is conusmed only by Nova" <- what  I would like to fix is that the user who looks at the port on the API sees a MAC that is in sync with the MAC in the guest. so this MAC is not only consumed by Nova but also the end user10:18
ralonsohahh sorry, bcafarel is not avaiable this week10:18
ralonsohgibi, if you use this extension, all API calls will return the same modified MAC10:18
gibiOK10:19
ralonsoh(it is like a rule in the "magle" table in the postrouting)10:19
gibiOK, so you suggest to introduce this change as an extension to signal the API behavior change10:21
ralonsohright10:22
gibido you suggest to only modify the dict code path? or you suggest to modify both the dict and the OVO path?10:22
opendevreviewMerged openstack/python-neutronclient master: Skip B105 pep8 error: hardcoded passwords  https://review.opendev.org/c/openstack/python-neutronclient/+/83177710:22
ralonsohgibi, and because the old code is so messy (DB objects, OVOs, etc) that is the best way to proceed10:22
ralonsohwe don't have a uniform way to retrieve a port register10:23
gibisorry I don't get it. so with the extension way, don't we need to add a single codepath modifying the dict format or two code paths modifying both the dict format and the OVO?10:26
gibi(or this question does not make sense)10:26
opendevreviewFernando Royo proposed openstack/ovn-octavia-provider master: Retry of logical switch association to the load balancer for large networks  https://review.opendev.org/c/openstack/ovn-octavia-provider/+/82912610:26
ralonsohgibi, we do add this change10:26
ralonsohexample (one sec)10:26
ralonsohhttps://review.opendev.org/c/openstack/neutron/+/740067/28/neutron/plugins/ml2/extensions/port_numa_affinity_policy.py#4610:27
ralonsohthis is called in the "_make_port_dict" method10:27
gibiOK, so it handles the dict path10:27
ralonsohthat has a extension processor10:27
ralonsohyes10:27
gibido we need some code to the OVO path too?10:28
ralonsohthat could break the code because of how we handle the port register10:29
ralonsohwe don't always use the OVO10:29
ralonsohmost of the times we retrieve the DB port model instead10:29
ralonsohso depending on what you use, the ML2 get_port method (DB object) or the OVO itseld10:29
ralonsohyou'll have two values10:29
ralonsohI know this is something to be refactored (but is scary)10:30
ralonsohthis is why I suggest only the extension10:30
ralonsohit is much safer10:30
ralonsoh(some parts of the code are unmodified since 2014)10:31
gibiso you suggest not to change the OVO path as we assume that no neutron internal user of the OVO path depends on this MAC10:31
ralonsohright10:31
gibinow I got it. sorry probably I'm slow today :)10:31
ralonsohno no10:31
ralonsohthis part is quite difficult10:32
ralonsohmostly because we have this messy code10:32
gibithanks for the explanation. I will document this in the bug report10:33
gibiralonsoh: what is you oppinion change the value port.mac_address DB field instead of just changing the port dict? That would be future proof if we ever refactor the ML2 port access to use the OVO instead of a direct DB read10:42
opendevreviewMerged openstack/ovn-octavia-provider stable/ussuri: Fix race condition retrieving logical router rows  https://review.opendev.org/c/openstack/ovn-octavia-provider/+/82707710:42
opendevreviewMerged openstack/ovn-octavia-provider stable/victoria: Fix race condition retrieving logical router rows  https://review.opendev.org/c/openstack/ovn-octavia-provider/+/81048910:42
ralonsohgibi, we can implement this change, for sure. That won't require any extension but a change in the ML2 methods creating/updating the port10:45
ralonsohand a new exception to change the port mac address when the port is bound10:45
gibiyou mean a new exception if the MAC in the active binding:profile is changed while the port is in bound state?10:46
gibitoday neutron already rejects chaning the port.mac_address if the port is bound10:47
gibibut now there will be a new way via the bindig:profile10:47
ralonsohgibi, right. That will work (I think) if we have allowed address pairs, but should be tested10:47
gibiplease expand a bit on the allowed address pairs thing, I'm not familiar about that10:48
ralonsohwith allowed address pairs we define a set of (ip, mac) that will be associated to a port10:49
gibiohh10:49
ralonsohthat means we'll allows traffic from/to these tuples (ip, mac)10:49
gibidoes that work with direct-phyiscal ports?10:49
ralonsohand, by default, we usually only defined the IP address10:49
ralonsohgibi, I don't think so10:50
ralonsohthat is usually for ports that allow port security10:50
gibibecase this whole port:bindig.mac_address -> port.mac_address overwrite only need to work with direct-physical ports. the normal, and direct ports are different, there the user set the MAC on the port and nova/neutron sets that mac on the backend of the port10:51
ralonsohgibi, yes, this is why, IMO, the extension is enough10:51
opendevreviewCandido Campos Rivas proposed openstack/neutron-tempest-plugin master: Recover ssh interface config and interface reload  https://review.opendev.org/c/openstack/neutron-tempest-plugin/+/83132110:51
gibiralonsoh: I would do the DB update but with a vnic_type conditional so I don't think the DB change would add more change to the behavior than the extension changing the dict10:54
ralonsohgibi, I think we can also consider this change too, if we properly document it. The mac change rejection was obviously implemented because that was something impossible to happen10:56
ralonsohbut, in this case, it is mandatory10:56
gibidoes the DB change doable via an extension?11:01
ralonsohgibi, let me check11:04
ralonsohgibi, there are no examples of this in the code for networks, subnets or port. Actually we don't pass the port_db object itself but the dict and the API call arguments. However, we have the session context and the method "process_create_port" or "process_update_port" is called inside the transaction where the port DB object is created11:19
ralonsohthus we can retrieve the port BD (should be in the transaction itself)11:20
ralonsohand we can modify it11:20
gibiOK, so an extension could do the DB modification 11:21
gibithen I more like the DB modification than just the port_dict modification, it creates less confusion for the next developer when comparing API and DB values11:21
gibii.e. it results in a more consistend system11:22
gibi*consistent11:22
ralonsohas I said, this is not done in the code but should be possible11:22
gibiOK. I will play with the current patch and try to make the DB update work there11:23
gibithanks for the help!11:23
ralonsohyw11:23
opendevreviewMerged openstack/neutron stable/xena: Switch to cirros uec image in ovn tempest jobs  https://review.opendev.org/c/openstack/neutron/+/83158111:26
opendevreviewMerged openstack/neutron stable/wallaby: Switch to cirros uec image in ovn tempest jobs  https://review.opendev.org/c/openstack/neutron/+/83158211:26
opendevreviewMerged openstack/neutron stable/wallaby: Add centos-9 jobs for wallaby zuul layout  https://review.opendev.org/c/openstack/neutron/+/83119211:26
opendevreviewCandido Campos Rivas proposed openstack/neutron-tempest-plugin master: Recover ssh interface config and interface reload  https://review.opendev.org/c/openstack/neutron-tempest-plugin/+/83132111:54
opendevreviewBernard Cafarelli proposed openstack/python-neutronclient stable/yoga: Skip B105 pep8 error: hardcoded passwords  https://review.opendev.org/c/openstack/python-neutronclient/+/83185812:39
opendevreviewBernard Cafarelli proposed openstack/python-neutronclient stable/xena: Skip B105 pep8 error: hardcoded passwords  https://review.opendev.org/c/openstack/python-neutronclient/+/83185912:40
bcafarelralonsoh: partially available, just expect answers to be a bit laggy :) (or laggier than usual)12:40
* bcafarel scrolls back12:41
ralonsohno rush12:41
ralonsohbcafarel, that was related to backporting an extension12:41
ralonsohis it possible?12:41
bcafarela new extension? if it is to fix a bug, that can be OK - for existing stable users it would not be enabled by default so it would still be same behaviour12:42
bcafareland for people that need the fix they would see it in reno and update their configuration to start using it12:43
ralonsohbcafarel, it is not fixing anything but adding a new feature12:43
ralonsohperfect then12:43
gibilajoskatona: ^^ 12:51
gibiralonsoh, bcafarel: just to be cleare we are talking about an API extension. are we?12:51
ralonsohyes12:54
gibinot an ml2 extension12:55
gibiOK12:55
gibiso api extension is backportable, if I can convince the neutron folks that this is a bugfix not a new feature12:56
opendevreviewFernando Royo proposed openstack/ovn-octavia-provider master: Retry of logical switch association to the load balancer for large networks  https://review.opendev.org/c/openstack/ovn-octavia-provider/+/82912613:03
lajoskatonagibi, ralonsoh, bcafarel: I followed it, and ack13:09
lajoskatonagibi, ralonsoh, bcafarel: for backporting extension: it is not automatic for sure, but can be discussed like we did for quota RBAC (https://meetings.opendev.org/meetings/neutron_drivers/2022/neutron_drivers.2022-03-04-14.03.log.html#l-118 )13:10
gibiso my plan is then to add an API extension, and implement the port.mac_address DB overwrite13:11
opendevreviewFernando Royo proposed openstack/ovn-octavia-provider master: Retry of logical switch association to the load balancer for large networks  https://review.opendev.org/c/openstack/ovn-octavia-provider/+/82912613:27
opendevreviewMerged openstack/neutron stable/train: Allow RBAC on Neutron quotas  https://review.opendev.org/c/openstack/neutron/+/82856514:10
opendevreviewBernard Cafarelli proposed openstack/python-neutronclient stable/xena: Dropping lower constraints testing (stable Xena)  https://review.opendev.org/c/openstack/python-neutronclient/+/80859714:26
opendevreviewFernando Royo proposed openstack/ovn-octavia-provider master: Retry of logical switch association to the load balancer for large networks  https://review.opendev.org/c/openstack/ovn-octavia-provider/+/82912614:28
opendevreviewBernard Cafarelli proposed openstack/python-neutronclient stable/yoga: Update .gitreview for stable/yoga  https://review.opendev.org/c/openstack/python-neutronclient/+/83172014:29
opendevreviewBernard Cafarelli proposed openstack/python-neutronclient stable/yoga: Update TOX_CONSTRAINTS_FILE for stable/yoga  https://review.opendev.org/c/openstack/python-neutronclient/+/83172214:29
opendevreviewMerged openstack/neutron-lib master: Update master for stable/yoga  https://review.opendev.org/c/openstack/neutron-lib/+/83171114:33
opendevreviewMerged openstack/python-neutronclient stable/yoga: Skip B105 pep8 error: hardcoded passwords  https://review.opendev.org/c/openstack/python-neutronclient/+/83185814:49
opendevreviewMerged openstack/python-neutronclient stable/yoga: Update .gitreview for stable/yoga  https://review.opendev.org/c/openstack/python-neutronclient/+/83172014:50
opendevreviewMerged openstack/python-neutronclient stable/yoga: Update TOX_CONSTRAINTS_FILE for stable/yoga  https://review.opendev.org/c/openstack/python-neutronclient/+/83172214:53
opendevreviewMerged openstack/networking-ovn stable/train: [ovn] Prevent stale ports in the OVN database  https://review.opendev.org/c/openstack/networking-ovn/+/82880115:03
opendevreviewyatin proposed openstack/neutron master: [DNM] Check ovn ovs experimental  https://review.opendev.org/c/openstack/neutron/+/83122015:25
opendevreviewMerged openstack/neutron master: Group execution of SQL functional tests  https://review.opendev.org/c/openstack/neutron/+/83140916:01
opendevreviewMerged openstack/neutron stable/queens: Fix local doc builds  https://review.opendev.org/c/openstack/neutron/+/83185616:01
opendevreviewMerged openstack/neutron master: Fix configure_for_func_testing script  https://review.opendev.org/c/openstack/neutron/+/83094919:42
opendevreviewPedro Henrique Pereira Martins proposed openstack/neutron-lib master: Add custom range parameters on port_range validator  https://review.opendev.org/c/openstack/neutron-lib/+/83233821:14
opendevreviewCandido Campos Rivas proposed openstack/neutron-tempest-plugin master: Recover ssh interface config and interface reload  https://review.opendev.org/c/openstack/neutron-tempest-plugin/+/83132122:18
*** dasm is now known as dasm|off23:36

Generated by irclog2html.py 2.17.3 by Marius Gedminas - find it at https://mg.pov.lt/irclog2html/!