[NEUTRON-51] vlan_transparent and mtu attributes in network_attributes Created: 19/Jun/15  Updated: 30/Oct/17  Resolved: 25/Jan/16

Status: Resolved
Project: neutron
Component/s: northbound-api
Affects Version/s: Multiple
Fix Version/s: None

Type: Bug
Reporter: Flavio Fernandes Assignee: Vishal Thapar
Resolution: Cannot Reproduce Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Operating System: All
Platform: All


Attachments: File openstackTalk.cap    
External issue ID: 3824
Priority: Low

 Description   

[11:00:45] <flaviof> regXboi: https://review.openstack.org/#/c/177257/ is merged. I expect issues unless 'vlan_transparent', 'mtu' is handled.

[11:01:14] <regXboi> flaviof: feel free to add the attributes to the POTS

=====

Send mtu and vlan_transparent for network operations

We were previously removing these. But in the spirit of transparently
passing through all attributes and API calls from Neutron to ODL,
stop pruning these.



 Comments   
Comment by Ryan Moats [ 19/Jun/15 ]

likely breaking stable/lithium

Comment by Flavio Fernandes [ 22/Jun/15 ]

I've loaded the latest lithium with openstack build that contains
https://review.openstack.org/#/c/177257/ changes.

Even though the new fields are present in the rpc from ml2, neutron-northbound
is happy to ignore them, so there is no breakage. With that, I'd lower the
importance of this bug to minor. Sorry for the knee jerk reaction when I
created this bug.

Comment by Flavio Fernandes [ 22/Jun/15 ]

tcpdump capture that shows the neutron network with the two new
fields. As you can see odl's neutron northobund has no issues with
them being there.

sudo tcpdump -vv -w openstackTalk.cap -i eth1 -s 0 tcp port 8080

Comment by Flavio Fernandes [ 22/Jun/15 ]

Attachment openstackTalk.cap has been added with description: tcpdump capture of neutron rpc messages

Comment by Flavio Fernandes [ 22/Jun/15 ]

openstack commands used to generate the attachment:

https://gist.github.com/41f42281671490ae6bf6

source openrc admin admin

keystone tenant-create --name=tenant1 --enabled=true 2> /dev/null
keystone user-create --name=user1 --pass=user1 --email=user1@example.com 2> /dev/null
keystone user-role-add --user=user1 --role=member --tenant=tenant1 2> /dev/null

keystone tenant-create --name=tenant2 --enabled=true 2> /dev/null
keystone user-create --name=user2 --pass=user2 --email=user2@example.com 2> /dev/null
keystone user-role-add --user=user2 --role=member --tenant=tenant2 2> /dev/null

