diff --git a/autobuild_mac80211_release/target/linux/mediatek/patches-5.4/999-3015-flow-offload-ovs-support.patch b/autobuild_mac80211_release/target/linux/mediatek/patches-5.4/999-3015-flow-offload-ovs-support.patch
new file mode 100755
index 0000000..04e22a4
--- /dev/null
+++ b/autobuild_mac80211_release/target/linux/mediatek/patches-5.4/999-3015-flow-offload-ovs-support.patch
@@ -0,0 +1,63 @@
+Index: net/openvswitch/vport-internal_dev.c
+===================================================================
+--- a/net/openvswitch/vport-internal_dev.c
++++ b/net/openvswitch/vport-internal_dev.c
+@@ -113,12 +113,58 @@ internal_get_stats(struct net_device *de
+ 	}
+ }
+
++static int internal_dev_fill_forward_path(struct net_device_path_ctx *ctx, struct net_device_path *path)
++{
++	struct vport *vport;
++	int i;
++	struct table_instance *ti;
++	struct datapath *dp;
++	struct sw_flow_key *key;
++	struct sw_flow_actions *sf_acts;
++	struct nlattr *a;
++	int rem;
++
++	vport = ovs_internal_dev_get_vport(ctx->dev);
++	dp = vport->dp;
++	ti = rcu_dereference_ovsl(dp->table.ti);
++
++	for (i = 0; i < ti->n_buckets; i++) {
++		struct sw_flow *flow;
++		struct hlist_head *head = &ti->buckets[i];
++		struct hlist_node *n;
++
++		hlist_for_each_entry_safe(flow, n, head, flow_table.node[ti->node_ver]) {
++			key = &flow->key;
++
++			if((!memcmp(ctx->dev->dev_addr, key->eth.dst, ETH_ALEN)) && (!memcmp(ctx->daddr, key->eth.src, ETH_ALEN))){
++				sf_acts = rcu_dereference_ovsl(flow->sf_acts);
++				for (a = sf_acts->actions, rem = sf_acts->actions_len; rem > 0;
++			     	 a = nla_next(a, &rem)) {
++				 	if(nla_type(a) == OVS_ACTION_ATTR_OUTPUT){
++						vport = ovs_vport_rcu(dp, key->phy.in_port);
++						goto out;
++			 		}
++		     	}
++			}
++		}
++	}
++
++out:
++
++	path->type = DEV_PATH_BRIDGE;
++	path->dev = ctx->dev;
++	ctx->dev = vport->dev;
++
++	return 0;
++}
++
+ static const struct net_device_ops internal_dev_netdev_ops = {
+ 	.ndo_open = internal_dev_open,
+ 	.ndo_stop = internal_dev_stop,
+ 	.ndo_start_xmit = internal_dev_xmit,
+ 	.ndo_set_mac_address = eth_mac_addr,
+ 	.ndo_get_stats64 = internal_get_stats,
++	.ndo_fill_forward_path	 = internal_dev_fill_forward_path,
+ };
+
+ static struct rtnl_link_ops internal_dev_link_ops __read_mostly = {
