From: "John W. Linville" <linville@tuxdriver.com>
To: david woo <xinhua_wu@realsil.com.cn>
Cc: Johannes Berg <johannes@sipsolutions.net>,
"javier@cozybit.com" <javier@cozybit.com>,
"linux-wireless@vger.kernel.org" <linux-wireless@vger.kernel.org>,
"andrey@cozybit.com" <andrey@cozybit.com>,
"devel@lists.open80211s.org" <devel@lists.open80211s.org>
Subject: Re: diff --git a/net/mac80211/mesh_hwmp.c b/net/mac80211/mesh_hwmp.c
Date: Tue, 11 Aug 2009 14:47:16 -0400 [thread overview]
Message-ID: <20090811184716.GH2634@tuxdriver.com> (raw)
In-Reply-To: <4A815A3B.3080404@realsil.com.cn>
David, thanks for the patch! Unfortunately, I'm not really sure
what you are fixing. Could you change your changelog to explain what
problem you are fixing? Just telling me that you changed something
doesn't tell me what was wrong with it in the first place.
Also, please make sure you follow the suggestions here:
http://linux.yyz.us/patch-format.html
I look forward to your next post...thanks!
John
On Tue, Aug 11, 2009 at 07:47:07PM +0800, david woo wrote:
> Johannes Berg 写道:
> > On Tue, 2009-08-11 at 18:22 +0800, David Woo wrote:
> >> static void hwmp_preq_frame_process(struct ieee80211_sub_if_data *sdata,
> >> struct ieee80211_mgmt *mgmt,
> >> - u8 *preq_elem, u32 metric)
> >> -{
> >> + u8 *preq_elem, u32 metric) {
> >
> > And other than adding this coding style mistake, what does this patch
> > do?
> >
> > johannes
>
> It's my first time to submit the patch file, I just mean to submit the attched
> patch file.
>
> [PATCH] mac80211: Fix preq frame process and peer link frame baselen.
>
> This patch is just to fix rreq reply condition, and peer link confirm frame baselen.
>
> Signed-off-by: David Woo <xinhua_wu@realsil.com.cn>
> ---
> diff --git a/net/mac80211/mesh_hwmp.c b/net/mac80211/mesh_hwmp.c
> index e1a763e..c065854 100644
> --- a/net/mac80211/mesh_hwmp.c
> +++ b/net/mac80211/mesh_hwmp.c
> @@ -397,7 +397,8 @@ static u32 hwmp_route_info_get(struct ieee80211_sub_if_data *sdata,
>
> static void hwmp_preq_frame_process(struct ieee80211_sub_if_data *sdata,
> struct ieee80211_mgmt *mgmt,
> - u8 *preq_elem, u32 metric) {
> + u8 *preq_elem, u32 metric)
> +{
> struct ieee80211_if_mesh *ifmsh = &sdata->u.mesh;
> struct mesh_path *mpath;
> u8 *dst_addr, *orig_addr;
> @@ -430,7 +431,7 @@ static void hwmp_preq_frame_process(struct ieee80211_sub_if_data *sdata,
> if ((!(mpath->flags & MESH_PATH_DSN_VALID)) ||
> DSN_LT(mpath->dsn, dst_dsn)) {
> mpath->dsn = dst_dsn;
> - mpath->flags &= MESH_PATH_DSN_VALID;
> + mpath->flags |= MESH_PATH_DSN_VALID;
> } else if ((!(dst_flags & MP_F_DO)) &&
> (mpath->flags & MESH_PATH_ACTIVE)) {
> reply = true;
> @@ -447,14 +448,15 @@ static void hwmp_preq_frame_process(struct ieee80211_sub_if_data *sdata,
>
> if (reply) {
> lifetime = PREQ_IE_LIFETIME(preq_elem);
> - ttl = ifmsh->mshcfg.dot11MeshTTL;
> - if (ttl != 0)
> + ttl = PREQ_IE_TTL(preq_elem);
> + if (ttl != 0) {
> + ttl = ifmsh->mshcfg.dot11MeshTTL;
> mesh_path_sel_frame_tx(MPATH_PREP, 0, dst_addr,
> cpu_to_le32(dst_dsn), 0, orig_addr,
> cpu_to_le32(orig_dsn), mgmt->sa, 0, ttl,
> cpu_to_le32(lifetime), cpu_to_le32(metric),
> 0, sdata);
> - else
> + } else
> ifmsh->mshstats.dropped_frames_ttl++;
> }
>
> diff --git a/net/mac80211/mesh_plink.c b/net/mac80211/mesh_plink.c
> index cb14253..ffcbad7 100644
> --- a/net/mac80211/mesh_plink.c
> +++ b/net/mac80211/mesh_plink.c
> @@ -409,7 +409,7 @@ void mesh_rx_plink_frame(struct ieee80211_sub_if_data *sdata, struct ieee80211_m
> baselen = (u8 *) mgmt->u.action.u.plink_action.variable - (u8 *) mgmt;
> if (mgmt->u.action.u.plink_action.action_code == PLINK_CONFIRM) {
> baseaddr += 4;
> - baselen -= 4;
> + baselen += 4;
> }
> ieee802_11_parse_elems(baseaddr, len - baselen, &elems);
> if (!elems.peer_link) {
>
>
> David
>
> diff --git a/net/mac80211/mesh_hwmp.c b/net/mac80211/mesh_hwmp.c
> index e1a763e..c065854 100644
> --- a/net/mac80211/mesh_hwmp.c
> +++ b/net/mac80211/mesh_hwmp.c
> @@ -397,7 +397,8 @@ static u32 hwmp_route_info_get(struct ieee80211_sub_if_data *sdata,
>
> static void hwmp_preq_frame_process(struct ieee80211_sub_if_data *sdata,
> struct ieee80211_mgmt *mgmt,
> - u8 *preq_elem, u32 metric) {
> + u8 *preq_elem, u32 metric)
> +{
> struct ieee80211_if_mesh *ifmsh = &sdata->u.mesh;
> struct mesh_path *mpath;
> u8 *dst_addr, *orig_addr;
> @@ -430,7 +431,7 @@ static void hwmp_preq_frame_process(struct ieee80211_sub_if_data *sdata,
> if ((!(mpath->flags & MESH_PATH_DSN_VALID)) ||
> DSN_LT(mpath->dsn, dst_dsn)) {
> mpath->dsn = dst_dsn;
> - mpath->flags &= MESH_PATH_DSN_VALID;
> + mpath->flags |= MESH_PATH_DSN_VALID;
> } else if ((!(dst_flags & MP_F_DO)) &&
> (mpath->flags & MESH_PATH_ACTIVE)) {
> reply = true;
> @@ -447,14 +448,15 @@ static void hwmp_preq_frame_process(struct ieee80211_sub_if_data *sdata,
>
> if (reply) {
> lifetime = PREQ_IE_LIFETIME(preq_elem);
> - ttl = ifmsh->mshcfg.dot11MeshTTL;
> - if (ttl != 0)
> + ttl = PREQ_IE_TTL(preq_elem);
> + if (ttl != 0) {
> + ttl = ifmsh->mshcfg.dot11MeshTTL;
> mesh_path_sel_frame_tx(MPATH_PREP, 0, dst_addr,
> cpu_to_le32(dst_dsn), 0, orig_addr,
> cpu_to_le32(orig_dsn), mgmt->sa, 0, ttl,
> cpu_to_le32(lifetime), cpu_to_le32(metric),
> 0, sdata);
> - else
> + } else
> ifmsh->mshstats.dropped_frames_ttl++;
> }
>
> diff --git a/net/mac80211/mesh_plink.c b/net/mac80211/mesh_plink.c
> index cb14253..ffcbad7 100644
> --- a/net/mac80211/mesh_plink.c
> +++ b/net/mac80211/mesh_plink.c
> @@ -409,7 +409,7 @@ void mesh_rx_plink_frame(struct ieee80211_sub_if_data *sdata, struct ieee80211_m
> baselen = (u8 *) mgmt->u.action.u.plink_action.variable - (u8 *) mgmt;
> if (mgmt->u.action.u.plink_action.action_code == PLINK_CONFIRM) {
> baseaddr += 4;
> - baselen -= 4;
> + baselen += 4;
> }
> ieee802_11_parse_elems(baseaddr, len - baselen, &elems);
> if (!elems.peer_link) {
--
John W. Linville Someday the world will need a hero, and you
linville@tuxdriver.com might be all we have. Be ready.
next prev parent reply other threads:[~2009-08-11 19:01 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-08-11 10:22 diff --git a/net/mac80211/mesh_hwmp.c b/net/mac80211/mesh_hwmp.c David Woo
2009-08-11 10:50 ` Johannes Berg
2009-08-11 11:47 ` david woo
2009-08-11 18:47 ` John W. Linville [this message]
2009-08-12 0:33 ` 吴新华
2009-08-12 1:42 ` Javier Cardona
2009-08-12 6:39 ` david woo
2009-08-12 18:03 ` Fix preq frame process and peer link frame baselen Javier Cardona
2009-08-12 18:03 ` [PATCH 1/2] mac80211: Mark a destination sequence number as valid when a PREQ is received Javier Cardona
2009-08-12 18:03 ` [PATCH 2/2] mac80211: Fix invalid length passed to IE parser for PLINK CONFIRM frames Javier Cardona
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20090811184716.GH2634@tuxdriver.com \
--to=linville@tuxdriver.com \
--cc=andrey@cozybit.com \
--cc=devel@lists.open80211s.org \
--cc=javier@cozybit.com \
--cc=johannes@sipsolutions.net \
--cc=linux-wireless@vger.kernel.org \
--cc=xinhua_wu@realsil.com.cn \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).