Date: Thu, 28 Jul 2011 14:10:11 +0200 From: Monthadar Al Jaberi <monthadar@gmail.com> To: Adrian Chadd <adrian@freebsd.org> Cc: freebsd-wireless@freebsd.org Subject: Re: Ack, Net80211 & ath Message-ID: <CA%2BsBSoLY45Qthc9cP%2BFX9OTEEQu7N1jOA5Jvo13%2BcQKzC9KgVg@mail.gmail.com> In-Reply-To: <CAJ-VmokS4TuTA7-vhB=tTSwhmnxnbAR94y_wHEo8L_v61LB1DQ@mail.gmail.com> References: <CA%2BsBSoLmGGZBWLSFbm9kh9YoRa4NO_wkx_330f_U7U7SH8s%2BkA@mail.gmail.com> <CAJ-Vmo=F9LhJaVoQT1t%2BTV-KCPh_D%2BnmH2BGNW=FkFBAzc7Mig@mail.gmail.com> <CA%2BsBSoKjviQyx5KbQrMrF_7LoJx3zeyV0=gXB1RrV==PXd4S_A@mail.gmail.com> <CA%2BsBSoK_0M92O13Xz96FJ-jHgGuE8xc%2BeMDRc6u5=NUEH97=TA@mail.gmail.com> <CAJ-Vmo=2EmcGYcCagXwXZARPFy5sQzDCSGG0V09kb8SM-j2YUQ@mail.gmail.com> <CA%2BsBSoJcSitMFTuGExuDJkv7zJOq6CBnnyRnncr=X0H1Pqy2Rw@mail.gmail.com> <CAJ-VmokKfjdJ=9xro4G1%2B2P59A3nzQsF4TKrw_dziXnn5Ji3og@mail.gmail.com> <CA%2BsBSo%2B-JL==P5HY%2BHWvA=mb6V3HOe1CxbEwbTfUXQ%2ByGOAjQA@mail.gmail.com> <CAJ-VmokS4TuTA7-vhB=tTSwhmnxnbAR94y_wHEo8L_v61LB1DQ@mail.gmail.com>
next in thread | previous in thread | raw e-mail | index | archive | help
Here is something, one should also implement the amrr_tx_complete() or ammr_tx_update() approch and see how everything react. anyone can test this? =) diff --git a/sys/net80211/ieee80211_mesh.c b/sys/net80211/ieee80211_mesh.c index 571a733..08e1764 100644 --- a/sys/net80211/ieee80211_mesh.c +++ b/sys/net80211/ieee80211_mesh.c @@ -709,6 +709,18 @@ mesh_rt_cleanup_cb(void *arg) mesh_rt_cleanup_cb, vap); } +static void +ieee80211_mesh_tx_cb(struct ieee80211_node *ni, void *arg, int status) +{ + if(status) + mesh_linkchange(ni, IEEE80211_NODE_MESH_HOLDING); +} +void +ieee80211_mesh_add_callback(struct mbuf *m) +{ + ieee80211_add_callback(m, ieee80211_mesh_tx_cb, NULL); +} + /* * Helper function to note the Mesh Peer Link FSM change. diff --git a/sys/net80211/ieee80211_mesh.h b/sys/net80211/ieee80211_mesh.h index ad1b02a..4f012e5 100644 --- a/sys/net80211/ieee80211_mesh.h +++ b/sys/net80211/ieee80211_mesh.h @@ -473,6 +473,7 @@ void ieee80211_mesh_init_neighbor(struct ieee80211_node *, const struct ieee80211_scanparams *); void ieee80211_mesh_update_beacon(struct ieee80211vap *, struct ieee80211_beacon_offsets *); +void ieee80211_mesh_add_callback(struct mbuf *); /* * Return non-zero if proxy operation is enabled. diff --git a/sys/net80211/ieee80211_output.c b/sys/net80211/ieee80211_output.c index 6020144..6a34731 100644 --- a/sys/net80211/ieee80211_output.c +++ b/sys/net80211/ieee80211_output.c @@ -271,6 +271,7 @@ ieee80211_start(struct ifnet *ifp) ifp->if_oerrors++; continue; } + ieee80211_mesh_add_callback(m); /* XXX: right place? */ } #endif if ((ni->ni_flags & IEEE80211_NODE_PWR_MGT) && On Wed, Jul 27, 2011 at 2:19 PM, Adrian Chadd <adrian@freebsd.org> wrote: > On 27 July 2011 20:14, Monthadar Al Jaberi <monthadar@gmail.com> wrote: >> not from what I can see, it overides vap->iv_input and vap->iv_recv_mgmt >> >> but not vap->iv_output... >> >> in ieee80211_start there is #ifdef IEEE80211_SUPPORT_MESH >> >> :S >> >> Okej for ieee80211_mgmt_output I see that mesh_send_action call it, so >> I can put one callback there... > > I'll leave it up to you :) I'm knee-deep in ANI and radar detection > code at the moment. > > > Adrian > -- //Monthadar Al Jaberi
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CA%2BsBSoLY45Qthc9cP%2BFX9OTEEQu7N1jOA5Jvo13%2BcQKzC9KgVg>