| Posted | Nick | Remark | |
|---|---|---|---|
| #openstack-nova - 2021-02-19 | |||
| 15:17:50 | gibi | sean-k-mooney, bauzas: I think I figured out another interesting thing. A subnet can be created without providing a segment id but also with --network-segment the user can provide a segment_id for a subnet. In the former case the segments plugin ignore the subnet and no placement and nova aggregates are created. But in the latter case the segment plugin acts on the subnet. However in both cases nova | |
| 15:17:56 | gibi | considers the network having a a segment as the segments list command returns the segment regardless of how the subnet was created. | |
| 15:29:34 | openstackgerrit | Artom Lifshitz proposed openstack/nova master: pci: implement the `socket` NUMA affinity policy https://review.opendev.org/c/openstack/nova/+/772779 | |
| 15:58:45 | bauzas | gibi: I'm back | |
| 15:59:14 | bauzas | wrapping up on your comments | |
| 16:07:31 | bauzas | gibi: what you said last doesn't look an issue to me, right? | |
| 16:07:48 | bauzas | it's more the operator who messed up | |
| 16:09:40 | gibi | bauzas: no, both config is valid and both network is a valid network | |
| 16:10:06 | gibi | I think neutron considers net3 as a non routed network while net4 as a routed network | |
| 16:10:16 | gibi | but now consider both as routed and try to find the aggergate for net3 | |
| 16:10:18 | gibi | and fails | |
| 16:10:52 | gibi | s/but now/but nova/ | |
| 16:11:39 | bauzas | gibi: you refer to http://paste.openstack.org/show/802828/ ? | |
| 16:12:10 | gibi | sorry I refer to https://review.opendev.org/c/openstack/nova/+/773976/10/nova/scheduler/utils.py#1370 | |
| 16:12:56 | sean-k-mooney | gibi: yes subnets dont need to have segment ids | |
| 16:13:11 | sean-k-mooney | gibi: but a network requires that all subnets either have them or none of them do | |
| 16:13:54 | sean-k-mooney | gibi: we shoudl have support for both routed and non routed netowrks in teh same cloud | |
| 16:14:16 | gibi | sean-k-mooney: ^^ yeah this is what my example in the comment tries out | |
| 16:14:56 | sean-k-mooney | no what i mean is i pointed this out already and bauzas added a func test to make sure this works if i am not rembereing | |
| 16:15:03 | gibi | so we can have one network with a segment and with subnet without that segment, and also another network with a segmetn and a subnet that has that segment | |
| 16:15:16 | sean-k-mooney | gibi: we will check every network but if a netwrok does not have segment it wont break anything | |
| 16:15:36 | sean-k-mooney | we are ment to catch InvalidRoutedNetworkConfiguration in the prefilter | |
| 16:15:37 | gibi | sean-k-mooney: yes but if the network has a segment but the subnet does not | |
| 16:15:58 | bauzas | gibi: and you're passing a port ? | |
| 16:16:00 | sean-k-mooney | segments are mapped to subnets | |
| 16:16:04 | sean-k-mooney | not to networks | |
| 16:16:14 | gibi | sean-k-mooney: but nova queries segment list | |
| 16:16:14 | bauzas | that ^ | |
| 16:16:18 | gibi | for networks | |
| 16:16:34 | bauzas | gibi: for net3, it won't return segments, right? | |
| 16:16:43 | sean-k-mooney | no we get the segment on a network and look those up | |
| 16:16:46 | bauzas | https://review.opendev.org/c/openstack/nova/+/773976/10/nova/scheduler/utils.py#1356 | |
| 16:17:01 | sean-k-mooney | the network itself never has a segment | |
| 16:17:14 | gibi | https://review.opendev.org/c/openstack/nova/+/773976/10/nova/network/neutron.py#3510 | |
| 16:17:15 | sean-k-mooney | and all subnets in a singel networ will eithe rhave segments or not | |
| 16:17:23 | sean-k-mooney | neutorn does not allow you to mix within a netowrk | |
| 16:17:41 | gibi | bauzas: for net3 the segment list will return a segment | |
| 16:18:10 | bauzas | because of provider-segment ? | |
| 16:18:41 | gibi | I guess becuase it is a provider network | |
| 16:18:46 | sean-k-mooney | net3 in the test not http://paste.openstack.org/show/802828/ right | |
| 16:18:55 | sean-k-mooney | sorry need to try an pull up the same thing your looking at | |
| 16:19:16 | sean-k-mooney | same | |
| 16:19:32 | bauzas | I don't see how neutron can end up creating segments by the network | |
| 16:19:38 | gibi | sean-k-mooney: you see in that paste that for net3 the segmetn list returns a segment | |
| 16:19:47 | sean-k-mooney | what is net 3 | |
| 16:19:58 | sean-k-mooney | the first vxlan one | |
| 16:20:08 | sean-k-mooney | sorry vlan | |
| 16:20:10 | sean-k-mooney | 0437d333-a597-4d50-867e-d1bee7e4fc59 | None | a75a232f-c1df-4b71-9597-92acc8e83dad | vlan | 103 | <-- this is net3 | |
| 16:20:12 | gibi | sean-k-mooney: give me a sec, I put up a full reproduction printouit | |
| 16:20:29 | bauzas | gibi: looks to me the segmentation_id on the network is a VLAN ID | |
| 16:20:32 | gmann | lyarwood: ack, looks ok to me, I will merge that. | |
| 16:20:45 | bauzas | which makes no sense on a L3 | |
| 16:20:49 | bauzas | but whatever | |
| 16:20:56 | sean-k-mooney | gibi: provider:segmentation_id is not the same as the segment-id | |
| 16:21:01 | bauzas | my point ^ | |
| 16:21:04 | sean-k-mooney | provider:segmentation_id is the vlan id | |
| 16:21:08 | bauzas | \o/ | |
| 16:21:13 | bauzas | I'm a network expert ! | |
| 16:21:14 | bauzas | :D | |
| 16:22:05 | bauzas | gibi: that being said, does https://review.opendev.org/c/openstack/nova/+/773976/10/nova/network/neutron.py#3510 returns you some segments for net3 ? | |
| 16:22:10 | bauzas | it shouldn't | |
| 16:22:33 | sean-k-mooney | gibi: so ya the neutron plugin is slightly wrong | |
| 16:22:35 | bauzas | gibi: could you actually issue the CLI call against net3 ? | |
| 16:22:42 | sean-k-mooney | but it wont break us | |
| 16:22:56 | gibi | http://paste.openstack.org/show/802832/ | |
| 16:23:03 | sean-k-mooney | we are doing the right thing and only looking a subnet segment_ids | |
| 16:23:41 | sean-k-mooney | gibi: yep that is not a routed network | |
| 16:23:41 | bauzas | holy fuck | |
| 16:23:50 | gibi | so in that paste you see that a simple net create and subnet create result in a segment returned by the the segment list command | |
| 16:23:51 | bauzas | sean-k-mooney: but that's not normal | |
| 16:24:04 | bauzas | segment list returns the VLAN ID as segment | |
| 16:24:11 | bauzas | which is horribly wrong | |
| 16:24:13 | sean-k-mooney | ya that proably a bug | |
| 16:24:18 | sean-k-mooney | but we are not using that api | |
| 16:24:21 | bauzas | we do | |
| 16:24:22 | sean-k-mooney | so its not an issue | |
| 16:24:33 | bauzas | sean-k-mooney: https://review.opendev.org/c/openstack/nova/+/773976/10/nova/network/neutron.py#3510 | |
| 16:24:36 | gibi | yes nova does use segment list | |
| 16:24:40 | bauzas | we do use segment list | |
| 16:24:51 | sean-k-mooney | oh ... yes i see | |
| 16:24:52 | bauzas | gibi: could you try hitting the API directly? | |
| 16:25:02 | sean-k-mooney | well there is a way to work around it | |
| 16:25:10 | sean-k-mooney | provider:segmentation_id will always be ints | |
| 16:25:10 | gibi | (interestingly the segments plugin in neutron does not relay on the segment list of the network but rely on the segment_id attribute of the subnet only) | |
| 16:25:11 | bauzas | gibi: I'll show you the API call | |
| 16:25:21 | sean-k-mooney | and segment_ids will alwasy be uuids | |
| 16:25:24 | gibi | bauzas: I can do that | |
| 16:25:26 | bauzas | gibi: this is so fucked | |
| 16:25:55 | bauzas | gibi: please issue https://review.opendev.org/c/openstack/nova/+/773976/3/nova/network/neutron.py#3523 | |
| 16:25:59 | sean-k-mooney | gibi: yes so there is a bug in neutron but we can workaround it | |
| 16:26:38 | bauzas | sean-k-mooney: oh surely we can workaround by uuid.isuuid() | |
| 16:26:41 | bauzas | but this is crap | |
| 16:26:57 | sean-k-mooney | actully we might be miss reading this | |
| 16:27:07 | sean-k-mooney | +--------------------------------------+------+--------------------------------------+--------------+---------+ | |
| 16:27:09 | sean-k-mooney | | ID | Name | Network | Network Type | Segment | | |
| 16:27:11 | sean-k-mooney | +--------------------------------------+------+--------------------------------------+--------------+---------+ | |
| 16:27:13 | sean-k-mooney | | 92924c05-5419-4d7a-a557-dc465a10e26c | None | bcc9a2e3-3b8e-4e4b-a3f9-0072676693d0 | vlan | 103 | | |
| 16:27:15 | sean-k-mooney | +--------------------------------------+------+--------------------------------------+--------------+---------+ | |
| 16:27:22 | sean-k-mooney | so 92924c05-5419-4d7a-a557-dc465a10e26c woudl be the segment_id | |
| 16:27:31 | sean-k-mooney | we set in the subnet | |