| Posted | Nick | Remark | |
|---|---|---|---|
| #openstack-nova - 2021-02-19 | |||
| 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 | bauzas | that ^ | |
| 16:16:14 | gibi | sean-k-mooney: but nova queries segment list | |
| 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 | bauzas | holy fuck | |
| 16:23:41 | sean-k-mooney | gibi: yep that is not a routed network | |
| 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 | 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:10 | sean-k-mooney | provider:segmentation_id will always be ints | |
| 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 | |
| 16:27:42 | sean-k-mooney | and 103 is the provider:segmenation_id | |
| 16:28:06 | sean-k-mooney | i think thats whats happening | |
| 16:28:10 | bauzas | yeah | |
| 16:28:19 | bauzas | I'm horrified | |