Patch Detail
get:
Show a patch.
patch:
Update a patch.
put:
Update a patch.
GET /api/patches/2227387/?format=api
{ "id": 2227387, "url": "http://patchwork.ozlabs.org/api/patches/2227387/?format=api", "web_url": "http://patchwork.ozlabs.org/project/ovn/patch/20260423150449.79168-1-ARukomoinikova@k2.cloud/", "project": { "id": 68, "url": "http://patchwork.ozlabs.org/api/projects/68/?format=api", "name": "Open Virtual Network development", "link_name": "ovn", "list_id": "ovs-dev.openvswitch.org", "list_email": "ovs-dev@openvswitch.org", "web_url": "http://openvswitch.org/", "scm_url": "", "webscm_url": "", "list_archive_url": "", "list_archive_url_format": "", "commit_url_format": "" }, "msgid": "<20260423150449.79168-1-ARukomoinikova@k2.cloud>", "list_archive_url": null, "date": "2026-04-23T15:04:40", "name": "[ovs-dev,v3] controller: Skip frag-needed handling for VTEP ICMP packets.", "commit_ref": null, "pull_url": null, "state": "new", "archived": false, "hash": "39991e52a1a19ba950710d26aa00990e478f5108", "submitter": { "id": 89461, "url": "http://patchwork.ozlabs.org/api/people/89461/?format=api", "name": "Alexandra Rukomoinikova", "email": "ARukomoinikova@k2.cloud" }, "delegate": null, "mbox": "http://patchwork.ozlabs.org/project/ovn/patch/20260423150449.79168-1-ARukomoinikova@k2.cloud/mbox/", "series": [ { "id": 501207, "url": "http://patchwork.ozlabs.org/api/series/501207/?format=api", "web_url": "http://patchwork.ozlabs.org/project/ovn/list/?series=501207", "date": "2026-04-23T15:04:40", "name": "[ovs-dev,v3] controller: Skip frag-needed handling for VTEP ICMP packets.", "version": 3, "mbox": "http://patchwork.ozlabs.org/series/501207/mbox/" } ], "comments": "http://patchwork.ozlabs.org/api/patches/2227387/comments/", "check": "success", "checks": "http://patchwork.ozlabs.org/api/patches/2227387/checks/", "tags": {}, "related": [], "headers": { "Return-Path": "<ovs-dev-bounces@openvswitch.org>", "X-Original-To": [ "incoming@patchwork.ozlabs.org", "dev@openvswitch.org" ], "Delivered-To": [ "patchwork-incoming@legolas.ozlabs.org", "ovs-dev@lists.linuxfoundation.org" ], "Authentication-Results": [ "legolas.ozlabs.org;\n\tdkim=fail reason=\"signature verification failed\" (1024-bit key;\n unprotected) header.d=k2.cloud header.i=@k2.cloud header.a=rsa-sha256\n header.s=cloudmail header.b=H5VZAG/G;\n\tdkim-atps=neutral", "legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=openvswitch.org\n (client-ip=2605:bc80:3010::137; helo=smtp4.osuosl.org;\n envelope-from=ovs-dev-bounces@openvswitch.org; receiver=patchwork.ozlabs.org)", "smtp4.osuosl.org;\n\tdkim=fail reason=\"signature verification failed\" (1024-bit key,\n unprotected) header.d=k2.cloud header.i=@k2.cloud header.a=rsa-sha256\n header.s=cloudmail header.b=H5VZAG/G", "smtp1.osuosl.org; dmarc=pass (p=quarantine dis=none)\n header.from=k2.cloud", "smtp1.osuosl.org; dkim=pass (1024-bit key,\n unprotected) header.d=k2.cloud header.i=@k2.cloud header.a=rsa-sha256\n header.s=cloudmail header.b=H5VZAG/G" ], "Received": [ "from smtp4.osuosl.org (smtp4.osuosl.org [IPv6:2605:bc80:3010::137])\n\t(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n\t key-exchange x25519 server-signature ECDSA (secp384r1) server-digest SHA384)\n\t(No client certificate requested)\n\tby legolas.ozlabs.org (Postfix) with ESMTPS id 4g1fXN6c6rz1yCv\n\tfor <incoming@patchwork.ozlabs.org>; Fri, 24 Apr 2026 01:05:08 +1000 (AEST)", "from localhost (localhost [127.0.0.1])\n\tby smtp4.osuosl.org (Postfix) with ESMTP id 548AB40531;\n\tThu, 23 Apr 2026 15:05:07 +0000 (UTC)", "from smtp4.osuosl.org ([127.0.0.1])\n by localhost (smtp4.osuosl.org [127.0.0.1]) (amavis, port 10024) with ESMTP\n id 8-HCcDILBhGi; Thu, 23 Apr 2026 15:05:03 +0000 (UTC)", "from lists.linuxfoundation.org (lf-lists.osuosl.org [140.211.9.56])\n\tby smtp4.osuosl.org (Postfix) with ESMTPS id 841B54050C;\n\tThu, 23 Apr 2026 15:05:03 +0000 (UTC)", "from lf-lists.osuosl.org (localhost [127.0.0.1])\n\tby lists.linuxfoundation.org (Postfix) with ESMTP id 48646C058E;\n\tThu, 23 Apr 2026 15:05:03 +0000 (UTC)", "from smtp1.osuosl.org (smtp1.osuosl.org [IPv6:2605:bc80:3010::138])\n by lists.linuxfoundation.org (Postfix) with ESMTP id ED85AC058D\n for <dev@openvswitch.org>; Thu, 23 Apr 2026 15:05:01 +0000 (UTC)", "from localhost (localhost [127.0.0.1])\n by smtp1.osuosl.org (Postfix) with ESMTP id D283580893\n for <dev@openvswitch.org>; Thu, 23 Apr 2026 15:05:01 +0000 (UTC)", "from smtp1.osuosl.org ([127.0.0.1])\n by localhost (smtp1.osuosl.org [127.0.0.1]) (amavis, port 10024) with ESMTP\n id QhPm46DuXMrN for <dev@openvswitch.org>;\n Thu, 23 Apr 2026 15:04:57 +0000 (UTC)", "from mail1.k2.cloud (mail1.k2.cloud [109.73.14.252])\n by smtp1.osuosl.org (Postfix) with ESMTPS id 5D48F80886\n for <dev@openvswitch.org>; Thu, 23 Apr 2026 15:04:55 +0000 (UTC)" ], "X-Virus-Scanned": [ "amavis at osuosl.org", "amavis at osuosl.org" ], "X-Comment": "SPF check N/A for local connections - client-ip=140.211.9.56;\n helo=lists.linuxfoundation.org;\n envelope-from=ovs-dev-bounces@openvswitch.org; receiver=<UNKNOWN> ", "DKIM-Filter": [ "OpenDKIM Filter v2.11.0 smtp4.osuosl.org 841B54050C", "OpenDKIM Filter v2.11.0 smtp1.osuosl.org 5D48F80886" ], "Received-SPF": "Pass (mailfrom) identity=mailfrom; client-ip=109.73.14.252;\n helo=mail1.k2.cloud; envelope-from=arukomoinikova@k2.cloud;\n receiver=<UNKNOWN>", "DMARC-Filter": "OpenDMARC Filter v1.4.2 smtp1.osuosl.org 5D48F80886", "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed; d=k2.cloud;\n s=cloudmail; t=1776956692;\n bh=zAb5lUAQmev+YwHD6kdvyUhG7xarA/s+8uhgdCSA+rk=;\n h=From:To:Cc:Subject:Date;\n b=H5VZAG/GhXoOfUcc8F4kfpxOnfazz6ausGvfzZwcq5gPuEroolqKehfPrrxV6OzEt\n 9IVzjIx2YnSIA3tZop6fXeZrOQGQE5WkuOgi3ezab7V9i3B9HDUR+h83AsdfCYF45x\n qKX46taHC6s8F44uLXNCIls4IUqr3Gq5RO1PdJds=", "To": "dev@openvswitch.org", "Cc": "Alexandra Rukomoinikova <ARukomoinikova@k2.cloud>", "Date": "Thu, 23 Apr 2026 18:04:40 +0300", "Message-Id": "<20260423150449.79168-1-ARukomoinikova@k2.cloud>", "MIME-Version": "1.0", "Subject": "[ovs-dev] [PATCH ovn v3] controller: Skip frag-needed handling for\n VTEP ICMP packets.", "X-BeenThere": "ovs-dev@openvswitch.org", "X-Mailman-Version": "2.1.30", "Precedence": "list", "List-Id": "<ovs-dev.openvswitch.org>", "List-Unsubscribe": "<https://mail.openvswitch.org/mailman/options/ovs-dev>,\n <mailto:ovs-dev-request@openvswitch.org?subject=unsubscribe>", "List-Archive": "<http://mail.openvswitch.org/pipermail/ovs-dev/>", "List-Post": "<mailto:ovs-dev@openvswitch.org>", "List-Help": "<mailto:ovs-dev-request@openvswitch.org?subject=help>", "List-Subscribe": "<https://mail.openvswitch.org/mailman/listinfo/ovs-dev>,\n <mailto:ovs-dev-request@openvswitch.org?subject=subscribe>", "From": "Alexandra Rukomoinikova via dev <ovs-dev@openvswitch.org>", "Reply-To": "Alexandra Rukomoinikova <ARukomoinikova@k2.cloud>", "Content-Type": "text/plain; charset=\"us-ascii\"", "Content-Transfer-Encoding": "7bit", "Errors-To": "ovs-dev-bounces@openvswitch.org", "Sender": "\"dev\" <ovs-dev-bounces@openvswitch.org>" }, "content": "Commit [1] added handling for E/W ICMPv4/v6 \"fragmentation needed\"\npackets generated for overlay tunneled traffic. This was required\nbecause kernel generates ICMP \"need frag\" packet when a tunneled\npacket exceeds the path MTU, and such packets were previously\ndropped due to metadata needing to be swapped.\n\nHowever, it did not cover the case where similar ICMP packets arrive\nfrom RAMP tunnels. Such packets are not subject to the same metadata\nhandling constraints, since VXLAN encapsulation in this case does not\nencode port in the VNI field, and, also, packets are delivered directly\nto the destination VIF MAC address.\n\nAs a result, they do not match the added for such packets rules and are\ndropped. Exclude packets coming from VTEP tunnels from this special handling.\n\n[1] https://github.com/ovn-org/ovn/commit/221476a01f2670cf4eb78cd9353e709cb8a16329\nFixes: 221476a01f26 (\"ovn: Add tunnel PMTUD support.\")\nSigned-off-by: Alexandra Rukomoinikova <ARukomoinikova@k2.cloud>\n ---\n v2 --> v3: removed ACK since i changed code\n added helper function for all get is-vtep calls\n changed naming from is_vtep -> to is_ramp\n v1 --> v2: added ACK by\n rename add_tunnel_ingress_icmp_need_frag_flow func to add_tunnel_ingress_pmtud_flows\n fixed Lorenzo's comments\n---\n controller/encaps.c | 29 +++++++++-----\n controller/encaps.h | 7 ++++\n controller/local_data.c | 1 +\n controller/local_data.h | 1 +\n controller/physical.c | 77 ++++++++++++++++++++++--------------\n tests/ovn-controller-vtep.at | 4 ++\n 6 files changed, 80 insertions(+), 39 deletions(-)", "diff": "diff --git a/controller/encaps.c b/controller/encaps.c\nindex 61f41bf3a..919eea432 100644\n--- a/controller/encaps.c\n+++ b/controller/encaps.c\n@@ -25,7 +25,6 @@\n #include \"lib/ovn-sb-idl.h\"\n #include \"lib/ovsdb-idl.h\"\n #include \"ovn-controller.h\"\n-#include \"smap.h\"\n \n VLOG_DEFINE_THIS_MODULE(encaps);\n \n@@ -44,6 +43,7 @@ encaps_register_ovs_idl(struct ovsdb_idl *ovs_idl)\n ovsdb_idl_track_add_column(ovs_idl, &ovsrec_interface_col_name);\n ovsdb_idl_track_add_column(ovs_idl, &ovsrec_interface_col_type);\n ovsdb_idl_track_add_column(ovs_idl, &ovsrec_interface_col_options);\n+ ovsdb_idl_track_add_column(ovs_idl, &ovsrec_interface_col_other_config);\n }\n \n /* Enough context to create a new tunnel, using tunnel_add(). */\n@@ -201,12 +201,14 @@ out:\n }\n \n static void\n-tunnel_add(struct tunnel_ctx *tc, const struct sbrec_sb_global *sbg,\n- const char *new_chassis_id, const struct sbrec_encap *encap,\n- const char *local_ip,\n+tunnel_add(struct tunnel_ctx *tc,\n+ const struct sbrec_sb_global *sbg,\n+ const struct sbrec_chassis *chassis_rec,\n+ const struct sbrec_encap *encap, const char *local_ip,\n const struct ovsrec_open_vswitch_table *ovs_table)\n {\n struct smap options = SMAP_INITIALIZER(&options);\n+ struct smap other_config = SMAP_INITIALIZER(&other_config);\n smap_add(&options, \"remote_ip\", encap->ip);\n smap_add(&options, \"local_ip\", local_ip);\n smap_add(&options, \"key\", \"flow\");\n@@ -221,9 +223,9 @@ tunnel_add(struct tunnel_ctx *tc, const struct sbrec_sb_global *sbg,\n * combination of the chassis_name and the remote and local encap-ips to\n * identify a specific tunnel to the remote chassis.\n */\n- tunnel_entry_id = encaps_tunnel_id_create(new_chassis_id, encap->ip,\n+ tunnel_entry_id = encaps_tunnel_id_create(chassis_rec->name, encap->ip,\n local_ip);\n- tunnel_entry_id_old = encaps_tunnel_id_create_legacy(new_chassis_id,\n+ tunnel_entry_id_old = encaps_tunnel_id_create_legacy(chassis_rec->name,\n encap->ip);\n if (csum && (!strcmp(csum, \"true\") || !strcmp(csum, \"false\"))) {\n smap_add(&options, \"csum\", csum);\n@@ -258,7 +260,7 @@ tunnel_add(struct tunnel_ctx *tc, const struct sbrec_sb_global *sbg,\n \n /* Add auth info if ipsec is enabled. */\n if (sbg->ipsec) {\n- smap_add(&options, \"remote_name\", new_chassis_id);\n+ smap_add(&options, \"remote_name\", chassis_rec->name);\n \n /* Force NAT-T traversal via configuration */\n /* Two ipsec backends are supported: libreswan and strongswan */\n@@ -276,6 +278,11 @@ tunnel_add(struct tunnel_ctx *tc, const struct sbrec_sb_global *sbg,\n }\n }\n \n+ if (is_ramp_tunnel(&chassis_rec->other_config)) {\n+ /* Propagate ramp switch flag from chassis to interface */\n+ smap_add(&other_config, \"is-vtep\", \"true\");\n+ }\n+\n /* If there's an existing tunnel record that does not need any change,\n * keep it. Otherwise, create a new record (if there was an existing\n * record, the new record will supplant it and encaps_run() will delete\n@@ -312,10 +319,10 @@ tunnel_add(struct tunnel_ctx *tc, const struct sbrec_sb_global *sbg,\n * its name, otherwise generate a new, unique name. */\n char *port_name = (tunnel\n ? xstrdup(tunnel->port->name)\n- : tunnel_create_name(tc, new_chassis_id));\n+ : tunnel_create_name(tc, chassis_rec->name));\n if (!port_name) {\n VLOG_WARN(\"Unable to allocate unique name for '%s' tunnel\",\n- new_chassis_id);\n+ chassis_rec->name);\n goto exit;\n }\n \n@@ -323,6 +330,7 @@ tunnel_add(struct tunnel_ctx *tc, const struct sbrec_sb_global *sbg,\n ovsrec_interface_set_name(iface, port_name);\n ovsrec_interface_set_type(iface, encap->type);\n ovsrec_interface_set_options(iface, &options);\n+ ovsrec_interface_set_other_config(iface, &other_config);\n \n struct ovsrec_port *port = ovsrec_port_insert(tc->ovs_txn);\n ovsrec_port_set_name(port, port_name);\n@@ -338,6 +346,7 @@ exit:\n free(tunnel_entry_id);\n free(tunnel_entry_id_old);\n smap_destroy(&options);\n+ smap_destroy(&other_config);\n }\n \n static bool\n@@ -403,7 +412,7 @@ chassis_tunnel_add(const struct sbrec_chassis *chassis_rec,\n }\n VLOG_DBG(\"tunnel_add: '%s', local ip: %s\", chassis_rec->name,\n this_chassis->encaps[j]->ip);\n- tunnel_add(tc, sbg, chassis_rec->name, chassis_rec->encaps[i],\n+ tunnel_add(tc, sbg, chassis_rec, chassis_rec->encaps[i],\n this_chassis->encaps[j]->ip, ovs_table);\n tuncnt++;\n }\ndiff --git a/controller/encaps.h b/controller/encaps.h\nindex fa5dc17e5..0257d08c1 100644\n--- a/controller/encaps.h\n+++ b/controller/encaps.h\n@@ -17,6 +17,7 @@\n #define OVN_ENCAPS_H 1\n \n #include <stdbool.h>\n+#include \"smap.h\"\n \n /*\n * Given there could be multiple tunnels with different IPs to the same\n@@ -68,4 +69,10 @@ bool encaps_tunnel_id_match(const char *tunnel_id, const char *chassis_id,\n \n void encaps_destroy(void);\n \n+static inline bool\n+is_ramp_tunnel(const struct smap *other_config)\n+{\n+ return smap_get_bool(other_config, \"is-vtep\", false);\n+}\n+\n #endif /* controller/encaps.h */\ndiff --git a/controller/local_data.c b/controller/local_data.c\nindex dda746d73..af6c75b40 100644\n--- a/controller/local_data.c\n+++ b/controller/local_data.c\n@@ -532,6 +532,7 @@ local_nonvif_data_run(const struct ovsrec_bridge *br_int,\n tun->ofport = u16_to_ofp(ofport);\n tun->type = tunnel_type;\n tun->is_ipv6 = ip ? addr_is_ipv6(ip) : false;\n+ tun->is_ramp_tunnel = is_ramp_tunnel(&iface_rec->other_config);\n \n free(hash_id);\n free(ip);\ndiff --git a/controller/local_data.h b/controller/local_data.h\nindex 948c1a935..cbb8899eb 100644\n--- a/controller/local_data.h\n+++ b/controller/local_data.h\n@@ -146,6 +146,7 @@ struct chassis_tunnel {\n ofp_port_t ofport;\n enum chassis_tunnel_type type;\n bool is_ipv6;\n+ bool is_ramp_tunnel;\n };\n \n /* Flow-based tunnel that consolidates multiple endpoints into a single\ndiff --git a/controller/physical.c b/controller/physical.c\nindex 228f3d171..30ebeb1b6 100644\n--- a/controller/physical.c\n+++ b/controller/physical.c\n@@ -351,30 +351,35 @@ put_flow_based_remote_port_redirect_overlay(\n }\n }\n \n+/* Add handling for E/W ICMPv4/v6 packets when tunneled packets exceed\n+ * path MTU.\n+ * If packet needs to be tunneled to another node and the physical\n+ * interface used for tunneling has a lower MTU than the packet size,\n+ * or if there is a route exception with a smaller MTU, kernel\n+ * generates an ICMP \"Fragmentation Needed\" message, but packet\n+ * metadata didn't change. Such packets might have been dropped due\n+ * to required metadata modifications for returned packet.\n+ *\n+ * Mark these packets with MLF_RX_FROM_TUNNEL_BIT for further\n+ * processing. Packets received from a RAMP tunnel should be passed\n+ * through, and errors handled via normal processing path, since\n+ * port metadata is not carried in RAMP packets in VNI.\n+ */\n static void\n-add_tunnel_ingress_flows(const struct chassis_tunnel *tun,\n- enum mf_field_id mff_ovn_geneve,\n- struct ovn_desired_flow_table *flow_table,\n- struct ofpbuf *ofpacts)\n+add_tunnel_ingress_pmtud_flows(const struct chassis_tunnel *tun,\n+ struct ofpbuf *ofpacts,\n+ struct ovn_desired_flow_table *flow_table)\n {\n- /* Main ingress flow (priority 100) */\n- struct match match = MATCH_CATCHALL_INITIALIZER;\n- match_set_in_port(&match, tun->ofport);\n-\n- ofpbuf_clear(ofpacts);\n- put_decapsulation(mff_ovn_geneve, tun, ofpacts);\n- put_resubmit(OFTABLE_LOCAL_OUTPUT, ofpacts);\n+ if (tun->is_ramp_tunnel) {\n+ return;\n+ }\n \n- ofctrl_add_flow(flow_table, OFTABLE_PHY_TO_LOG, 100, 0, &match,\n- ofpacts, hc_uuid);\n+ struct match match = MATCH_CATCHALL_INITIALIZER;\n \n /* Set allow rx from tunnel bit */\n put_load(1, MFF_LOG_FLAGS, MLF_RX_FROM_TUNNEL_BIT, 1, ofpacts);\n put_resubmit(OFTABLE_CT_ZONE_LOOKUP, ofpacts);\n \n- /* Add specific flows for E/W ICMPv{4,6} packets if tunnelled packets\n- * do not fit path MTU. */\n-\n /* IPv4 ICMP flow (priority 120) */\n match_init_catchall(&match);\n match_set_in_port(&match, tun->ofport);\n@@ -398,6 +403,26 @@ add_tunnel_ingress_flows(const struct chassis_tunnel *tun,\n ofpacts, hc_uuid);\n }\n \n+static void\n+add_tunnel_ingress_flows(const struct chassis_tunnel *tun,\n+ enum mf_field_id mff_ovn_geneve,\n+ struct ovn_desired_flow_table *flow_table,\n+ struct ofpbuf *ofpacts)\n+{\n+ /* Main ingress flow (priority 100) */\n+ struct match match = MATCH_CATCHALL_INITIALIZER;\n+ match_set_in_port(&match, tun->ofport);\n+\n+ ofpbuf_clear(ofpacts);\n+ put_decapsulation(mff_ovn_geneve, tun, ofpacts);\n+ put_resubmit(OFTABLE_LOCAL_OUTPUT, ofpacts);\n+\n+ ofctrl_add_flow(flow_table, OFTABLE_PHY_TO_LOG, 100, 0, &match,\n+ ofpacts, hc_uuid);\n+\n+ add_tunnel_ingress_pmtud_flows(tun, ofpacts, flow_table);\n+}\n+\n static void\n put_stack(enum mf_field_id field, struct ofpact_stack *stack)\n {\n@@ -2827,12 +2852,6 @@ fanout_to_chassis_port_based(enum mf_field_id mff_ovn_geneve,\n }\n }\n \n-static bool\n-chassis_is_vtep(const struct sbrec_chassis *chassis)\n-{\n- return smap_get_bool(&chassis->other_config, \"is-vtep\", false);\n-}\n-\n static void\n local_output_pb(int64_t tunnel_key, struct ofpbuf *ofpacts)\n {\n@@ -3011,19 +3030,19 @@ consider_mc_group(const struct physical_ctx *ctx,\n * otherwise multicast will reach remote ports through localnet\n * port. */\n if (port->chassis) {\n- if (chassis_is_vtep(port->chassis)) {\n+ if (is_ramp_tunnel(&port->chassis->other_config)) {\n sset_add(&vtep_chassis, port->chassis->name);\n } else {\n sset_add(&remote_chassis, port->chassis->name);\n }\n }\n for (size_t j = 0; j < port->n_additional_chassis; j++) {\n- if (chassis_is_vtep(port->additional_chassis[j])) {\n- sset_add(&vtep_chassis,\n- port->additional_chassis[j]->name);\n+ struct sbrec_chassis *additional_chassis =\n+ port->additional_chassis[j];\n+ if (is_ramp_tunnel(&additional_chassis->other_config)) {\n+ sset_add(&vtep_chassis, additional_chassis->name);\n } else {\n- sset_add(&remote_chassis,\n- port->additional_chassis[j]->name);\n+ sset_add(&remote_chassis, additional_chassis->name);\n }\n }\n }\n@@ -3943,7 +3962,7 @@ physical_run(struct physical_ctx *p_ctx,\n struct chassis_tunnel *tun;\n HMAP_FOR_EACH (tun, hmap_node, p_ctx->chassis_tunnels) {\n add_tunnel_ingress_flows(tun, p_ctx->mff_ovn_geneve, flow_table,\n- &ofpacts);\n+ &ofpacts);\n }\n \n /* Process packets that arrive from flow-based tunnels. */\ndiff --git a/tests/ovn-controller-vtep.at b/tests/ovn-controller-vtep.at\nindex 961324bd2..caf53e291 100644\n--- a/tests/ovn-controller-vtep.at\n+++ b/tests/ovn-controller-vtep.at\n@@ -775,6 +775,10 @@ AT_CHECK([ovs-ofctl dump-flows br-int table=OFTABLE_PHY_TO_LOG | grep 'priority=\n priority=110,tun_id=0x<>,in_port=<> actions=move:NXM_NX_TUN_ID[[0..23]]->OXM_OF_METADATA[[0..23]],load:0x<>->NXM_NX_REG14[[0..14]],load:0x<>->NXM_NX_REG10[[1]],resubmit(,OFTABLE_LOG_INGRESS_PIPELINE)\n ])\n \n+# Skip processing ICMP \"packet too big\" errors in this table if the packet came from a VTEP tunnel.\n+AT_CHECK([ovs-ofctl dump-flows br-int table=OFTABLE_PHY_TO_LOG | \\\n+ grep -E 'icmp_type=3,icmp_code=4|icmp_type=2,icmp_code=0'], [1], [])\n+\n OVN_CONTROLLER_VTEP_STOP([], vtep1)\n OVN_CLEANUP([hv1])\n AT_CLEANUP\n", "prefixes": [ "ovs-dev", "v3" ] }