Subject: Re: [PATCH net-next v3] bridge: allow adding of fdb entries pointing to the bridge device

From: roopa <[email-masked]>
Date: Sat, 10 Oct 2015 07:49:43 -0700

On 10/9/15, 9:52 PM, Scott Feldman wrote:

<snip>
> @@ -640,7 +641,7 @@ static int fdb_fill_info(struct sk_buff *skb, const struct net_bridge *br,
>         ndm->ndm_flags   = fdb->added_by_external_learn ? NTF_EXT_LEARNED : 0;
>         ndm->ndm_type    = 0;
>         ndm->ndm_ifindex = fdb->dst ? fdb->dst->dev->ifindex : br->dev->ifindex;
> -       ndm->ndm_state   = fdb_to_nud(fdb);
> +       ndm->ndm_state   = fdb_to_nud(br, fdb);
>
>         if (nla_put(skb, NDA_LLADDR, ETH_ALEN, &fdb->addr))
>                 goto nla_put_failure;
> @@ -785,7 +786,7 @@ static int fdb_add_entry(struct net_bridge_port *source, const __u8 *addr,
>                 }
>         }
>
> -       if (fdb_to_nud(fdb) != state) {
> +       if (fdb_to_nud(br, fdb) != state) {
>
> Hi Roopa,
>
> Are the above changes to fdb_to_nud() related to the patch subject?
> I was trying to figure out this part of the patch...seems unrelated.
> Is fdb->dst->br now not valid in some cases?
yes, because fdb entries pointing to the bridge will have fdb->dst = NULL.
The rest of the bridge code already handles fdb->dst = NULL. Only this function needed a change.