On 2012/08/24, at 6:26, David Romero wrote:

> I don't know if my problem has relationship with last Johhanes's path:
> 
> whith this configuration
> mesh1 ----- meshGate ---- eth router adsl----- internet
> 
> I sniffed with kismet and meshGate is transmiting root and RANN signals, but 
> mesh1 in a path dump only shows a mac to meshgate as other normal mesh nodes: 
> ¿normal? it could be good to have a default path but I'm not sure about this 
> point. 

"mpath dump" of iw does not show mop paths. 

If you assigned addresses of the same IP subnet to mesh1 and eth@router,
and can ping the eth address, mesh1 probably has a correct path.

> Another point is that I have to add a line like this in any mesh node to work:
> "route add default mesh_interface", it works but I think is not correct 
> because you use level 3 (is there another way to do it?),  I get ping from 
> node 1 to eth port of the router (good) but if I try to ping from node 1 to 
> internet (8.8.8.8) I get no answer, and wireshark shows in eth port of router 
> that node1 is arp-broadcast asking who has 8.8.8.8., ther router don't send 
> the packets to internet. Is all right or mesh gate had to resend the packet 
> to router as DA right.
> 
> If instead of "add route default mesh_interface", I use "route add default gw 
> 10.0.0.1(router adress)" all works perfect but in full level 3.. shit.

We would like to know Layer 3 (IP) configuration to see what the problem is, I 
guess.

> thanks for yours advise
> (Compat wireless 3.5   July + RT73)
> 
> 
> 
> 
> 
> 
> De: Thomas Pedersen <[email protected]>
> Para: [email protected] 
> CC: [email protected]; [email protected]; 
> [email protected] 
> Enviado: Lunes 20 de agosto de 2012 20:28
> Asunto: [PATCH] mac80211: fix DS to MBSS address translation
> 
> The destination address of unicast frames forwarded through a mesh gate
> was being replaced with the broadcast address. Instead leave the
> original destination address as the mesh DA. If the nexthop address is
> not in the mpath table it will be resolved. If that fails, the frame
> will be forwarded to known mesh gates.
> 
> Reported-by: Cedric Voncken <[email protected]>
> Signed-off-by: Thomas Pedersen <[email protected]>
> ---
> net/mac80211/tx.c |  38 ++++++++++++++++----------------------
> 1 files changed, 16 insertions(+), 22 deletions(-)
> 
> diff --git a/net/mac80211/tx.c b/net/mac80211/tx.c
> index acf712f..c5e8c9c 100644
> --- a/net/mac80211/tx.c
> +++ b/net/mac80211/tx.c
> @@ -1811,37 +1811,31 @@ netdev_tx_t ieee80211_subif_start_xmit(struct sk_buff 
> *skb,
>             meshhdrlen = ieee80211_new_mesh_header(&mesh_hdr,
>                     sdata, NULL, NULL);
>         } else {
> -            int is_mesh_mcast = 1;
> -            const u8 *mesh_da;
> +            /* DS -> MBSS (802.11-2012 13.11.3.3).
> +            * For unicast with unknown forwarding information,
> +            * destination might be in the MBSS or if that fails
> +            * forwarded to another mesh gate. In either case
> +            * resolution will be handled in ieee80211_xmit(), so
> +            * leave the original DA. This also works for mcast */
> +            const u8 *mesh_da = skb->data;
> +
> +            if (mppath)
> +                mesh_da = mppath->mpp;
> +            else if (mpath)
> +                mesh_da = mpath->dst;
> +            rcu_read_unlock();
> 
> -            if (is_multicast_ether_addr(skb->data))
> -                /* DA TA mSA AE:SA */
> -                mesh_da = skb->data;
> -            else {
> -                static const u8 bcast[ETH_ALEN] =
> -                    { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff };
> -                if (mppath) {
> -                    /* RA TA mDA mSA AE:DA SA */
> -                    mesh_da = mppath->mpp;
> -                    is_mesh_mcast = 0;
> -                } else if (mpath) {
> -                    mesh_da = mpath->dst;
> -                    is_mesh_mcast = 0;
> -                } else {
> -                    /* DA TA mSA AE:SA */
> -                    mesh_da = bcast;
> -                }
> -            }
>             hdrlen = ieee80211_fill_mesh_addresses(&hdr, &fc,
>                     mesh_da, sdata->vif.addr);
> -            rcu_read_unlock();
> -            if (is_mesh_mcast)
> +            if (is_multicast_ether_addr(mesh_da))
> +                /* DA TA mSA AE:SA */
>                 meshhdrlen =
>                     ieee80211_new_mesh_header(&mesh_hdr,
>                             sdata,
>                             skb->data + ETH_ALEN,
>                             NULL);
>             else
> +                /* RA TA mDA mSA AE:DA SA */
>                 meshhdrlen =
>                     ieee80211_new_mesh_header(&mesh_hdr,
>                             sdata,
> -- 
> 1.7.5.4
> 
> _______________________________________________
> Devel mailing list
> [email protected]
> http://lists.open80211s.org/cgi-bin/mailman/listinfo/devel
> 
> 
> _______________________________________________
> Devel mailing list
> [email protected]
> http://lists.open80211s.org/cgi-bin/mailman/listinfo/devel

Attachment: smime.p7s
Description: S/MIME cryptographic signature

_______________________________________________
Devel mailing list
[email protected]
http://lists.open80211s.org/cgi-bin/mailman/listinfo/devel

Reply via email to