aboutsummaryrefslogtreecommitdiffstats
path: root/scripts/remote-gdb
Commit message (Expand)AuthorAgeFilesLines
* Fix handling of BUILD_SUFFIX in remote-gdb scriptThomas Langer2019-09-041-4/+4
* build: remove libc version suffix from build/staging directoriesFelix Fietkau2017-02-071-2/+2
* scripts: fix remote-gdb with CONFIG_BUILD_SUFFIXHauke Mehrtens2016-08-011-2/+2
* scripts: avoid hard-coded paths in scriptsIblis Lin2016-04-281-1/+1
* scripts: remote-gdb: fix target / libc matching on directory namesJo-Philipp Wich2015-01-231-2/+2
* scripts: use extended-remote for greater compatibilityJohn Crispin2014-12-101-1/+1
* script/remote-gdb: enable and keep command historyJo-Philipp Wich2014-09-181-0/+5
* scripts/remote-gdb: add support for debugging core filesFelix Fietkau2013-05-091-2/+4
* scripts/remote-gdb: fix path when built for muslFelix Fietkau2013-05-091-2/+2
* scripts: fix remote-gdb script to cope with _eabi suffix in uClibc versionJo-Philipp Wich2012-11-081-2/+2
* Correct libc pathHamish Guthrie2011-05-131-2/+1
* remote-gdb: fix parsing of arch and libc from given path as wellJo-Philipp Wich2010-10-121-1/+1
* remote-gdb: - fix parsing of arch-libc tuples - automatically add sysroot to ...Jo-Philipp Wich2010-10-121-3/+4
* remote-gdb: * use sysroot instead of solib search paths * don't query arch if...Jo-Philipp Wich2010-03-181-14/+17
* remote-gdb: change library paths after r19849, swap usr/lib/ and lib/Jo-Philipp Wich2010-02-241-3/+3
* remote-gdb: add build_dir/target-*/debug-* to solib-search-pathJo-Philipp Wich2010-02-241-0/+1
* add "remote-gdb", a helper script to connect the local host gdb with a runnin...Jo-Philipp Wich2009-10-251-0/+78
background-color: #fff0f0 } /* Literal.String.Char */ .highlight .dl { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Delimiter */ .highlight .sd { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Doc */ .highlight .s2 { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Double */ .highlight .se { color: #0044dd; background-color: #fff0f0 } /* Literal.String.Escape */ .highlight .sh { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Heredoc */ .highlight .si { color: #3333bb; background-color: #fff0f0 } /* Literal.String.Interpol */ .highlight .sx { color: #22bb22; background-color: #f0fff0 } /* Literal.String.Other */ .highlight .sr { color: #008800; background-color: #fff0ff } /* Literal.String.Regex */ .highlight .s1 { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Single */ .highlight .ss { color: #aa6600; background-color: #fff0f0 } /* Literal.String.Symbol */ .highlight .bp { color: #003388 } /* Name.Builtin.Pseudo */ .highlight .fm { color: #0066bb; font-weight: bold } /* Name.Function.Magic */ .highlight .vc { color: #336699 } /* Name.Variable.Class */ .highlight .vg { color: #dd7700 } /* Name.Variable.Global */ .highlight .vi { color: #3333bb } /* Name.Variable.Instance */ .highlight .vm { color: #336699 } /* Name.Variable.Magic */ .highlight .il { color: #0000DD; font-weight: bold } /* Literal.Number.Integer.Long */
From: Felix Fietkau <nbd@nbd.name>
Date: Thu, 15 Mar 2018 20:50:37 +0100
Subject: [PATCH] net: bridge: support hardware flow table offload

Look up the real device and pass it on

Signed-off-by: Felix Fietkau <nbd@nbd.name>
---

--- a/net/bridge/br_device.c
+++ b/net/bridge/br_device.c
@@ -18,6 +18,8 @@
 #include <linux/ethtool.h>
 #include <linux/list.h>
 #include <linux/netfilter_bridge.h>
+#include <linux/netfilter.h>
+#include <net/netfilter/nf_flow_table.h>
 
 #include <linux/uaccess.h>
 #include "br_private.h"
@@ -340,6 +342,26 @@ static const struct ethtool_ops br_ethto
 	.get_link	= ethtool_op_get_link,
 };
 
+static int br_flow_offload_check(struct flow_offload_hw_path *path)
+{
+	struct net_device *dev = path->dev;
+	struct net_bridge *br = netdev_priv(dev);
+	struct net_bridge_fdb_entry *dst;
+
+	if (!(path->flags & FLOW_OFFLOAD_PATH_ETHERNET))
+		return -EINVAL;
+
+	dst = br_fdb_find_rcu(br, path->eth_dest, path->vlan_id);
+	if (!dst || !dst->dst)
+		return -ENOENT;
+
+	path->dev = dst->dst->dev;
+	if (path->dev->netdev_ops->ndo_flow_offload_check)
+		return path->dev->netdev_ops->ndo_flow_offload_check(path);
+
+	return 0;
+}
+
 static const struct net_device_ops br_netdev_ops = {
 	.ndo_open		 = br_dev_open,
 	.ndo_stop		 = br_dev_stop,
@@ -367,6 +389,7 @@ static const struct net_device_ops br_ne
 	.ndo_bridge_setlink	 = br_setlink,
 	.ndo_bridge_dellink	 = br_dellink,
 	.ndo_features_check	 = passthru_features_check,
+	.ndo_flow_offload_check	 = br_flow_offload_check,
 };
 
 static struct device_type br_type = {