2012-09-14 06:22:29

by Chun-Yeow Yeoh

[permalink] [raw]
Subject: [PATCH] mac80211: allow re-open the blocked peer link in mesh

Peer link which is blocked using the "iw mesh0 station
set <MAC addr> plink_action block" is previously not able
to re-open using "iw mesh0 station set <MAC addr>
plink_action open". This patch is intended to solve this.

If the station plink state remains at OPN_SNT once open,
try block and open again should solve this problem.

Signed-off-by: Chun-Yeow Yeoh <[email protected]>
---
net/mac80211/mesh_plink.c | 3 ++-
1 files changed, 2 insertions(+), 1 deletions(-)

diff --git a/net/mac80211/mesh_plink.c b/net/mac80211/mesh_plink.c
index 9d7ad36..3ab34d8 100644
--- a/net/mac80211/mesh_plink.c
+++ b/net/mac80211/mesh_plink.c
@@ -537,7 +537,8 @@ int mesh_plink_open(struct sta_info *sta)
spin_lock_bh(&sta->lock);
get_random_bytes(&llid, 2);
sta->llid = llid;
- if (sta->plink_state != NL80211_PLINK_LISTEN) {
+ if (sta->plink_state != NL80211_PLINK_LISTEN &&
+ sta->plink_state != NL80211_PLINK_BLOCKED) {
spin_unlock_bh(&sta->lock);
return -EBUSY;
}
--
1.7.0.4



2012-09-14 15:10:49

by Chun-Yeow Yeoh

[permalink] [raw]
Subject: Re: Re:[PATCH] mac80211: allow re-open the blocked peer link in mesh

Great to hear that it works.

---
Chun-Yeow

On Fri, Sep 14, 2012 at 8:52 PM, 李申 <[email protected]> wrote:
> I'm sorry that I made a mistake in the process of modifying the source code.Now it works well.Thank you for your help!
> At 2012-09-14 20:29:32,"李申" <[email protected]> wrote:
>>I have modified the souce code as the patch shows.I'm sorry that it doesn't work and station plink state is still BLOCKED.
>>At 2012-09-14 14:18:31,"Chun-Yeow Yeoh" <[email protected]> wrote:
>>>Peer link which is blocked using the "iw mesh0 station
>>>set <MAC addr> plink_action block" is previously not able
>>>to re-open using "iw mesh0 station set <MAC addr>
>>>plink_action open". This patch is intended to solve this.
>>>
>>>If the station plink state remains at OPN_SNT once open,
>>>try block and open again should solve this problem.
>>>
>>>Signed-off-by: Chun-Yeow Yeoh <[email protected]>
>>>---
>>> net/mac80211/mesh_plink.c | 3 ++-
>>> 1 files changed, 2 insertions(+), 1 deletions(-)
>>>
>>>diff --git a/net/mac80211/mesh_plink.c b/net/mac80211/mesh_plink.c
>>>index 9d7ad36..3ab34d8 100644
>>>--- a/net/mac80211/mesh_plink.c
>>>+++ b/net/mac80211/mesh_plink.c
>>>@@ -537,7 +537,8 @@ int mesh_plink_open(struct sta_info *sta)
>>> spin_lock_bh(&sta->lock);
>>> get_random_bytes(&llid, 2);
>>> sta->llid = llid;
>>>- if (sta->plink_state != NL80211_PLINK_LISTEN) {
>>>+ if (sta->plink_state != NL80211_PLINK_LISTEN &&
>>>+ sta->plink_state != NL80211_PLINK_BLOCKED) {
>>> spin_unlock_bh(&sta->lock);
>>> return -EBUSY;
>>> }
>>>--
>>>1.7.0.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
>
> _______________________________________________
> Devel mailing list
> [email protected]
> http://lists.open80211s.org/cgi-bin/mailman/listinfo/devel

2012-09-14 13:00:46

by 李申

[permalink] [raw]
Subject: Re:[PATCH] mac80211: allow re-open the blocked peer link in mesh

I have modified the souce code as the patch shows.I'm sorry that it doesn't work and station plink state is still BLOCKED.
At 2012-09-14 14:18:31,"Chun-Yeow Yeoh" <[email protected]> wrote:
>Peer link which is blocked using the "iw mesh0 station
>set <MAC addr> plink_action block" is previously not able
>to re-open using "iw mesh0 station set <MAC addr>
>plink_action open". This patch is intended to solve this.
>
>If the station plink state remains at OPN_SNT once open,
>try block and open again should solve this problem.
>
>Signed-off-by: Chun-Yeow Yeoh <[email protected]>
>---
> net/mac80211/mesh_plink.c | 3 ++-
> 1 files changed, 2 insertions(+), 1 deletions(-)
>
>diff --git a/net/mac80211/mesh_plink.c b/net/mac80211/mesh_plink.c
>index 9d7ad36..3ab34d8 100644
>--- a/net/mac80211/mesh_plink.c
>+++ b/net/mac80211/mesh_plink.c
>@@ -537,7 +537,8 @@ int mesh_plink_open(struct sta_info *sta)
> spin_lock_bh(&sta->lock);
> get_random_bytes(&llid, 2);
> sta->llid = llid;
>- if (sta->plink_state != NL80211_PLINK_LISTEN) {
>+ if (sta->plink_state != NL80211_PLINK_LISTEN &&
>+ sta->plink_state != NL80211_PLINK_BLOCKED) {
> spin_unlock_bh(&sta->lock);
> return -EBUSY;
> }
>--
>1.7.0.4
>
>_______________________________________________
>Devel mailing list
>[email protected]
>http://lists.open80211s.org/cgi-bin/mailman/listinfo/devel


2012-09-14 12:25:06

by Johannes Berg

[permalink] [raw]
Subject: Re: [PATCH] mac80211: allow re-open the blocked peer link in mesh

On Fri, 2012-09-14 at 14:18 +0800, Chun-Yeow Yeoh wrote:
> Peer link which is blocked using the "iw mesh0 station
> set <MAC addr> plink_action block" is previously not able
> to re-open using "iw mesh0 station set <MAC addr>
> plink_action open". This patch is intended to solve this.

Applied.

> If the station plink state remains at OPN_SNT once open,
> try block and open again should solve this problem.

Not really sure I understand this part, but whatever :)

johannes


2012-09-14 12:52:43

by 李申

[permalink] [raw]
Subject: Re:Re:[PATCH] mac80211: allow re-open the blocked peer link in mesh

I'm sorry that I made a mistake in the process of modifying the source code.Now it works well.Thank you for your help!
At 2012-09-14 20:29:32,"????" <[email protected]> wrote:
>I have modified the souce code as the patch shows.I'm sorry that it doesn't work and station plink state is still BLOCKED.
>At 2012-09-14 14:18:31,"Chun-Yeow Yeoh" <[email protected]> wrote:
>>Peer link which is blocked using the "iw mesh0 station
>>set <MAC addr> plink_action block" is previously not able
>>to re-open using "iw mesh0 station set <MAC addr>
>>plink_action open". This patch is intended to solve this.
>>
>>If the station plink state remains at OPN_SNT once open,
>>try block and open again should solve this problem.
>>
>>Signed-off-by: Chun-Yeow Yeoh <[email protected]>
>>---
>> net/mac80211/mesh_plink.c | 3 ++-
>> 1 files changed, 2 insertions(+), 1 deletions(-)
>>
>>diff --git a/net/mac80211/mesh_plink.c b/net/mac80211/mesh_plink.c
>>index 9d7ad36..3ab34d8 100644
>>--- a/net/mac80211/mesh_plink.c
>>+++ b/net/mac80211/mesh_plink.c
>>@@ -537,7 +537,8 @@ int mesh_plink_open(struct sta_info *sta)
>> spin_lock_bh(&sta->lock);
>> get_random_bytes(&llid, 2);
>> sta->llid = llid;
>>- if (sta->plink_state != NL80211_PLINK_LISTEN) {
>>+ if (sta->plink_state != NL80211_PLINK_LISTEN &&
>>+ sta->plink_state != NL80211_PLINK_BLOCKED) {
>> spin_unlock_bh(&sta->lock);
>> return -EBUSY;
>> }
>>--
>>1.7.0.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