IMG_ID=$(nova image-list | grep 'cirros-0.3..-x86_64-uec\s' | awk '

{print $2}')
TNT1_ID=$(keystone tenant-list 2> /dev/null | grep '\s'tenant1'' | awk '{print $2}

')
TNT2_ID=$(keystone tenant-list 2> /dev/null | grep '\s'tenant2'' | awk '

{print $2}')

neutron net-create ext1 --router:external --tenant_id=${TNT1_ID} --provider:network_type flat \
--provider:physical_network physnetext1
neutron subnet-create --tenant_id=${TNT1_ID} \
--allocation-pool start=192.168.111.21,end=192.168.111.40 --gateway=192.168.111.254 \
--disable-dhcp --name subext1 ext1 192.168.111.0/24

neutron net-create ext2 --router:external --tenant_id=${TNT2_ID} --provider:network_type flat \
--provider:physical_network physnetext2
neutron subnet-create --tenant_id=${TNT2_ID} \
--allocation-pool start=192.168.111.41,end=192.168.111.60 --gateway=192.168.111.254 \
--disable-dhcp --name subext2 ext2 192.168.111.0/24

# –

unset SERVICE_TOKEN SERVICE_ENDPOINT
export OS_AUTH_URL=http://192.168.50.20:35357/v2.0/
export OS_REGION_NAME=RegionOne

####=================

export OS_USERNAME=user1
export OS_TENANT_NAME=tenant1
export OS_PASSWORD=user1
export PS1='[\u@\h \W(keystone_user1)]\$ '

rm -f id_rsa_demo* ; ssh-keygen -t rsa -b 2048 -N '' -f id_rsa_demo > /dev/null
nova keypair-add --pub-key id_rsa_demo.pub demo_key > /dev/null

neutron router-create rtr1
neutron router-gateway-set rtr1 ext1

## neutron net-create net1 --tenant-id $TNT1_ID --provider:network_type vxlan --provider:segmentation_id 256 > /dev/null
neutron net-create net1
neutron subnet-create net1 10.1.0.0/24 --name subnet1 --dns-nameserver 192.168.111.254
neutron router-interface-add rtr1 subnet1

neutron net-create net2
neutron subnet-create net2 10.2.0.0/24 --name subnet2 --dns-nameserver 192.168.111.254
neutron router-interface-add rtr1 subnet2

NET1_ID=$(neutron net-list | grep -w net1 | awk '{print $2}

') ; echo "net1 $NET1_ID"
NET2_ID=$(neutron net-list | grep -w net2 | awk '

{print $2}') ; echo "net2 $NET2_ID"

nova boot --poll --flavor m1.nano --image $IMG_ID --key-name demo_key --nic net-id=${NET1_ID} vm1
nova boot --poll --flavor m1.nano --image $IMG_ID --key-name demo_key --nic net-id=${NET1_ID} vm2
nova boot --poll --flavor m1.nano --image $IMG_ID --key-name demo_key --nic net-id=${NET2_ID} vm3
nova boot --poll --flavor m1.nano --image $IMG_ID --key-name demo_key --nic net-id=${NET2_ID} vm4

nova list

for VMNAME in vm1 vm2 vm3 vm4 ; do \
# Floating ip create
neutron floatingip-create ext1
FLOAT_IP=$(neutron floatingip-list | grep 192\.168\.111\. | grep -v 10\..\.0\. | head -1 | awk '{print $5}')
echo "Assigning floating ip ${FLOAT_IP} to ${VMNAME}"
nova floating-ip-associate ${VMNAME} ${FLOAT_IP}
done

##------

export OS_USERNAME=user2
export OS_TENANT_NAME=tenant2
export OS_PASSWORD=user2
export PS1='[\u@\h \W(keystone_user2)]\$ '

rm -f id_rsa_demo* ; ssh-keygen -t rsa -b 2048 -N '' -f id_rsa_demo > /dev/null
nova keypair-add --pub-key id_rsa_demo.pub demo_key > /dev/null

neutron router-create rtr2
neutron router-gateway-set rtr2 ext2

neutron net-create net10
neutron subnet-create net10 10.10.0.0/24 --name subnet10 --dns-nameserver 192.168.111.254
neutron router-interface-add rtr2 subnet10

neutron net-create net20
neutron subnet-create net20 10.20.0.0/24 --name subnet20 --dns-nameserver 192.168.111.254
neutron router-interface-add rtr2 subnet20

NET10_ID=$(neutron net-list | grep -w net10 | awk '{print $2}

') ; echo "net10 $NET10_ID"
NET20_ID=$(neutron net-list | grep -w net20 | awk '

{print $2}

') ; echo "net20 $NET20_ID"

nova boot --poll --flavor m1.nano --image $IMG_ID --key-name demo_key --nic net-id=${NET10_ID} vm5
nova boot --poll --flavor m1.nano --image $IMG_ID --key-name demo_key --nic net-id=${NET10_ID} vm6
nova boot --poll --flavor m1.nano --image $IMG_ID --key-name demo_key --nic net-id=${NET20_ID} vm7
nova boot --poll --flavor m1.nano --image $IMG_ID --key-name demo_key --nic net-id=${NET20_ID} vm8

for VMNAME in vm5 vm6 vm7 vm8 ; do \

  1. Floating ip create
    neutron floatingip-create ext2
    FLOAT_IP=$(neutron floatingip-list | grep 192\.168\.111\. | grep -v 10\...\.0\. | head -1 | awk ' {print $5}

    ')
    echo "Assigning floating ip ${FLOAT_IP} to ${VMNAME}"
    nova floating-ip-associate ${VMNAME} ${FLOAT_IP}
    done

Comment by Isaku Yamahata [ 26/Jun/15 ]

On Neutron side, those two extended attributes are implemented such that they can co-exist with the existing plugin/mechanism driver as long as they are ignored.
So for short term, it should work given ODL ignores them.

So the next step to address this, support by data store and have neutron provider support it.

Comment by Ryan Moats [ 18/Jul/15 ]

partially addressed by https://git.opendaylight.org/gerrit/24257

we will need to add a vlan-transparent augmentation to the yang model and update tests

Comment by Vishal Thapar [ 01/Dec/15 ]

I'd like to take this up for Be and potentially backport to Li.

Generated at Wed Feb 07 20:25:25 UTC 2024 using Jira 8.20.10#820010-sha1:ace47f9899e9ee25d7157d59aa17ab06aee30d3d.