[PATCH v1 net-next] teaming: deliver link-local packets with the link they arrive on

Jeffrey Ji posted 1 patch 4 years, 4 months ago
There is a newer version of this series
drivers/net/team/team.c | 6 ++++++
1 file changed, 6 insertions(+)
[PATCH v1 net-next] teaming: deliver link-local packets with the link they arrive on
Posted by Jeffrey Ji 4 years, 4 months ago
From: jeffreyji <jeffreyji@google.com>

skb is ignored if team port is disabled. We want the skb to be delivered
if it's an LLDP packet.

Issue is already fixed for bonding in commit
b89f04c61efe3b7756434d693b9203cc0cce002e

Signed-off-by: jeffreyji <jeffreyji@google.com>
---
 drivers/net/team/team.c | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/drivers/net/team/team.c b/drivers/net/team/team.c
index 8b2adc56b92a..24d66dfbb2e1 100644
--- a/drivers/net/team/team.c
+++ b/drivers/net/team/team.c
@@ -734,6 +734,12 @@ static rx_handler_result_t team_handle_frame(struct sk_buff **pskb)
 	port = team_port_get_rcu(skb->dev);
 	team = port->team;
 	if (!team_port_enabled(port)) {
+		if (is_link_local_ether_addr(eth_hdr(skb)->h_dest))
+			/*
+			 * link-local packets are mostly useful when stack
+			 * receives them with the link they arrive on.
+			 */
+			return RX_HANDLER_PASS;
 		/* allow exact match delivery for disabled ports */
 		res = RX_HANDLER_EXACT;
 	} else {
-- 
2.35.1.265.g69c8d7142f-goog

Re: [PATCH v1 net-next] teaming: deliver link-local packets with the link they arrive on
Posted by Jakub Kicinski 4 years, 4 months ago
On Tue, 15 Feb 2022 22:05:17 +0000 Jeffrey Ji wrote:
> From: jeffreyji <jeffreyji@google.com>
> 
> skb is ignored if team port is disabled. We want the skb to be delivered
> if it's an LLDP packet.
> 
> Issue is already fixed for bonding in commit
> b89f04c61efe3b7756434d693b9203cc0cce002e

This is not the correct way to quote a commit.  It should be
commit <12+ chars of sha1> ("title line").

> Signed-off-by: jeffreyji <jeffreyji@google.com>

You must CC maintainers. scripts/get_maintainer.pl is your friend.
You don't have to CC linux-kernel, tho, nobody reads that. Please
resend.

> diff --git a/drivers/net/team/team.c b/drivers/net/team/team.c
> index 8b2adc56b92a..24d66dfbb2e1 100644
> --- a/drivers/net/team/team.c
> +++ b/drivers/net/team/team.c
> @@ -734,6 +734,12 @@ static rx_handler_result_t team_handle_frame(struct sk_buff **pskb)
>  	port = team_port_get_rcu(skb->dev);
>  	team = port->team;
>  	if (!team_port_enabled(port)) {
> +		if (is_link_local_ether_addr(eth_hdr(skb)->h_dest))
> +			/*

Please run checkpatch --strict on your submissions

> +			 * link-local packets are mostly useful when stack
> +			 * receives them with the link they arrive on.
> +			 */
> +			return RX_HANDLER_PASS;
>  		/* allow exact match delivery for disabled ports */
>  		res = RX_HANDLER_EXACT;
>  	} else {