From f0a5d4230d86ca569f189e0411a361cc2da8a071 Mon Sep 17 00:00:00 2001 From: Darren Loher Date: Mon, 11 Aug 2025 11:29:42 -0700 Subject: [PATCH 1/2] Add set_mtu to packet_link_qualification MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit To avoid issues where the L2 interface MTU may be smaller than the packet_size requested for a packet link qualification test, a new field is added to ensure the interface mtu is set to the packet_size. Instead of updating the description of the current packet_size field which would be a breaking change for plaforms that do not already do this, a new field is introduced. For the reflector (asic loopback mode), a packet_size field is also added for the same purpose. --- .../packet_link_qualification.proto | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/packet_link_qualification/packet_link_qualification.proto b/packet_link_qualification/packet_link_qualification.proto index 89ccd686..68f345ff 100644 --- a/packet_link_qualification/packet_link_qualification.proto +++ b/packet_link_qualification/packet_link_qualification.proto @@ -12,7 +12,7 @@ import "google/rpc/status.proto"; option go_package = "github.com/openconfig/gnoi/packet_link_qualification;linkqual"; -option (types.gnoi_version) = "1.1.0"; +option (types.gnoi_version) = "1.2.0"; service LinkQualification { // Create will dispatch a create operation for each interface and return. @@ -150,6 +150,10 @@ message PacketGeneratorConfiguration { // Size of packets to inject. // if unspecified, the default value is 1500 bytes. uint32 packet_size = 2; + + // If true, the Layer 2 MTU of the underlying interface should be set to the + // packet size for the duration of the test. + bool set_mtu = 3; } // A packet injector implementation defines that the generator side of the link @@ -166,6 +170,10 @@ message PacketInjectorConfiguration { // if unspecified, the default value is 1500 bytes. uint32 packet_size = 2; + // If true, the Layer 2 MTU of the underlying interface should be set to the + // packet size for the duration of the test. + bool set_mtu = 3; + // Loopback mode for this qualification. oneof loopback_mode { // PMD based loopback encompasses either PHY based port @@ -186,7 +194,9 @@ message PmdLoopbackConfiguration { } message AsicLoopbackConfiguration { - // This is where any l2/l3/l4 match criteria would be described. + // The L2 MTU of the interface must be set to the packet_size for the + // duration of the test. + uint32 packet_size = 2; } // GetRequest returns the status for the provided ids. message GetRequest { From 838301d2dbc7d3fb5edc4440da7a5f6f1deb12ed Mon Sep 17 00:00:00 2001 From: Darren Loher Date: Wed, 13 Aug 2025 09:34:34 -0700 Subject: [PATCH 2/2] revise mtu requirement --- .../packet_link_qualification.proto | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/packet_link_qualification/packet_link_qualification.proto b/packet_link_qualification/packet_link_qualification.proto index 68f345ff..0cc5753b 100644 --- a/packet_link_qualification/packet_link_qualification.proto +++ b/packet_link_qualification/packet_link_qualification.proto @@ -170,8 +170,9 @@ message PacketInjectorConfiguration { // if unspecified, the default value is 1500 bytes. uint32 packet_size = 2; - // If true, the Layer 2 MTU of the underlying interface should be set to the - // packet size for the duration of the test. + // If true, the gnoi service must ensure the L2 MTU of the interface is set + // to a value greater than or equal to packet_size for the duration of the + // test. bool set_mtu = 3; // Loopback mode for this qualification. @@ -194,9 +195,9 @@ message PmdLoopbackConfiguration { } message AsicLoopbackConfiguration { - // The L2 MTU of the interface must be set to the packet_size for the - // duration of the test. - uint32 packet_size = 2; + // The gnoi service must ensure the L2 MTU of the interface is set to a + // value greater than or equal to packet_size for the duration of the test. + uint32 packet_size = 1; } // GetRequest returns the status for the provided ids. message GetRequest {