From af4f1987e260630cb6f6293adb9187c44d4fa929 Mon Sep 17 00:00:00 2001 From: Aswin Suryanarayanan Date: Thu, 15 Nov 2018 17:59:31 +0530 Subject: [PATCH] Neutron MTU extension in network model 1)adds the model for Neutron MTU. 2)Populates a the MTU extension and augment it to neutron network Change-Id: Ib11a78eeed7cda529197164e42b3b9f94dbc4366 Signed-off-by: Aswin Suryanarayanan --- model/src/main/yang/neutron-mtu-ext.yang | 35 +++++++++++++++++++ model/src/main/yang/neutron-mtu.yang | 31 ++++++++++++++++ .../transcriber/NeutronNetworkInterface.java | 11 ++++++ 3 files changed, 77 insertions(+) create mode 100755 model/src/main/yang/neutron-mtu-ext.yang create mode 100755 model/src/main/yang/neutron-mtu.yang diff --git a/model/src/main/yang/neutron-mtu-ext.yang b/model/src/main/yang/neutron-mtu-ext.yang new file mode 100755 index 000000000..25cfaaef2 --- /dev/null +++ b/model/src/main/yang/neutron-mtu-ext.yang @@ -0,0 +1,35 @@ +/* + * Copyright (c) 2018 Redhat Inc. and others. All rights reserved. + * + * This program and the accompanying materials are made available under the + * terms of the Eclipse Public License v1.0 which accompanies this distribution, + * and is available at http://www.eclipse.org/legal/epl-v10.html + */ +module neutron-mtu-ext { + + yang-version 1; + + namespace "urn:opendaylight:neutron-mtu-ext"; + + prefix neutron-mtu-ext; + + import neutron { prefix "neutron"; } + import neutron-mtu { prefix "mtu"; } + import yang-ext { prefix "ext"; } + + organization "OpenDaylight Neutron Group"; + + description "This YANG module defines Openstack Neutron mtu extensions model"; + + revision "2018-11-14" { + description + "OpenDaylight Neon release"; + } + + augment "/neutron:neutron/neutron:networks/neutron:network"{ + description "This module augments the networks container + in the neutron-networks module with mtu information."; + ext:augment-identifier "network-mtu-extension"; + uses mtu:mtu-attributes; + } +} diff --git a/model/src/main/yang/neutron-mtu.yang b/model/src/main/yang/neutron-mtu.yang new file mode 100755 index 000000000..6abdcf61d --- /dev/null +++ b/model/src/main/yang/neutron-mtu.yang @@ -0,0 +1,31 @@ +/* + * Copyright (c) 2018 Redhat Inc. and others. All rights reserved. + * + * This program and the accompanying materials are made available under the + * terms of the Eclipse Public License v1.0 which accompanies this distribution, + * and is available at http://www.eclipse.org/legal/epl-v10.html + */ +module neutron-mtu { + + yang-version 1; + + namespace "urn:opendaylight:neutron-mtu"; + + prefix neutron-mtu; + + import neutron-networks { prefix "networks"; } + + organization "OpenDaylight Neutron Group"; + + description "This YANG module defines Openstack Neutron mtu extension attributes"; + + revision "2018-11-14"; + + grouping mtu-attributes { + leaf mtu { + type uint16; + description "The maximum transmission unit (MTU) value to address fragmentation. + Minimum value is 68 for IPv4, and 1280 for IPv6."; + } + } +} diff --git a/transcriber/src/main/java/org/opendaylight/neutron/transcriber/NeutronNetworkInterface.java b/transcriber/src/main/java/org/opendaylight/neutron/transcriber/NeutronNetworkInterface.java index 8a89b4c15..716c0ef05 100644 --- a/transcriber/src/main/java/org/opendaylight/neutron/transcriber/NeutronNetworkInterface.java +++ b/transcriber/src/main/java/org/opendaylight/neutron/transcriber/NeutronNetworkInterface.java @@ -21,6 +21,8 @@ import org.opendaylight.neutron.spi.NeutronNetwork; import org.opendaylight.neutron.spi.NeutronNetworkSegment; import org.opendaylight.yang.gen.v1.urn.opendaylight.neutron.l3.ext.rev150712.NetworkL3Extension; import org.opendaylight.yang.gen.v1.urn.opendaylight.neutron.l3.ext.rev150712.NetworkL3ExtensionBuilder; +import org.opendaylight.yang.gen.v1.urn.opendaylight.neutron.mtu.ext.rev181114.NetworkMtuExtension; +import org.opendaylight.yang.gen.v1.urn.opendaylight.neutron.mtu.ext.rev181114.NetworkMtuExtensionBuilder; import org.opendaylight.yang.gen.v1.urn.opendaylight.neutron.networks.rev150712.NetworkTypeBase; import org.opendaylight.yang.gen.v1.urn.opendaylight.neutron.networks.rev150712.NetworkTypeFlat; import org.opendaylight.yang.gen.v1.urn.opendaylight.neutron.networks.rev150712.NetworkTypeGre; @@ -91,6 +93,10 @@ public final class NeutronNetworkInterface if (qos != null && qos.getQosPolicyId() != null) { result.setQosPolicyId(qos.getQosPolicyId().getValue()); } + final NetworkMtuExtension mtu = network.augmentation(NetworkMtuExtension.class); + if (mtu != null && mtu.getMtu() != null) { + result.setMtu(mtu.getMtu()); + } result.setSegments(segments); return result; } @@ -145,6 +151,11 @@ public final class NeutronNetworkInterface } networkBuilder.addAugmentation(NetworkL3Extension.class, l3ExtensionBuilder.build()); networkBuilder.addAugmentation(NetworkProviderExtension.class, providerExtensionBuilder.build()); + if (network.getMtu() != null) { + final NetworkMtuExtensionBuilder mtuExtensionBuilder = new NetworkMtuExtensionBuilder(); + mtuExtensionBuilder.setMtu(network.getMtu()); + networkBuilder.addAugmentation(NetworkMtuExtension.class, mtuExtensionBuilder.build()); + } } @Override -- 2.36.6