Also, netdev-dummy needs to call netdev_change_seq_changed() in set_mtu(). Signed-off-by: Daniele Di Proietto <diproiet...@vmware.com> --- lib/netdev-dummy.c | 5 ++++- tests/ofproto-dpif.at | 30 ++++++++++++++++++++++++++++++ 2 files changed, 34 insertions(+), 1 deletion(-)
diff --git a/lib/netdev-dummy.c b/lib/netdev-dummy.c index 92af15f..c8f82b7 100644 --- a/lib/netdev-dummy.c +++ b/lib/netdev-dummy.c @@ -1155,7 +1155,10 @@ netdev_dummy_set_mtu(const struct netdev *netdev, int mtu) struct netdev_dummy *dev = netdev_dummy_cast(netdev); ovs_mutex_lock(&dev->mutex); - dev->mtu = mtu; + if (dev->mtu != mtu) { + dev->mtu = mtu; + netdev_change_seq_changed(netdev); + } ovs_mutex_unlock(&dev->mutex); return 0; diff --git a/tests/ofproto-dpif.at b/tests/ofproto-dpif.at index 0892f07..5fb5727 100644 --- a/tests/ofproto-dpif.at +++ b/tests/ofproto-dpif.at @@ -8774,3 +8774,33 @@ n_packets=0 OVS_VSWITCHD_STOP AT_CLEANUP + +AT_SETUP([ofproto - set mtu]) +OVS_VSWITCHD_START + +add_of_ports br0 1 + +# Check that initial MTU is 1500 for 'br0' and 'p1'. +AT_CHECK([ovs-vsctl get Interface br0 mtu], [0], [dnl +1500 +]) +AT_CHECK([ovs-vsctl get Interface p1 mtu], [0], [dnl +1500 +]) + +# Request new MTU for 'p1' +AT_CHECK([ovs-vsctl set Interface p1 mtu_request=1600]) + +# Check that the new MTU is applied +AT_CHECK([ovs-vsctl --timeout=10 wait-until Interface p1 mtu=1600]) +# The internal port 'br0' should have the same MTU value as p1, becase it's +# the new bridge minimum. +AT_CHECK([ovs-vsctl --timeout=10 wait-until Interface br0 mtu=1600]) + +AT_CHECK([ovs-vsctl del-port br0 p1]) + +# When 'p1' is deleted, the internal port should return to the default MTU +AT_CHECK([ovs-vsctl --timeout=10 wait-until Interface br0 mtu=1500]) + +OVS_VSWITCHD_STOP +AT_CLEANUP -- 2.8.1 _______________________________________________ dev mailing list dev@openvswitch.org http://openvswitch.org/mailman/listinfo/dev