Re: [PATCH] ethtool: skge register dump

2006-08-23 Thread Jeff Garzik

applied

-
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH 44/44] [XFRM] IPV6: Support Mobile IPv6 extension headers sorting.

2006-08-23 Thread David Miller
From: YOSHIFUJI Hideaki <[EMAIL PROTECTED]>
Date: Thu, 24 Aug 2006 15:04:42 +0900 (JST)

> In article <[EMAIL PROTECTED]> (at Wed, 23 Aug 2006 22:57:06 -0700 (PDT)), 
> David Miller <[EMAIL PROTECTED]> says:
> 
> > Are there any other Mobile-IPV6 patches necessary for the
> > kernel?
> 
> The patches cover most of MIPv6 and CN should work.
> However, for HA/MN, there are small number of patches
> to send.
> 
> We will send them, of course.
> Nakamura-san, please describe the details.

Ok, thank you.

In the mean time, I will work on porting my XFRM hashing changes
for the current net-2.6.19 tree.
-
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH 36/44] [XFRM]: Introduce XFRM_MSG_REPORT.

2006-08-23 Thread David Miller
From: Masahide NAKAMURA <[EMAIL PROTECTED]>
Date: Thu, 24 Aug 2006 15:48:10 +0900

> Should I start to design it?

Thank you for the analysis.

Let's not jump so quickly towards implementation just
yet.

What I plan to do right now is port my XFRM hashing patches into the
current net-2.6.19 tree.

I am hoping that, in the mean time, maybe someone such as Jamal,
Thomas Graf, or Herbert Xu might have some opinion in the area
of AEVENT and XFRM_MSG_REPORT.
-
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH 36/44] [XFRM]: Introduce XFRM_MSG_REPORT.

2006-08-23 Thread Masahide NAKAMURA

David Miller wrote:

From: YOSHIFUJI Hideaki <[EMAIL PROTECTED]>
Date: Thu, 24 Aug 2006 00:02:37 +0900


XFRM_MSG_REPORT is a message as notification of state protocol and selector
from kernel to user-space.
Mobile IPv6 will use it when inbound reject is occurred at route optimization
to make user-space know a binding error requirement.
Based on MIPL2 kernel patch.

Signed-off-by: Masahide NAKAMURA <[EMAIL PROTECTED]>
Signed-off-by: YOSHIFUJI Hideaki <[EMAIL PROTECTED]>


Applied to net-2.6.19, but...

Please check whether this XFRM_MSG_REPORT functionality can be
provided via XFRM_MSG_*AE.  It seems to me that AEVENTS can be
used to report these rejection situations too.  But you might
have a good reason why not do merge the functionality.

Just let me know.


Thank you for pointing it. Now I've checked AEVENT briefly and I feel
it is a smarter design to implement this rejection on AEVENT.
However it would make us have more lines than XFRM_MSG_REPORT.

AEVENT is designed to manage for each existing XFRM state.
OTOH XFRM_MSG_REPORT's requirement is to manage unexpected packet
then no matching state is there.

We would need to add such code as "XFRM state generated by kernel for REPORT"
like ACQUIRE to use AEVENT. It might make us define one more status
XFRM_STATE_XXX (or adding xfrm_state.km.XXX used with XFRM_STATE_ACQ), too.

It is good that AEVENT has a reducing mechanism for message
passing between kernel and user-space in receiving packet.
For REPORT purpose, we would need to modify to specify thresh e.g.
dividing sysctl per XFRM protocol (i.e. ESP, AH, IPComp and DSTOPTS)
to specify REPORT state.

Should I start to design it?

--
Masahide NAKAMURA
-
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [ETHTOOL] GSO Support for ethtool

2006-08-23 Thread Jeff Garzik

applied

-
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH] ethtool v4: add autoneg advertise feature

2006-08-23 Thread Jeff Garzik

[EMAIL PROTECTED] wrote:

@@ -598,25 +608,7 @@ static void parse_cmdline(int argc, char
}
}
 
-	if (autoneg_wanted == AUTONEG_ENABLE){

-   if (speed_wanted == SPEED_10 && duplex_wanted == DUPLEX_HALF)
-   advertising_wanted = ADVERTISED_10baseT_Half;
-   else if (speed_wanted == SPEED_10 &&
-duplex_wanted == DUPLEX_FULL)
-   advertising_wanted = ADVERTISED_10baseT_Full;
-   else if (speed_wanted == SPEED_100 &&
-duplex_wanted == DUPLEX_HALF)
-   advertising_wanted = ADVERTISED_100baseT_Half;
-   else if (speed_wanted == SPEED_100 &&
-duplex_wanted == DUPLEX_FULL)
-   advertising_wanted = ADVERTISED_100baseT_Full;
-   else if (speed_wanted == SPEED_1000 &&
-duplex_wanted == DUPLEX_HALF)
-   advertising_wanted = ADVERTISED_1000baseT_Half;
-   else if (speed_wanted == SPEED_1000 &&
-duplex_wanted == DUPLEX_FULL)
-   advertising_wanted = ADVERTISED_1000baseT_Full;
-   else
+   if ((autoneg_wanted == AUTONEG_ENABLE) && (advertising_wanted < 0)) {



This will change existing behavior of the tool, AFAICS.

Jeff


-
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH 2.6.17.1 1/2] dllink driver: porting v1.19 to linux 2.6.17

2006-08-23 Thread Jeff Garzik

Can you resend this against 2.6.18-rc1 and/or netdev-2.6.git#upstream ?

Jeff



-
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH 44/44] [XFRM] IPV6: Support Mobile IPv6 extension headers sorting.

2006-08-23 Thread YOSHIFUJI Hideaki / 吉藤英明
In article <[EMAIL PROTECTED]> (at Wed, 23 Aug 2006 22:57:06 -0700 (PDT)), 
David Miller <[EMAIL PROTECTED]> says:

> Are there any other Mobile-IPV6 patches necessary for the
> kernel?

The patches cover most of MIPv6 and CN should work.
However, for HA/MN, there are small number of patches
to send.

We will send them, of course.
Nakamura-san, please describe the details.

--yoshfuji
-
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH 44/44] [XFRM] IPV6: Support Mobile IPv6 extension headers sorting.

2006-08-23 Thread David Miller
From: YOSHIFUJI Hideaki <[EMAIL PROTECTED]>
Date: Thu, 24 Aug 2006 00:02:45 +0900

> Support Mobile IPv6 extension headers sorting for two transformation policies.
> Mobile IPv6 extension headers should be placed after IPsec
> transport mode, but before transport AH when outbound.
> 
> Signed-off-by: Masahide NAKAMURA <[EMAIL PROTECTED]>
> Signed-off-by: YOSHIFUJI Hideaki <[EMAIL PROTECTED]>

Ok, this is applied to net-2.6.19 too.

Are there any other Mobile-IPV6 patches necessary for the
kernel?
-
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH 43/44] [XFRM] IPV6: Add sort functions to combine templates/states for IPsec.

2006-08-23 Thread David Miller
From: YOSHIFUJI Hideaki <[EMAIL PROTECTED]>
Date: Thu, 24 Aug 2006 00:02:44 +0900

> Add sort functions to combine templates/states for IPsec.
> Think of outbound transformation order we should be careful with transport AH
> which must be the last of all transport ones.
> 
> Signed-off-by: Masahide NAKAMURA <[EMAIL PROTECTED]>
> Signed-off-by: YOSHIFUJI Hideaki <[EMAIL PROTECTED]>

Applied to net-2.6.19, thank you.
-
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH 42/44] [XFRM] POLICY: Support netlink socket interface for sub policy.

2006-08-23 Thread David Miller
From: YOSHIFUJI Hideaki <[EMAIL PROTECTED]>
Date: Thu, 24 Aug 2006 00:02:43 +0900

> Sub policy can be used through netlink socket.
> PF_KEY uses main only and it is TODO to support sub.
> 
> Signed-off-by: Masahide NAKAMURA <[EMAIL PROTECTED]>
> Signed-off-by: YOSHIFUJI Hideaki <[EMAIL PROTECTED]>

Applied to net-2.6.19, thanks a lot.
-
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH 41/44] [XFRM]: Add sorting interface for state and template.

2006-08-23 Thread David Miller
From: YOSHIFUJI Hideaki <[EMAIL PROTECTED]>
Date: Thu, 24 Aug 2006 00:02:42 +0900

> Under two transformation policies it is required to merge them.
> This is a platform to sort state for outbound and templates
> for inbound respectively.
> It will be used when Mobile IPv6 and IPsec are used at the same time.
> 
> Signed-off-by: Masahide NAKAMURA <[EMAIL PROTECTED]>
> Signed-off-by: YOSHIFUJI Hideaki <[EMAIL PROTECTED]>

Applied to net-2.6.19, thanks.
-
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH 40/44] [XFRM] POLICY: sub policy support.

2006-08-23 Thread David Miller
From: YOSHIFUJI Hideaki <[EMAIL PROTECTED]>
Date: Thu, 24 Aug 2006 00:02:41 +0900

> Sub policy is introduced. Main and sub policy are applied the same flow.
> (Policy that current kernel uses is named as main.)
> It is required another transformation policy management to keep IPsec
> and Mobile IPv6 lives separate.
> Policy which lives shorter time in kernel should be a sub i.e. normally
> main is for IPsec and sub is for Mobile IPv6.
> (Such usage as two IPsec policies on different database can be used, too.)
> 
> Limitation or TODOs:
>  - Sub policy is not supported for per socket one (it is always inserted as 
> main).
>  - Current kernel makes cached outbound with flowi to skip searching database.
>However this patch makes it disabled only when "two policies are used and
>the first matched one is bypass case" because neither flowi nor bundle
>information knows about transformation template size.
> 
> Signed-off-by: Masahide NAKAMURA <[EMAIL PROTECTED]>
> Signed-off-by: YOSHIFUJI Hideaki <[EMAIL PROTECTED]>

Applied to net-2.6.19

Those socket policies are becomming more and more difficult to
deal with.  I like them as a feature, but I wonder who uses
them :-)  They do not live in the flow cache so they hurt
performance until we find a way to place them there.  Perhaps
we can extend the flow keying somehow to account for socket
based policies in the flow cache.


-
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH 39/44] [XFRM] POLICY: Add Kconfig to support sub policy.

2006-08-23 Thread David Miller
From: YOSHIFUJI Hideaki <[EMAIL PROTECTED]>
Date: Thu, 24 Aug 2006 00:02:40 +0900

> Add Kconfig to support sub policy.
> 
> Signed-off-by: Masahide NAKAMURA <[EMAIL PROTECTED]>
> Signed-off-by: YOSHIFUJI Hideaki <[EMAIL PROTECTED]>

Applied to net-2.6.19

Note that sub-policy support is probably the area which will
need some simplifications and refactoring.

It is clear that IPSEC performance is tied strictly to the
speed at which routes can be resolved.  Sub-policies add more
overhead to this area.

We wish to push fully resolved IPSEC routes into the flow cache so
that we got not only policy but pre-lookup of bundle entry as a result
of lookup.  I attach an example patch implementing that (it is
relative to the tree before all the MIPV6 changes) to give you an
idea.

Also, if sub-policies are really the final way to address the
MIPV6+IPSEC separation issue, probably we should just kill the
kernel config option and optimize it as best we can.

diff --git a/include/net/flow.h b/include/net/flow.h
index 04d89f7..ce0e1a8 100644
--- a/include/net/flow.h
+++ b/include/net/flow.h
@@ -84,12 +84,16 @@ #define FLOW_DIR_IN 0
 #define FLOW_DIR_OUT   1
 #define FLOW_DIR_FWD   2
 
-struct sock;
 typedef void (*flow_resolve_t)(struct flowi *key, u32 sk_sid, u16 family, u8 
dir,
   void **objp, atomic_t **obj_refp);
 
-extern void *flow_cache_lookup(struct flowi *key, u32 sk_sid, u16 family, u8 
dir,
-  flow_resolve_t resolver);
+struct dst_entry;
+extern void *flow_cache_lookup(struct flowi *key, u32 sk_sid,
+  u16 family, u8 dir,
+  struct dst_entry **dstp,
+  flow_resolve_t resolver);
+extern void flow_cache_dst_set(struct flowi *key, u32 sk_sid,
+  u16 family, u8 dir, struct dst_entry *dst);
 extern void flow_cache_flush(void);
 extern atomic_t flow_cache_genid;
 
diff --git a/net/core/flow.c b/net/core/flow.c
index 2191af5..7949020 100644
--- a/net/core/flow.c
+++ b/net/core/flow.c
@@ -25,6 +25,7 @@ #include 
 #include 
 #include 
 #include 
+#include 
 
 struct flow_cache_entry {
struct flow_cache_entry *next;
@@ -35,6 +36,7 @@ struct flow_cache_entry {
u32 sk_sid;
void*object;
atomic_t*object_ref;
+   struct dst_entry*dst;
 };
 
 atomic_t flow_cache_genid = ATOMIC_INIT(0);
@@ -166,7 +168,7 @@ static int flow_key_compare(struct flowi
 }
 
 void *flow_cache_lookup(struct flowi *key, u32 sk_sid, u16 family, u8 dir,
-   flow_resolve_t resolver)
+   struct dst_entry **dstp, flow_resolve_t resolver)
 {
struct flow_cache_entry *fle, **head;
unsigned int hash;
@@ -196,6 +198,8 @@ void *flow_cache_lookup(struct flowi *ke
 
if (ret)
atomic_inc(fle->object_ref);
+   if (dstp)
+   *dstp = dst_clone(fle->dst);
local_bh_enable();
 
return ret;
@@ -217,6 +221,7 @@ void *flow_cache_lookup(struct flowi *ke
fle->sk_sid = sk_sid;
memcpy(&fle->key, key, sizeof(*key));
fle->object = NULL;
+   fle->dst = NULL;
flow_count(cpu)++;
}
}
@@ -245,6 +250,34 @@ nocache:
}
 }
 
+void flow_cache_dst_set(struct flowi *key, u32 sk_sid, u16 family, u8 dir,
+   struct dst_entry *dst)
+{
+   struct flow_cache_entry *fle, **head;
+   unsigned int hash;
+   int cpu;
+
+   local_bh_disable();
+   cpu = smp_processor_id();
+   hash = flow_hash_code(key, cpu);
+   head = &flow_table(cpu)[hash];
+   for (fle = *head; fle; fle = fle->next) {
+   if (fle->family == family &&
+   fle->dir == dir &&
+   fle->sk_sid == sk_sid &&
+   flow_key_compare(key, &fle->key) == 0) {
+   if (fle->genid == atomic_read(&flow_cache_genid)) {
+   struct dst_entry *orig = fle->dst;
+
+   dst_release(orig);
+   fle->dst = dst_clone(dst);
+   }
+   break;
+   }
+   }
+   local_bh_enable();
+}
+
 static void flow_cache_flush_tasklet(unsigned long data)
 {
struct flow_flush_info *info = (void *)data;
@@ -264,6 +297,8 @@ static void flow_cache_flush_tasklet(uns
 
fle->object = NULL;
atomic_dec(fle->object_ref);
+   dst_release(fle->dst);
+   fle->dst = NULL;
}
}
 
diff --git a/net/xfrm/xfrm_policy.c b/net/xfrm/xfrm_policy.c
index 55

Re: [PATCH wireless-dev 4/6] d80211: Send Layer 2 Update frames in kernel

2006-08-23 Thread Jouni Malinen
On Wed, Aug 23, 2006 at 07:22:56PM +0200, Jiri Benc wrote:
> On Mon, 07 Aug 2006 16:16:12 -0700, Jouni Malinen wrote:
> > Send Layer 2 Update frame from the 802.11 code in kernel to the netdev
> > that the STA is bound to. If the STA is bound to another VLAN netdev,
> > send another update frame. This fixes an issue in which a local bridge
> > table was not updated when hostapd sent this frame.
> 
> I hope someone is going to describe why is this necessary and why it
> cannot be done in a less hackish way. Otherwise, I'd probably tend to
> ask for reverting this patch.

Which part do you think is hackish here? Sending the layer 2 update
frame or moving it to kernel?

-- 
Jouni MalinenPGP id EFC895FA
-
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [git patches] net driver fixes

2006-08-23 Thread Greg KH
On Thu, Aug 24, 2006 at 12:54:57AM -0400, Jeff Garzik wrote:
> Besides via-rhine NAPI (optional) and the UCC gige driver (optional),
> just the collected fixes for drivers/net/.
> 
> 
> 
> Please pull from 'upstream-greg' branch of
> master.kernel.org:/pub/scm/linux/kernel/git/jgarzik/netdev-2.6.git 
> upstream-greg

Pulled from, and pushed out.

thanks,

greg k-h
-
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH 00/13] e100, e1000, ixgb fixes

2006-08-23 Thread Jeff Garzik

pulled into #upstream

-
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH 1/2] myri10ge: use netif_msg_link

2006-08-23 Thread Jeff Garzik

applied 1-2

-
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: Please pull 'upstream-fixes' branch of wireless-2.6

2006-08-23 Thread Jeff Garzik

pulled

-
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: ProxyARP and IPSec

2006-08-23 Thread H. Peter Anvin

Andy Gay wrote:



Just tried it, and it works as advertised.

... except that OpenSwan will rip out the route and install a route 
pointing to eth0, thus breaking the thing again.


Use a custom updown script with Openswan to fix that.



*Nod.*

I'm thinking that David definitely has a point about having a usability 
problem, though.  All other kind of tunnels have endpoint devices 
associated with them, and that would make all these kinds of problems go 
away, plus would be nicer to deal with in iptables, dealing with routed 
IPsec connections, etc.


-hpa
-
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[PATCH] Set floor of wireless signal and noise at -110 dBm

2006-08-23 Thread Larry Finger

John,

Please apply to wireless-2.6.

Thanks, Larry

===

This patch sets the floor of wireless level (signal) and noise at -110 dBm, which makes them be 
comatible with RCPI, as discussed by Simon Barber. With this change, bcm43xx-softmac and 
bcm43xx-d80211 behave the same.


Signed-Off-By: Larry Finger <[EMAIL PROTECTED]>

diff --git a/drivers/net/wireless/bcm43xx/bcm43xx_wx.c 
b/drivers/net/wireless/bcm43xx/bcm43xx_wx.c
index 1d3a3aa..888077f 100644
--- a/drivers/net/wireless/bcm43xx/bcm43xx_wx.c
+++ b/drivers/net/wireless/bcm43xx/bcm43xx_wx.c
@@ -229,8 +229,8 @@ static int bcm43xx_wx_get_rangeparams(st
range->throughput = 27 * 1000 * 1000;

range->max_qual.qual = 100;
-   range->max_qual.level = 152; /* set floor at -104 dBm (152 - 256) */
-   range->max_qual.noise = 152;
+   range->max_qual.level = 146; /* set floor at -110 dBm (146 - 256) */
+   range->max_qual.noise = 146;
range->max_qual.updated = IW_QUAL_ALL_UPDATED;

range->avg_qual.qual = 50;
-
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH 38/44] [IPV6] MIP6: Ignore to report if mobility headers is rejected.

2006-08-23 Thread David Miller
From: YOSHIFUJI Hideaki <[EMAIL PROTECTED]>
Date: Thu, 24 Aug 2006 00:02:39 +0900

> Ignore to report user-space for known mobility headers rejected by
> destination options header transformation.
> Mobile IPv6 specification (RFC3775) says that mobility header
> is used with destination options header carrying home address option
> only for binding update message. Other type message cannot be used
> and node must drop it silently (and must not send binding error) if
> receving such packet.
> To achieve it, (1) application should use transformation policy and
> wild-card states to catch binding update message prior other packets
> (2) kernel doesn't report the reject to user-space not to send
> binding error message by application.
> This patch is for (2).
> Based on MIPL2 kernel patch.
> 
> This patch was also written by: Ville Nuorvala <[EMAIL PROTECTED]>
> 
> Signed-off-by: Masahide NAKAMURA <[EMAIL PROTECTED]>
> Signed-off-by: YOSHIFUJI Hideaki <[EMAIL PROTECTED]>

Applied to net-2.6.19.

> + if (unlikely(fl->proto == IPPROTO_MH && fl->fl_mh_type <= 
> IP6_MH_TYPE_MAX))
> + goto out;
> +

It is another long line which can be split up for
readability :-)

Thank you.
-
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH 37/44] [IPV6] MIP6: Report to user-space when home address option is rejected.

2006-08-23 Thread David Miller
From: YOSHIFUJI Hideaki <[EMAIL PROTECTED]>
Date: Thu, 24 Aug 2006 00:02:38 +0900

> Report to user-space when home address option is rejected.
> In receiving this message user-space application will send Mobile IPv6 binding
> error. It is rate-limited by kernel.
> Based on MIPL2 kernel patch.
> 
> This patch was also written by: Ville Nuorvala <[EMAIL PROTECTED]>
> 
> Signed-off-by: Masahide NAKAMURA <[EMAIL PROTECTED]>
> Signed-off-by: YOSHIFUJI Hideaki <[EMAIL PROTECTED]>

Applied to net-2.6.19, thanks.
-
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH 36/44] [XFRM]: Introduce XFRM_MSG_REPORT.

2006-08-23 Thread David Miller
From: YOSHIFUJI Hideaki <[EMAIL PROTECTED]>
Date: Thu, 24 Aug 2006 00:02:37 +0900

> XFRM_MSG_REPORT is a message as notification of state protocol and selector
> from kernel to user-space.
> Mobile IPv6 will use it when inbound reject is occurred at route optimization
> to make user-space know a binding error requirement.
> Based on MIPL2 kernel patch.
> 
> Signed-off-by: Masahide NAKAMURA <[EMAIL PROTECTED]>
> Signed-off-by: YOSHIFUJI Hideaki <[EMAIL PROTECTED]>

Applied to net-2.6.19, but...

Please check whether this XFRM_MSG_REPORT functionality can be
provided via XFRM_MSG_*AE.  It seems to me that AEVENTS can be
used to report these rejection situations too.  But you might
have a good reason why not do merge the functionality.

Just let me know.
-
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH 35/44] [XFRM]: Trace which secpath state is reject factor.

2006-08-23 Thread David Miller
From: YOSHIFUJI Hideaki <[EMAIL PROTECTED]>
Date: Thu, 24 Aug 2006 00:02:36 +0900

> For Mobile IPv6 usage, it is required to trace which secpath state is reject
> factor in order to notify it to user space (to know the address which cannot
> be used route optimized communication).
> Based on MIPL2 kernel patch.
> 
> This patch was also written by: Henrik Petander <[EMAIL PROTECTED]>
> 
> Signed-off-by: Masahide NAKAMURA <[EMAIL PROTECTED]>
> Signed-off-by: YOSHIFUJI Hideaki <[EMAIL PROTECTED]>

Applied to net-2.6.19, thanks.
-
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH 34/44] [IPV6] MIP6: Transformation support mobility header.

2006-08-23 Thread David Miller
From: YOSHIFUJI Hideaki <[EMAIL PROTECTED]>
Date: Thu, 24 Aug 2006 00:02:35 +0900

> Transformation support mobility header.
> Based on MIPL2 kernel patch.
> 
> Signed-off-by: Masahide NAKAMURA <[EMAIL PROTECTED]>
> Signed-off-by: YOSHIFUJI Hideaki <[EMAIL PROTECTED]>

Applied to net-2.6.19, thanks.
-
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Any one know If tcp timers should look empty when last reference to socket has been dropped?

2006-08-23 Thread Piet Delaney
Hey Gang:

I just re-subscribed to netdev Earlier today I  brought up 
something I don't understand with some of the heavy weights
but still don't feel I understand what's happening. It could
be a kgdb cache flushing problem or some magic/land-mines
in the kernel that I'm not familiar with. 

We are running a modified 2.6.12 kernel, yea I know that's
old -- we are working on that.  In the past I've expected the
timer list to "look empty" when the sock structure is released;
that is when the refcnt drops to zero.

Shouldn't the tcp timers have LIST_POISON1 and LIST_POISON2
in their list heads when we drop the last reference to a sk?

We noticed our tcp timers have unexpected values in them
and wondering how to explain it. 

Attached is a copy of a tcp_sock just prior to our freeing it;
as see by kgdb on our 2.6.12 with tcp modified to support being
a proxy. The structure members without sk_ prefixed to it are
additional info that we have added to implement a TCP proxy.

sk->sk_timer looks as expected with LIST_POISON in both list
head pointers. 

The retransmit_timer on the other hand appears to have valid
pointers in it, so I'm wondering if we have a timer reference
count problem.

The tcp_sock is zero'd out on allocation, so I doubt it's 
just stale pointers from a previous incarnation of a tcp_sock.

The delack_timer also has absurd values in it.

I'll add some debug code to try to understand this; if any
of you have some thought on this, it might save me some time
trying to understanding it.
 
-piet

-- 
Piet Delaney
BlueLane Teck
W: (408) 200-5256; [EMAIL PROTECTED]
H: (408) 243-8872; [EMAIL PROTECTED]

(gdb) print *second_saved_tcp_sk
$4 = {
  inet = {
sk = {
  __sk_common = {
skc_family = 2, 
skc_state = 7 '\a', 
skc_reuse = 0 '\0', 
skc_bound_dev_if = 0, 
skc_node = {
  next = 0x0, 
  pprev = 0x0
}, 
skc_bind_node = {
  next = 0x0, 
  pprev = 0x0
}, 
skc_refcnt = {
  counter = 1
}
  }, 
  sk_shutdown = 3 '\003', 
  sk_no_check = 0 '\0', 
  sk_userlocks = 0 '\0', 
  sk_protocol = 6 '\006', 
  sk_type = 1, 
  sk_rcvbuf = 87380, 
  sk_lock = {
slock = {
  slock = 1, 
  magic = 3735899821
}, 
owner = 0x0, 
wq = {
  lock = {
slock = 1, 
magic = 3735899821
  }, 
  task_list = {
next = 0xe779054c, 
prev = 0xe779054c
  }
}
  }, 
  sk_sleep = 0x0, 
  sk_dst_cache = 0x0, 
  sk_policy = {0x0,
0x0}, 
  sk_dst_lock = {
lock = 16777216, 
magic = 3736018669
  }, 
  sk_rmem_alloc = {
counter = 0
  }, 
  sk_wmem_alloc = {
counter = 0
  }, 
  sk_omem_alloc = {
counter = 0
  }, 
  sk_receive_queue = {
next = 0xe7790578, 
prev = 0xe7790578, 
qlen = 0, 
lock = {
  slock = 1, 
  magic = 3735899821
}
  }, 
  sk_write_queue = {
next = 0xe779058c, 
prev = 0xe779058c, 
qlen = 0, 
lock = {
  slock = 1, 
  magic = 3735899821
}
  }, 
  sk_wmem_queued = 0, 
  sk_forward_alloc = 0, 
  sk_allocation = 208, 
  sk_sndbuf = 16384, 
  sk_route_caps = 7081, 
  sk_hashent = 260506, 
  sk_flags = 49929, 
  sk_lingertime = 0, 
  sk_backlog = {
head = 0x0, 
tail = 0x0
  }, 
  sk_error_queue = {
next = 0xe77905c8, 
prev = 0xe77905c8, 
qlen = 0, 
lock = {
  slock = 1, 
  magic = 3735899821
}
  }, 
  sk_prot = 0xc06befe0, 
  sk_prot_creator = 0xc06befe0, 
  sk_callback_lock = {
lock = 16777216, 
magic = 3736018669
  }, 
  sk_err = 104, 
  sk_err_soft = 0, 
  sk_ack_backlog = 0, 
  sk_max_ack_backlog = 8192, 
  sk_priority = 0, 
  sk_peercred = {
pid = 0, 
uid = 4294967295, 
gid = 4294967295
  }, 
  sk_rcvlowat = 1, 
  sk_rcvtimeo = 2147483647, 
  sk_sndtimeo = 2147483647, 
  sk_filter = 0x0, 
  sk_protinfo = 0x0, 
  sk_timer = {
entry = {
  next = 0x100100, 
  prev = 0x200200
}, 
expires = 7723632, 
lock = {
  slock = 1, 
  magic = 3735899821
}, 
magic = 1267182958, 
function = 0xc045e090 , 
data = 3883468052, 
base = 0x0
  }, 
  sk_stamp = {
tv_sec = -1, 
tv_usec = -1
  }, 
  sk_socket = 0x0, 
  sk_user_data = 0x0, 
  sk_sndmsg_page = 0x0, 
  sk_send_head = 0x0, 
  sk_sndmsg_off = 0, 
  sk_write_pending = 0, 
  sk_security = 0x0, 
  sk_state_change = 0xc03b5c05 , 
  sk_data_ready = 0xc03b5d1e , 
  sk_write_space = 0xc03c4db5 , 

Re: [PATCH][REPOST] WAN: fix C101 card carrier handling

2006-08-23 Thread Jeff Garzik

Krzysztof Halasa wrote:

Hi,

One of my recent changes broke C101 carrier handling, this patch
fixes it. Also fixes an old TX underrun checking bug.

2.6.18 material. Please apply.


it's already in netdev-2.6.git#upstream-fixes, destined for 2.6.18.

Jeff



-
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH 31/44] [IPV6] MIP6: Add Mobility header definition.

2006-08-23 Thread David Miller
From: YOSHIFUJI Hideaki <[EMAIL PROTECTED]>
Date: Thu, 24 Aug 2006 00:02:32 +0900

> Add Mobility header definition for Mobile IPv6.
> Based on MIPL2 kernel patch.
> 
> This patch was also written by: Antti Tuominen <[EMAIL PROTECTED]>
> 
> Signed-off-by: Masahide NAKAMURA <[EMAIL PROTECTED]>
> Signed-off-by: YOSHIFUJI Hideaki <[EMAIL PROTECTED]>

Applied to net-2.6.19

Thanks
-
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH 32/44] [IPV6] MIP6: Add receiving mobility header functions through raw socket.

2006-08-23 Thread David Miller
From: YOSHIFUJI Hideaki <[EMAIL PROTECTED]>
Date: Thu, 24 Aug 2006 00:02:33 +0900

> Like ICMPv6, mobility header is handled through raw socket.
> In inbound case, check only whether ICMPv6 error should be sent as a reply
> or not by kernel.
> Based on MIPL2 kernel patch.
> 
> This patch was also written by: Ville Nuorvala <[EMAIL PROTECTED]>
> This patch was also written by: Antti Tuominen <[EMAIL PROTECTED]>
> 
> Signed-off-by: Masahide NAKAMURA <[EMAIL PROTECTED]>
> Signed-off-by: YOSHIFUJI Hideaki <[EMAIL PROTECTED]>

Applied to net-2.6.19

> + LIMIT_NETDEBUG(KERN_DEBUG "mip6: MH checksum failed 
> [%04x:%04x:%04x:%04x:%04x:%04x:%04x:%04x > 
> %04x:%04x:%04x:%04x:%04x:%04x:%04x:%04x]\n",

Let us try to avoid such long lines in the future.

Thanks a lot.
-
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH 33/44] [IPV6] MIP6: Add sending mobility header functions through raw socket.

2006-08-23 Thread David Miller
From: YOSHIFUJI Hideaki <[EMAIL PROTECTED]>
Date: Thu, 24 Aug 2006 00:02:34 +0900

> From: Masahide NAKAMURA <[EMAIL PROTECTED]>
> 
> Mobility header is built by user-space and sent through raw socket.
> Kernel just extracts its type to flow.
> Based on MIPL2 kernel patch.
> 
> Signed-off-by: Masahide NAKAMURA <[EMAIL PROTECTED]>
> Signed-off-by: YOSHIFUJI Hideaki <[EMAIL PROTECTED]>

Applied to net-2.6.19, thanks a lot.
-
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH 29/44] [IPV6] MIP6: Add destination options header transformation.

2006-08-23 Thread David Miller
From: YOSHIFUJI Hideaki <[EMAIL PROTECTED]>
Date: Thu, 24 Aug 2006 00:02:30 +0900

> From: Masahide NAKAMURA <[EMAIL PROTECTED]>
> 
> Add destination options header transformation for Mobile IPv6.
> Based on MIPL2 kernel patch.
> 
> This patch was also written by: Ville Nuorvala <[EMAIL PROTECTED]>
> 
> Signed-off-by: Noriaki TAKAMIYA <[EMAIL PROTECTED]>
> Signed-off-by: Masahide NAKAMURA <[EMAIL PROTECTED]>
> Signed-off-by: YOSHIFUJI Hideaki <[EMAIL PROTECTED]>

Applied to net-2.6.19, thanks a lot.
-
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH 30/44] [XFRM] STATE: Add Mobile IPv6 route optimization protocols to netlink interface.

2006-08-23 Thread David Miller
From: YOSHIFUJI Hideaki <[EMAIL PROTECTED]>
Date: Thu, 24 Aug 2006 00:02:31 +0900

> Add Mobile IPv6 route optimization protocols to netlink interface.
> Route optimization states carry care-of address.
> Based on MIPL2 kernel patch.
> 
> Signed-off-by: Masahide NAKAMURA <[EMAIL PROTECTED]>
> Signed-off-by: YOSHIFUJI Hideaki <[EMAIL PROTECTED]>

Applied to net-2.6.19, thanks.
-
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH 28/44] [IPV6] MIP6: Add routing header type 2 transformation.

2006-08-23 Thread David Miller
From: YOSHIFUJI Hideaki <[EMAIL PROTECTED]>
Date: Thu, 24 Aug 2006 00:02:29 +0900

> From: Masahide NAKAMURA <[EMAIL PROTECTED]>
> 
> Add routing header type 2 transformation for Mobile IPv6.
> Based on MIPL2 kernel patch.
> 
> Signed-off-by: Noriaki TAKAMIYA <[EMAIL PROTECTED]>
> Signed-off-by: Masahide NAKAMURA <[EMAIL PROTECTED]>
> Signed-off-by: YOSHIFUJI Hideaki <[EMAIL PROTECTED]>

Applied to net-2.6.19, thanks a lot.
-
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[PATCH 6/7] [DCCP]: Shift sysctls into feat.h

2006-08-23 Thread Ian McDonald
This shifts further sysctls into feat.h. No change in 
functionality - shifting code only.

Signed off by: Ian McDonald <[EMAIL PROTECTED]>
---
diff --git a/net/dccp/feat.h b/net/dccp/feat.h
index b44c455..cee553d 100644
--- a/net/dccp/feat.h
+++ b/net/dccp/feat.h
@@ -27,5 +27,10 @@ extern int  dccp_feat_clone(struct sock 
 extern int  dccp_feat_init(struct dccp_minisock *dmsk);
 
 extern int  dccp_feat_default_sequence_window;
+extern int  dccp_feat_default_rx_ccid;
+extern int  dccp_feat_default_tx_ccid;
+extern int  dccp_feat_default_ack_ratio;
+extern int  dccp_feat_default_send_ack_vector;
+extern int  dccp_feat_default_send_ndp_count;
 
 #endif /* _DCCP_FEAT_H */
diff --git a/net/dccp/sysctl.c b/net/dccp/sysctl.c
index c1ba945..38bc157 100644
--- a/net/dccp/sysctl.c
+++ b/net/dccp/sysctl.c
@@ -11,18 +11,12 @@
 
 #include 
 #include 
+#include "feat.h"
 
 #ifndef CONFIG_SYSCTL
 #error This file should not be compiled without CONFIG_SYSCTL defined
 #endif
 
-extern int dccp_feat_default_sequence_window;
-extern int dccp_feat_default_rx_ccid;
-extern int dccp_feat_default_tx_ccid;
-extern int dccp_feat_default_ack_ratio;
-extern int dccp_feat_default_send_ack_vector;
-extern int dccp_feat_default_send_ndp_count;
-
 static struct ctl_table dccp_default_table[] = {
{
.ctl_name   = NET_DCCP_DEFAULT_SEQ_WINDOW,
-
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[PATCH 7/7] [DCCP]: Introduce tx buffering

2006-08-23 Thread Ian McDonald
This adds transmit buffering to DCCP.

I have tested with CCID2/3 and with loss and rate limiting.

Signed off by: Ian McDonald <[EMAIL PROTECTED]>
---
diff --git a/include/linux/dccp.h b/include/linux/dccp.h
index 676333b..2d7671c 100644
--- a/include/linux/dccp.h
+++ b/include/linux/dccp.h
@@ -438,6 +438,7 @@ struct dccp_ackvec;
  * @dccps_role - Role of this sock, one of %dccp_role
  * @dccps_ndp_count - number of Non Data Packets since last data packet
  * @dccps_hc_rx_ackvec - rx half connection ack vector
+ * @dccps_xmit_timer - timer for when CCID is not ready to send
  */
 struct dccp_sock {
/* inet_connection_sock has to be the first member of dccp_sock */
@@ -470,6 +471,7 @@ struct dccp_sock {
enum dccp_role  dccps_role:2;
__u8dccps_hc_rx_insert_options:1;
__u8dccps_hc_tx_insert_options:1;
+   struct timer_list   dccps_xmit_timer;
 };
  
 static inline struct dccp_sock *dccp_sk(const struct sock *sk)
diff --git a/net/dccp/dccp.h b/net/dccp/dccp.h
index 84b477d..f9f0721 100644
--- a/net/dccp/dccp.h
+++ b/net/dccp/dccp.h
@@ -130,7 +130,7 @@ extern void dccp_send_delayed_ack(struct
 extern void dccp_send_sync(struct sock *sk, const u64 seq,
   const enum dccp_pkt_type pkt_type);
 
-extern int dccp_write_xmit(struct sock *sk, struct sk_buff *skb, long *timeo);
+extern void dccp_write_xmit(struct sock *sk, int block);
 extern void dccp_write_space(struct sock *sk);
 
 extern void dccp_init_xmit_timers(struct sock *sk);
diff --git a/net/dccp/output.c b/net/dccp/output.c
index 58669be..5986cb9 100644
--- a/net/dccp/output.c
+++ b/net/dccp/output.c
@@ -198,7 +198,7 @@ static int dccp_wait_for_ccid(struct soc
while (1) {
prepare_to_wait(sk->sk_sleep, &wait, TASK_INTERRUPTIBLE);
 
-   if (sk->sk_err || (sk->sk_shutdown & SEND_SHUTDOWN))
+   if (sk->sk_err)
goto do_error;
if (!*timeo)
goto do_nonblock;
@@ -234,37 +234,72 @@ do_interrupted:
goto out;
 }
 
-int dccp_write_xmit(struct sock *sk, struct sk_buff *skb, long *timeo)
+static void dccp_write_xmit_timer(unsigned long data) {
+   struct sock *sk = (struct sock *)data;
+   struct dccp_sock *dp = dccp_sk(sk);
+
+   bh_lock_sock(sk);
+   if (sock_owned_by_user(sk))
+   sk_reset_timer(sk, &dp->dccps_xmit_timer, jiffies+1);
+   else
+   dccp_write_xmit(sk, 0);
+   bh_unlock_sock(sk);
+   sock_put(sk);
+}
+
+void dccp_write_xmit(struct sock *sk, int block)
 {
-   const struct dccp_sock *dp = dccp_sk(sk);
-   int err = ccid_hc_tx_send_packet(dp->dccps_hc_tx_ccid, sk, skb,
+   struct dccp_sock *dp = dccp_sk(sk);
+   struct sk_buff *skb;
+   long timeo = 3; /* If a packet is taking longer than 2 secs
+  we have other issues */
+
+   while ((skb = skb_peek(&sk->sk_write_queue))) {
+   int err = ccid_hc_tx_send_packet(dp->dccps_hc_tx_ccid, sk, skb,
 skb->len);
+   
+   if (err > 0) {
+   if (!block) { 
+   sk_reset_timer(sk, &dp->dccps_xmit_timer, 
+   msecs_to_jiffies(err)+jiffies);
+   break;
+   } else 
+   err = dccp_wait_for_ccid(sk, skb, &timeo);
+   if (err) {
+   printk(KERN_CRIT "%s:err at dccp_wait_for_ccid"
+" %d\n", __FUNCTION__, err);
+   dump_stack();
+   }
+   }
 
-   if (err > 0)
-   err = dccp_wait_for_ccid(sk, skb, timeo);
+   skb_dequeue(&sk->sk_write_queue);
+   if (err == 0) {
+   struct dccp_skb_cb *dcb = DCCP_SKB_CB(skb);
+   const int len = skb->len;
 
-   if (err == 0) {
-   struct dccp_skb_cb *dcb = DCCP_SKB_CB(skb);
-   const int len = skb->len;
-
-   if (sk->sk_state == DCCP_PARTOPEN) {
-   /* See 8.1.5.  Handshake Completion */
-   inet_csk_schedule_ack(sk);
-   inet_csk_reset_xmit_timer(sk, ICSK_TIME_DACK,
+   if (sk->sk_state == DCCP_PARTOPEN) {
+   /* See 8.1.5.  Handshake Completion */
+   inet_csk_schedule_ack(sk);
+   inet_csk_reset_xmit_timer(sk, ICSK_TIME_DACK,
  inet_csk(sk)->icsk_rto,
  DCCP_RTO_MAX);
-   dcb->dccpd_type = DCCP_PKT_DATAACK;
-   } else if (

[PATCH 5/7] [DCCP]: Fix CCID3 to correct performance

2006-08-23 Thread Ian McDonald
This fixes CCID3 to give much closer performance to RFC4342.

CCID3 is meant to alter sending rate based on RTT and loss.

The performance was verified against:
http://wand.net.nz/~perry/max_download.php

For example I tested with netem and had the following parameters:
Delayed Acks 1, MSS 256 bytes, RTT 105 ms, packet loss 5%.

This gives a theoretical speed of 71.9 Kbits/s. I measured across three
runs with this patch set and got 70.1 Kbits/s. Without this patchset the
average was 232 Kbits/s which means Linux can't be used for CCID3 research
properly.

I also tested with netem turned off so box just acting as router with 1.2
msec RTT. The performance with this is the same with or without the patch
at around 30 Mbit/s.

Signed off by: Ian McDonald <[EMAIL PROTECTED]>
---
diff --git a/net/dccp/ccids/ccid3.c b/net/dccp/ccids/ccid3.c
index 0f85970..dad20c9 100644
--- a/net/dccp/ccids/ccid3.c
+++ b/net/dccp/ccids/ccid3.c
@@ -342,6 +342,8 @@ static int ccid3_hc_tx_send_packet(struc
new_packet->dccphtx_ccval =
DCCP_SKB_CB(skb)->dccpd_ccval =
hctx->ccid3hctx_last_win_count;
+   timeval_add_usecs(&hctx->ccid3hctx_t_nom,
+ hctx->ccid3hctx_t_ipi);
}
 out:
return rc;
@@ -413,7 +415,8 @@ static void ccid3_hc_tx_packet_sent(stru
case TFRC_SSTATE_NO_FBACK:
case TFRC_SSTATE_FBACK:
if (len > 0) {
-   hctx->ccid3hctx_t_nom = now;
+   timeval_sub_usecs(&hctx->ccid3hctx_t_nom,
+ hctx->ccid3hctx_t_ipi);
ccid3_calc_new_t_ipi(hctx);
ccid3_calc_new_delta(hctx);
timeval_add_usecs(&hctx->ccid3hctx_t_nom,
@@ -757,8 +760,7 @@ static void ccid3_hc_rx_send_feedback(st
}
 
hcrx->ccid3hcrx_tstamp_last_feedback = now;
-   hcrx->ccid3hcrx_last_counter = packet->dccphrx_ccval;
-   hcrx->ccid3hcrx_seqno_last_counter   = packet->dccphrx_seqno;
+   hcrx->ccid3hcrx_ccval_last_counter   = packet->dccphrx_ccval;
hcrx->ccid3hcrx_bytes_recv   = 0;
 
/* Convert to multiples of 10us */
@@ -782,7 +784,7 @@ static int ccid3_hc_rx_insert_options(st
if (!(sk->sk_state == DCCP_OPEN || sk->sk_state == DCCP_PARTOPEN))
return 0;
 
-   DCCP_SKB_CB(skb)->dccpd_ccval = hcrx->ccid3hcrx_last_counter;
+   DCCP_SKB_CB(skb)->dccpd_ccval = hcrx->ccid3hcrx_ccval_last_counter;
 
if (dccp_packet_without_ack(skb))
return 0;
@@ -854,6 +856,11 @@ static u32 ccid3_hc_rx_calc_first_li(str
interval = 1;
}
 found:
+   if (!tail) {
+   LIMIT_NETDEBUG(KERN_WARNING "%s: tail is null\n",
+  __FUNCTION__);
+   return ~0;
+   }
rtt = timeval_delta(&tstamp, &tail->dccphrx_tstamp) * 4 / interval;
ccid3_pr_debug("%s, sk=%p, approximated RTT to %uus\n",
   dccp_role(sk), sk, rtt);
@@ -864,9 +871,20 @@ found:
delta = timeval_delta(&tstamp, &hcrx->ccid3hcrx_tstamp_last_feedback);
x_recv = usecs_div(hcrx->ccid3hcrx_bytes_recv, delta);
 
+   if (x_recv == 0) 
+   x_recv = hcrx->ccid3hcrx_x_recv;
+
tmp1 = (u64)x_recv * (u64)rtt;
do_div(tmp1,1000);
tmp2 = (u32)tmp1;
+
+   if (!tmp2) {
+   LIMIT_NETDEBUG(KERN_WARNING "tmp2 = 0 "
+  "%s: x_recv = %u, rtt =%u\n",
+  __FUNCTION__, x_recv, rtt);
+   return ~0;
+   }
+
fval = (hcrx->ccid3hcrx_s * 10) / tmp2;
/* do not alter order above or you will get overflow on 32 bit */
p = tfrc_calc_x_reverse_lookup(fval);
@@ -882,31 +900,101 @@ found:
 static void ccid3_hc_rx_update_li(struct sock *sk, u64 seq_loss, u8 win_loss)
 {
struct ccid3_hc_rx_sock *hcrx = ccid3_hc_rx_sk(sk);
+   struct dccp_li_hist_entry *next, *head;
+   u64 seq_temp;
 
-   if (seq_loss != DCCP_MAX_SEQNO + 1 &&
-   list_empty(&hcrx->ccid3hcrx_li_hist)) {
-   struct dccp_li_hist_entry *li_tail;
+   if (list_empty(&hcrx->ccid3hcrx_li_hist)) {
+   if (!dccp_li_hist_interval_new(ccid3_li_hist,
+  &hcrx->ccid3hcrx_li_hist, seq_loss, win_loss))
+   return;
 
-   li_tail = dccp_li_hist_interval_new(ccid3_li_hist,
-   &hcrx->ccid3hcrx_li_hist,
-   seq_loss, win_loss);
-   if (li_tail == NULL)
+   next = (struct dccp_li_hist_entry *)
+  hcrx->ccid3hcrx_li_hist.next;
+   next->dccplih_interval = ccid3_hc_rx_calc_first_li(sk);
+   } else {
+   struct dccp_li_hist_entry *entry;
+   struct list_head *tail;
+   
+   head = (st

[PATCH 4/7] [DCCP]: Introduce dccp_rx_hist_find_entry

2006-08-23 Thread Ian McDonald
This adds a new function dccp_rx_hist_find_entry.

Signed off by: Ian McDonald <[EMAIL PROTECTED]>
---
diff --git a/net/dccp/ccids/lib/packet_history.c 
b/net/dccp/ccids/lib/packet_history.c
index 7b6b03e..1c68182 100644
--- a/net/dccp/ccids/lib/packet_history.c
+++ b/net/dccp/ccids/lib/packet_history.c
@@ -365,6 +365,25 @@ struct dccp_tx_hist_entry *
 
 EXPORT_SYMBOL_GPL(dccp_tx_hist_find_entry);
 
+int dccp_rx_hist_find_entry(const struct list_head *list, const u64 seq, 
+   u8 *ccval)
+{
+   struct dccp_rx_hist_entry *packet = NULL, *entry;
+
+   list_for_each_entry(entry, list, dccphrx_node)
+   if (entry->dccphrx_seqno == seq) {
+   packet = entry;
+   break;
+   }
+
+   if (packet)
+   *ccval = packet->dccphrx_ccval;
+
+   return packet != NULL;
+}
+
+EXPORT_SYMBOL_GPL(dccp_rx_hist_find_entry);
+
 void dccp_tx_hist_purge_older(struct dccp_tx_hist *hist,
  struct list_head *list,
  struct dccp_tx_hist_entry *packet)
diff --git a/net/dccp/ccids/lib/packet_history.h 
b/net/dccp/ccids/lib/packet_history.h
index 27c4309..aea9c5d 100644
--- a/net/dccp/ccids/lib/packet_history.h
+++ b/net/dccp/ccids/lib/packet_history.h
@@ -106,6 +106,8 @@ static inline void dccp_tx_hist_entry_de
 extern struct dccp_tx_hist_entry *
dccp_tx_hist_find_entry(const struct list_head *list,
const u64 seq);
+extern int dccp_rx_hist_find_entry(const struct list_head *list, const u64 seq,
+   u8 *ccval);
 
 static inline void dccp_tx_hist_add_entry(struct list_head *list,
  struct dccp_tx_hist_entry *entry)
-
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[PATCH 3/7] [DCCP]: Introduces follows48 function

2006-08-23 Thread Ian McDonald
This adds a new function to see if two sequence numbers follow each other.

Signed off by: Ian McDonald <[EMAIL PROTECTED]>
---
diff --git a/net/dccp/dccp.h b/net/dccp/dccp.h
index b8931d3..84b477d 100644
--- a/net/dccp/dccp.h
+++ b/net/dccp/dccp.h
@@ -81,6 +81,14 @@ static inline u64 max48(const u64 seq1, 
return after48(seq1, seq2) ? seq1 : seq2;
 }
 
+/* is seq1 next seqno after seq2 */
+static inline int follows48(const u64 seq1, const u64 seq2)
+{
+   int diff = (seq1 & 0x) - (seq2 & 0x);
+   
+   return diff==1;
+}
+
 enum {
DCCP_MIB_NUM = 0,
DCCP_MIB_ACTIVEOPENS,   /* ActiveOpens */
-
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[PATCH 2/7] [DCCP]: Update contact details and copyright

2006-08-23 Thread Ian McDonald
Just updating copyright and contacts

Signed off by: Ian McDonald <[EMAIL PROTECTED]>
---
diff --git a/CREDITS b/CREDITS
index 29be6d1..0fe904e 100644
--- a/CREDITS
+++ b/CREDITS
@@ -2209,7 +2209,7 @@ S: (address available on request)
 S: USA
 
 N: Ian McDonald
-E: [EMAIL PROTECTED]
+E: [EMAIL PROTECTED]
 E: [EMAIL PROTECTED]
 W: http://wand.net.nz/~iam4
 W: http://imcdnzl.blogspot.com
diff --git a/net/dccp/ccids/ccid3.c b/net/dccp/ccids/ccid3.c
index c39bff7..0f85970 100644
--- a/net/dccp/ccids/ccid3.c
+++ b/net/dccp/ccids/ccid3.c
@@ -2,7 +2,7 @@
  *  net/dccp/ccids/ccid3.c
  *
  *  Copyright (c) 2005 The University of Waikato, Hamilton, New Zealand.
- *  Copyright (c) 2005-6 Ian McDonald <[EMAIL PROTECTED]>
+ *  Copyright (c) 2005-6 Ian McDonald <[EMAIL PROTECTED]>
  *
  *  An implementation of the DCCP protocol
  *
@@ -1230,7 +1230,7 @@ static __exit void ccid3_module_exit(voi
 }
 module_exit(ccid3_module_exit);
 
-MODULE_AUTHOR("Ian McDonald <[EMAIL PROTECTED]>, "
+MODULE_AUTHOR("Ian McDonald <[EMAIL PROTECTED]>, "
  "Arnaldo Carvalho de Melo <[EMAIL PROTECTED]>");
 MODULE_DESCRIPTION("DCCP TFRC CCID3 CCID");
 MODULE_LICENSE("GPL");
diff --git a/net/dccp/ccids/ccid3.h b/net/dccp/ccids/ccid3.h
index 5ade4f6..22cb9f8 100644
--- a/net/dccp/ccids/ccid3.h
+++ b/net/dccp/ccids/ccid3.h
@@ -1,13 +1,13 @@
 /*
  *  net/dccp/ccids/ccid3.h
  *
- *  Copyright (c) 2005 The University of Waikato, Hamilton, New Zealand.
+ *  Copyright (c) 2005-6 The University of Waikato, Hamilton, New Zealand.
  *
  *  An implementation of the DCCP protocol
  *
  *  This code has been developed by the University of Waikato WAND
  *  research group. For further information please see http://www.wand.net.nz/
- *  or e-mail Ian McDonald - [EMAIL PROTECTED]
+ *  or e-mail Ian McDonald - [EMAIL PROTECTED]
  *
  *  This code also uses code from Lulea University, rereleased as GPL by its
  *  authors:
diff --git a/net/dccp/ccids/lib/loss_interval.c 
b/net/dccp/ccids/lib/loss_interval.c
index 5d7b7d8..b93d9fc 100644
--- a/net/dccp/ccids/lib/loss_interval.c
+++ b/net/dccp/ccids/lib/loss_interval.c
@@ -2,7 +2,7 @@
  *  net/dccp/ccids/lib/loss_interval.c
  *
  *  Copyright (c) 2005 The University of Waikato, Hamilton, New Zealand.
- *  Copyright (c) 2005 Ian McDonald <[EMAIL PROTECTED]>
+ *  Copyright (c) 2005-6 Ian McDonald <[EMAIL PROTECTED]>
  *  Copyright (c) 2005 Arnaldo Carvalho de Melo <[EMAIL PROTECTED]>
  *
  *  This program is free software; you can redistribute it and/or modify
diff --git a/net/dccp/ccids/lib/loss_interval.h 
b/net/dccp/ccids/lib/loss_interval.h
index 43bf782..dcb370a 100644
--- a/net/dccp/ccids/lib/loss_interval.h
+++ b/net/dccp/ccids/lib/loss_interval.h
@@ -4,7 +4,7 @@ #define _DCCP_LI_HIST_
  *  net/dccp/ccids/lib/loss_interval.h
  *
  *  Copyright (c) 2005 The University of Waikato, Hamilton, New Zealand.
- *  Copyright (c) 2005 Ian McDonald <[EMAIL PROTECTED]>
+ *  Copyright (c) 2005 Ian McDonald <[EMAIL PROTECTED]>
  *  Copyright (c) 2005 Arnaldo Carvalho de Melo <[EMAIL PROTECTED]>
  *
  *  This program is free software; you can redistribute it and/or modify it
diff --git a/net/dccp/ccids/lib/packet_history.c 
b/net/dccp/ccids/lib/packet_history.c
index 6739be1..7b6b03e 100644
--- a/net/dccp/ccids/lib/packet_history.c
+++ b/net/dccp/ccids/lib/packet_history.c
@@ -1,13 +1,13 @@
 /*
  *  net/dccp/packet_history.c
  *
- *  Copyright (c) 2005 The University of Waikato, Hamilton, New Zealand.
+ *  Copyright (c) 2005-6 The University of Waikato, Hamilton, New Zealand.
  *
  *  An implementation of the DCCP protocol
  *
  *  This code has been developed by the University of Waikato WAND
  *  research group. For further information please see http://www.wand.net.nz/
- *  or e-mail Ian McDonald - [EMAIL PROTECTED]
+ *  or e-mail Ian McDonald - [EMAIL PROTECTED]
  *
  *  This code also uses code from Lulea University, rereleased as GPL by its
  *  authors:
@@ -391,7 +391,7 @@ void dccp_tx_hist_purge(struct dccp_tx_h
 
 EXPORT_SYMBOL_GPL(dccp_tx_hist_purge);
 
-MODULE_AUTHOR("Ian McDonald <[EMAIL PROTECTED]>, "
+MODULE_AUTHOR("Ian McDonald <[EMAIL PROTECTED]>, "
  "Arnaldo Carvalho de Melo <[EMAIL PROTECTED]>");
 MODULE_DESCRIPTION("DCCP TFRC library");
 MODULE_LICENSE("GPL");
diff --git a/net/dccp/ccids/lib/packet_history.h 
b/net/dccp/ccids/lib/packet_history.h
index 673c209..27c4309 100644
--- a/net/dccp/ccids/lib/packet_history.h
+++ b/net/dccp/ccids/lib/packet_history.h
@@ -1,13 +1,13 @@
 /*
  *  net/dccp/packet_history.h
  *
- *  Copyright (c) 2005 The University of Waikato, Hamilton, New Zealand.
+ *  Copyright (c) 2005-6 The University of Waikato, Hamilton, New Zealand.
  *
  *  An implementation of the DCCP protocol
  *
  *  This code has been developed by the University of Waikato WAND
  *  research group. For further information please see http://www.wand.net.nz/
- *  or e-mail Ian McDonald - [EMAIL PROTECTED]
+ *  or e-mail Ian McDonald - [EMAIL PROTECTED]
  *
  *  This code also uses 

[PATCH 1/7] [DCCP]: Fix typo

2006-08-23 Thread Ian McDonald
This fixes a small typo in net/dccp/libs/packet_history.c

Signed off by: Ian McDonald <[EMAIL PROTECTED]>
---
diff --git a/net/dccp/ccids/lib/packet_history.c 
b/net/dccp/ccids/lib/packet_history.c
index ad98d6a..6739be1 100644
--- a/net/dccp/ccids/lib/packet_history.c
+++ b/net/dccp/ccids/lib/packet_history.c
@@ -1,5 +1,5 @@
 /*
- *  net/dccp/packet_history.h
+ *  net/dccp/packet_history.c
  *
  *  Copyright (c) 2005 The University of Waikato, Hamilton, New Zealand.
  *
-
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[PATCH 0/7] [DCCP]: Fixes and enhancements

2006-08-23 Thread Ian McDonald
Please find following a series of patches for DCCP.

These have been tested against torvalds/linux-2.6.git and davem/net-2.6.19.git

My opinion is that 1 and 2 can go straight into 2.6.18 as documentation
changes only - Dave - are you able to do as Arnaldo is very busy at present.

I would love 3, 4, 5 to go into 2.6.18 as these resolve long standing CCID3
issues that have been in the DCCP tree since inception and have caught a
number of people.

Number 6 is just shifting code around to tidy it up and introduces no change
in logic. You could argue for it to go in either 2.6.18 or 2.6.19!

Number 7 is implementing transmit buffering and is 2.6.19 material.
Andrea - this might be quite useful for you in CCID2 as well I believe.

These patches are all capable of being done independently except 3, 4, 5 which
are a group.

Also on http://wand.net.nz/~iam4/dccp/patches/ are the following further
patches which are not ready for merge but others might be interested in:
-DCCP-Probe ala TCP-Probe
-The starts of memory buffer limiting (this is not actually needed for number
7 as it is actually receive where problems occur which is an existing issue)
-My research code

-- 
Ian McDonald
Web: http://wand.net.nz/~iam4
Blog: http://imcdnzl.blogspot.com
WAND Network Research Group
Department of Computer Science
University of Waikato
New Zealand
-
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[PATCH 4/4] Try 2: Modify rt2x00-d80211 to use wireless statistics

2006-08-23 Thread Larry Finger

These patches modify the rt2x00-d80211 family of drivers to use the wireless 
statics added in patch 1.

Signed-Off-By: Larry [EMAIL PROTECTED]>

==


diff --git a/drivers/net/wireless/d80211/rt2x00/rt2400pci.c 
b/drivers/net/wireless/d80211/rt2x00/rt2400pci.c

index 00f3a66..4244e94 100644
--- a/drivers/net/wireless/d80211/rt2x00/rt2400pci.c
+++ b/drivers/net/wireless/d80211/rt2x00/rt2400pci.c
@@ -1709,6 +1709,14 @@ static void rt2400pci_rxdone(void *data)
rt2x00dev->rx_params.ssi =
rt2x00_get_field32(rxd->word2, RXD_W2_RSSI);

+/* FIXME: The following set of assignments supply additional data for wireless 
statistics. The
+  necessary quantities are (1) the "noise" value in dBm, and (2) the 
"signal" value in dBm.
+  The present code supplies dummy values for these quantities. */
+
+   rt2x00dev->rx_params.noise = -85;   /* FIXME */
+   rt2x00dev->rx_params.signal =
+   rt2x00dev->rx_params.ssi - RT2X00_RX_MAX_SSI; 
/* FIXME */
+
__ieee80211_rx(ring->net_dev,
skb, &rt2x00dev->rx_params);
}
@@ -2565,6 +2573,7 @@ static int rt2400pci_init_hw(struct rt2x
hw->device_strips_mic = 0;
hw->monitor_during_oper = 1;
hw->fraglist = 0;
+   hw->maxssi = RT2X00_RX_MAX_SSI;

/*
 * We have 2 TX queues: TX and PRIO.
diff --git a/drivers/net/wireless/d80211/rt2x00/rt2500pci.c 
b/drivers/net/wireless/d80211/rt2x00/rt2500pci.c

index 3f6dd94..16cffe0 100644
--- a/drivers/net/wireless/d80211/rt2x00/rt2500pci.c
+++ b/drivers/net/wireless/d80211/rt2x00/rt2500pci.c
@@ -1853,6 +1853,14 @@ static void rt2500pci_rxdone(void *data)
rt2x00dev->rx_params.ssi =
rt2x00_get_field32(rxd->word2, RXD_W2_RSSI);

+/* FIXME: The following set of assignments supply additional data for wireless 
statistics. The
+  necessary quantities are (1) the "noise" value in dBm, and (2) the 
"signal" value in dBm.
+  The present code supplies dummy values for these quantities. */
+
+   rt2x00dev->rx_params.noise = -85;   /* FIXME */
+   rt2x00dev->rx_params.signal =
+   rt2x00dev->rx_params.ssi - RT2X00_RX_MAX_SSI; 
/* FIXME */
+
__ieee80211_rx(ring->net_dev,
skb, &rt2x00dev->rx_params);

@@ -2717,6 +2725,7 @@ static int rt2500pci_init_hw(struct rt2x
hw->device_strips_mic = 0;
hw->monitor_during_oper = 1;
hw->fraglist = 0;
+   hw->maxssi = RT2X00_RX_MAX_SSI;

/*
 * We have 2 TX queues: TX and PRIO.
diff --git a/drivers/net/wireless/d80211/rt2x00/rt2500usb.c 
b/drivers/net/wireless/d80211/rt2x00/rt2500usb.c

index 383f4a9..f77ecd4 100644
--- a/drivers/net/wireless/d80211/rt2x00/rt2500usb.c
+++ b/drivers/net/wireless/d80211/rt2x00/rt2500usb.c
@@ -1623,6 +1623,14 @@ static void rt2500usb_rxdone(void *data)
rt2x00dev->rx_params.ssi =
rt2x00_get_field32(rxd->word1, RXD_W1_RSSI);

+/* FIXME: The following set of assignments supply additional data for wireless 
statistics. The
+ necessary quantities are (1) the "noise" value in dBm, and (2) the 
"signal" value in dBm.
+ The present code supplies dummy values for these quantities. */
+
+   rt2x00dev->rx_params.noise = -85;   /* FIXME */
+   rt2x00dev->rx_params.signal =
+   rt2x00dev->rx_params.ssi - RT2X00_RX_MAX_SSI; 
/* FIXME */
+
__ieee80211_rx(ring->net_dev,
skb, &rt2x00dev->rx_params);

@@ -2387,6 +2395,7 @@ static int rt2500usb_init_hw(struct rt2x
hw->device_strips_mic = 0;
hw->monitor_during_oper = 1;
hw->fraglist = 0;
+   hw->maxssi = RT2X00_RX_MAX_SSI;

/*
 * We have 2 TX queues: TX and PRIO.
diff --git a/drivers/net/wireless/d80211/rt2x00/rt2x00.h 
b/drivers/net/wireless/d80211/rt2x00/rt2x00.h
index 89eee23..5669ef9 100644
--- a/drivers/net/wireless/d80211/rt2x00/rt2x00.h
+++ b/drivers/net/wireless/d80211/rt2x00/rt2x00.h
@@ -826,6 +826,8 @@ #define CONFIG_EXTERNAL_LNA_BG  0x80
 #define CONFIG_DOUBLE_ANTENNA  0x0001
 #define CONFIG_DISABLE_BBP_TUNING  0x0002

+#define RT2X00_RX_MAX_SSI  100
+
/*
 * Chipset identification.
 */
diff --git a/drivers/net/wireless/d80211/rt2x00/rt61pci.c 
b/drivers/net/wireless/d80211/rt2x00/rt61pci.c
index 2157ba2..fa6fec4 100644
--- a/drivers/net/wireless/d80211/rt2x00/rt61pci.c
+++ b/drivers/net/wireless/d80211/rt2x00/rt61pci.c
@@ -2300,6 +2300,14 @@ static void rt61pci_rxdone(void *data)
rt2x00dev->rx_params.ssi =

[PATCH 1/4] Try 2: Add wireless statistics to d80211

2006-08-23 Thread Larry Finger

This patch modifies d80211 to add wireless statistics.

Signed-Off-By: Larry [EMAIL PROTECTED]>

==
diff --git a/include/net/d80211.h b/include/net/d80211.h
index 42fdbf7..70655dc 100644
--- a/include/net/d80211.h
+++ b/include/net/d80211.h
@@ -205,6 +205,8 @@ struct ieee80211_rx_status {
 int channel;
 int phymode;
 int ssi;
+   int signal;
+   int noise;
 int antenna;
 int rate;
 int flag;
@@ -499,6 +501,9 @@ struct ieee80211_hw {
 /* This is the time in us to change channels
  */
 int channel_change_time;
+   /* This is maximum value of rssi reported by this interface
+*/
+   int maxssi;

int num_modes;
struct ieee80211_hw_modes *modes;
diff --git a/net/d80211/ieee80211.c b/net/d80211/ieee80211.c
index e72721f..2549484 100644
--- a/net/d80211/ieee80211.c
+++ b/net/d80211/ieee80211.c
@@ -3175,6 +3175,8 @@ ieee80211_rx_h_sta_process(struct ieee80
sta->rx_fragments++;
sta->rx_bytes += rx->skb->len;
sta->last_rssi = rx->u.rx.status->ssi;
+   sta->last_signal = rx->u.rx.status->signal;
+   sta->last_noise = rx->u.rx.status->noise;

if (!(rx->fc & IEEE80211_FCTL_MOREFRAGS)) {
/* Change STA power saving mode only in the end of a frame
diff --git a/net/d80211/ieee80211_i.h b/net/d80211/ieee80211_i.h
index 0d2d79d..1271513 100644
--- a/net/d80211/ieee80211_i.h
+++ b/net/d80211/ieee80211_i.h
@@ -336,6 +336,7 @@ struct ieee80211_local {
struct net_device *apdev; /* wlan#ap - management frames (hostapd) */
int open_count;
int monitors;
+   struct iw_statistics wstats;
struct ieee80211_conf conf;

int dev_index;
diff --git a/net/d80211/ieee80211_ioctl.c b/net/d80211/ieee80211_ioctl.c
index 89a58e3..b121302 100644
--- a/net/d80211/ieee80211_ioctl.c
+++ b/net/d80211/ieee80211_ioctl.c
@@ -1581,6 +1581,16 @@ static int ieee80211_ioctl_giwrange(stru
range->min_frag = 256;
range->max_frag = 2346;

+   range->max_qual.qual = 100;
+   range->max_qual.level = 146;  /* set floor at -110 dBm (146 - 256) */
+   range->max_qual.noise = 146;
+   range->max_qual.updated = IW_QUAL_ALL_UPDATED;
+
+   range->avg_qual.qual = 50;
+   range->avg_qual.level = 0;
+   range->avg_qual.noise = 0;
+   range->avg_qual.updated = IW_QUAL_ALL_UPDATED;
+
return 0;
 }

@@ -2996,6 +3006,39 @@ static int ieee80211_ioctl_siwauth(struc
return ret;
 }

+/* Get wireless statistics.  Called by /proc/net/wireless and by SIOCGIWSTATS 
*/
+static struct iw_statistics *ieee80211_get_wireless_stats(struct net_device 
*net_dev)
+{
+   struct ieee80211_local *local = net_dev->ieee80211_ptr;
+   struct iw_statistics * wstats = &local->wstats;
+   struct ieee80211_sub_if_data *sdata = IEEE80211_DEV_TO_SUB_IF(net_dev);
+   struct sta_info *sta;
+   static int tmp_level = 0;
+   static int tmp_qual = 0;
+
+   sta = sta_info_get(local, sdata->u.sta.bssid);
+   if (!sta) {
+   wstats->discard.fragment = 0;
+   wstats->discard.misc = 0;
+   wstats->qual.qual = 0;
+   wstats->qual.level = 0;
+   wstats->qual.noise = 0;
+   wstats->qual.updated = IW_QUAL_ALL_INVALID;
+   } else {
+   if (!tmp_level) {   /* get initial values */
+   tmp_level = sta->last_signal;
+   tmp_qual = sta->last_rssi;
+   } else {/* smooth results */
+   tmp_level = (15 * tmp_level + sta->last_signal)/16;
+   tmp_qual = (15 * tmp_qual + sta->last_rssi)/16;
+   }
+   wstats->qual.level = tmp_level;
+   wstats->qual.qual = 100*tmp_qual/local->hw->maxssi;
+   wstats->qual.noise = sta->last_noise;
+   wstats->qual.updated = IW_QUAL_ALL_UPDATED | IW_QUAL_DBM;
+   }
+   return wstats;
+}

 static int ieee80211_ioctl_giwauth(struct net_device *dev,
   struct iw_request_info *info,
@@ -3019,7 +3062,6 @@ static int ieee80211_ioctl_giwauth(struc
return ret;
 }

-
 static int ieee80211_ioctl_siwencodeext(struct net_device *dev,
struct iw_request_info *info,
struct iw_point *erq, char *extra)
@@ -3184,6 +3226,7 @@ const struct iw_handler_def ieee80211_iw
.standard   = (iw_handler *) ieee80211_handler,
.private= (iw_handler *) ieee80211_private_handler,
.private_args   = (struct iw_priv_args *) ieee80211_ioctl_priv,
+   .get_wireless_stats = ieee80211_get_wireless_stats,
 };

 /* Wireless handlers for master interface */
diff --git a/net/d80211/ieee80211_sysfs_sta.c b/net/d80211/ieee80211_sysfs_sta.c
index 94c6dd8..dd92b02 100644
--- a/net/d802

[PATCH 2/4] Try 2: Modify bcm43xx-d80211 to use wireless statistics

2006-08-23 Thread Larry Finger

These patches modify bcm43xx-d80211 to use the wireless statics added in patch 
1.

Signed-Off-By: Larry [EMAIL PROTECTED]>

==

diff --git a/drivers/net/wireless/d80211/bcm43xx/bcm43xx.h 
b/drivers/net/wireless/d80211/bcm43xx/bcm43xx.h

index a0faeca..75174f9 100644
--- a/drivers/net/wireless/d80211/bcm43xx/bcm43xx.h
+++ b/drivers/net/wireless/d80211/bcm43xx/bcm43xx.h
@@ -27,6 +27,8 @@ #define BCM43xx_IRQWAIT_MAX_RETRIES   50

 #define BCM43xx_IO_SIZE8192

+#define BCM43xx_RX_MAX_SSI 60
+
 /* Active Core PCI Configuration Register. */
 #define BCM43xx_PCICFG_ACTIVE_CORE 0x80
 /* SPROM control register. */
@@ -623,7 +625,7 @@ struct bcm43xx_noise_calculation {
 };

 struct bcm43xx_stats {
-   u8 link_quality;
+   u8 link_noise;
/* Store the last TX/RX times here for updating the leds. */
unsigned long last_tx;
unsigned long last_rx;
diff --git a/drivers/net/wireless/d80211/bcm43xx/bcm43xx_main.c 
b/drivers/net/wireless/d80211/bcm43xx/bcm43xx_main.c

index 6366020..e1b77ae 100644
--- a/drivers/net/wireless/d80211/bcm43xx/bcm43xx_main.c
+++ b/drivers/net/wireless/d80211/bcm43xx/bcm43xx_main.c
@@ -1506,15 +1506,7 @@ static void handle_irq_noise(struct bcm4
else
average -= 48;

-   if (average > -65)
-   bcm->stats.link_quality = 0;
-   else if (average > -75)
-   bcm->stats.link_quality = 1;
-   else if (average > -85)
-   bcm->stats.link_quality = 2;
-   else
-   bcm->stats.link_quality = 3;
-// dprintk(KERN_INFO PFX "Link Quality: %u (avg was %d)\n", 
bcm->stats.link_quality, average);
+   bcm->stats.link_noise = average;
 drop_calculation:
bcm->noisecalc.calculation_running = 0;
return;
@@ -4421,6 +4413,7 @@ #endif
ieee->host_gen_beacon_template = 1;
ieee->rx_includes_fcs = 1;
ieee->monitor_during_oper = 1;
+   ieee->maxssi = BCM43xx_RX_MAX_SSI;
ieee->tx = bcm43xx_net_hard_start_xmit;
ieee->open = bcm43xx_net_open;
ieee->stop = bcm43xx_net_stop;
diff --git a/drivers/net/wireless/d80211/bcm43xx/bcm43xx_xmit.c 
b/drivers/net/wireless/d80211/bcm43xx/bcm43xx_xmit.c

index 3f86079..d2a2777 100644
--- a/drivers/net/wireless/d80211/bcm43xx/bcm43xx_xmit.c
+++ b/drivers/net/wireless/d80211/bcm43xx/bcm43xx_xmit.c
@@ -475,7 +475,9 @@ void bcm43xx_rx(struct bcm43xx_private *
 */

memset(&status, 0, sizeof(status));
-   status.ssi = bcm43xx_rssi_postprocess(bcm, rxhdr->rssi, is_ofdm,
+   status.noise = bcm->stats.link_noise;
+   status.ssi = rxhdr->rssi;
+   status.signal = bcm43xx_rssi_postprocess(bcm, rxhdr->rssi, is_ofdm,
  !!(rxflags1 & 
BCM43xx_RXHDR_FLAGS1_2053RSSIADJ),
  !!(rxflags3 & 
BCM43xx_RXHDR_FLAGS3_2050RSSIADJ));
if (is_ofdm)
-
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[PATCH 3/4] Try 2: Modify adm8211-d80211 to use wireless statistics

2006-08-23 Thread Larry Finger

These patches modify adm8211-d80211 to use the wireless statics added in patch 
1.

Signed-Off-By: Larry [EMAIL PROTECTED]>

==


diff --git a/drivers/net/wireless/d80211/adm8211/adm8211.c 
b/drivers/net/wireless/d80211/adm8211/adm8211.c

index dcabeab..5f13e9e 100644
--- a/drivers/net/wireless/d80211/adm8211/adm8211.c
+++ b/drivers/net/wireless/d80211/adm8211/adm8211.c
@@ -74,6 +74,8 @@ #define PLCP_SIGNAL_2M0x14
 #define PLCP_SIGNAL_5M50x37
 #define PLCP_SIGNAL_11M0x6e

+#define ADM8211_RX_MAX_SSI 100
+
 struct adm8211_tx_hdr {
u8 da[6];
u8 signal; /* PLCP signal / TX rate in 100 Kbps */
@@ -558,6 +560,14 @@ static void adm8211_interrupt_rci(struct
if (dev->flags & IFF_PROMISC)
skb_trim(skb, skb->len - FCS_LEN);

+
+/* FIXME: The following set of assignments supply additional data for wireless 
statistics. The
+ necessary quantities are (1) the "noise" value in dBm, and (2) the 
"signal" value in dBm.
+ The present code supplies dummy values for these quantities. */
+
+   rx_status.noise = -85;   /* FIXME */
+   rx_status.signal = rx_status.ssi - ADM8211_RX_MAX_SSI; 
/* FIXME */
+
ieee80211_rx_irqsafe(dev, skb, &rx_status);
}

@@ -2047,6 +2057,7 @@ #endif
hw->get_tsf = adm8211_get_tsft;
hw->get_tx_stats = adm8211_get_tx_stats;
hw->queues = 1;  // ADM8211C supports more, maybe ADM8211B
+   hw->maxssi = ADM8211_RX_MAX_SSI;// FIXME - This is an approximation

priv->retry_limit = 3;
priv->ant_power = 0x40;
-
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH 18/44] [IPV6]: Add Kconfig to enable Mobile IPv6.

2006-08-23 Thread Masahide NAKAMURA

David Miller wrote:

From: YOSHIFUJI Hideaki <[EMAIL PROTECTED]>
Date: Thu, 24 Aug 2006 00:02:19 +0900


From: Masahide NAKAMURA <[EMAIL PROTECTED]>

Add Kconfig to enable Mobile IPv6.
Based on MIPL2 kernel patch.

Signed-off-by: Noriaki TAKAMIYA <[EMAIL PROTECTED]>
Signed-off-by: Masahide NAKAMURA <[EMAIL PROTECTED]>
Signed-off-by: YOSHIFUJI Hideaki <[EMAIL PROTECTED]>


Applied to net-2.6.19

Won't we also need a selection of route optimization and/or subtree
options when enabling the mobile ipv6 config option?


We won't need them for building. I thought this option should be
just for the basic MIPv6 feature (i.e. knowledge of header types)
then I didn't add such dependency.

However, if we would think this option is a switch for enabling
MIPv6 roles (i.e. CN, HA and MN),

RO mode: Yes, it is required by all roles.

Policy routing: I guess No. Because it is not required by CN.
(required by MN, used by HA only for supporting physical home link)

Regards,

--
Masahide NAKAMURA
-
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH 16/44] [XFRM] IPV6: Restrict bundle reusing

2006-08-23 Thread Masahide NAKAMURA

David Miller wrote:

From: YOSHIFUJI Hideaki <[EMAIL PROTECTED]>
Date: Thu, 24 Aug 2006 00:02:17 +0900


From: Masahide NAKAMURA <[EMAIL PROTECTED]>

For outbound transformation, bundle is checked whether it is
suitable for current flow to be reused or not. In such IPv6 case
as below, transformation may apply incorrect bundle for the flow instead
of creating another bundle:

- The policy selector has destination prefix length < 128
  (Two or more addresses can be matched it)
- Its bundle holds dst entry of default route whose prefix length < 128
  (Previous traffic was used such route as next hop)
- The policy and the bundle were used a transport mode state and
  this time flow address is not matched the bundled state.

This issue is found by Mobile IPv6 usage to protect mobility signaling
by IPsec, but it is not a Mobile IPv6 specific.
This patch adds strict check to xfrm_bundle_ok() for each
state mode and address when prefix length is less than 128.

Signed-off-by: Masahide NAKAMURA <[EMAIL PROTECTED]>
Signed-off-by: YOSHIFUJI Hideaki <[EMAIL PROTECTED]>


Applied.  Maybe ipv4 side wants to check for prefix length < 32?
Or does it not matter for some reason under ipv4?


Logically yes. But I was not clear IPv4 __xfrm4_find_bundle()
has no prefix check as opposed to IPv6 one then I couldn't include it.


--
Masahide NAKAMURA
-
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[PATCH 0/4] Try 2 - Add wireless statistics to d80211 and its drivers

2006-08-23 Thread Larry Finger

Jiri,

This series of patches address all of your earlier concerns, namely:

1. The d80211 stuff is in Part 1/4, the patches for bcm43xx-d80211 are in Part 
2/4, the patches for
the adm8211 driver is in Part 3/4, and the patches for the RT2X00 family of 
drivers are in Part 4/4.

2. The location for maxssi has been moved to struct hw.

3. The unnecessary variables in ieee80211_local have been removed. 
Unfortunately, wstats has to remain.

4. The floor for signal and noise has been set to -110 dBm.

5. The variables last_signal and last_noise now appear in 
/sys/class/ieee80211/phy0/sta/[MAC
Address]/. BTW, is there a good reason why only root can read these variables?

Signed-Off-By: Larry Finger <[EMAIL PROTECTED]>


-
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH 27/44] [IPV6] IPSEC: Support sending with Mobile IPv6 extension headers.

2006-08-23 Thread David Miller
From: YOSHIFUJI Hideaki <[EMAIL PROTECTED]>
Date: Thu, 24 Aug 2006 00:02:28 +0900

> Mobile IPv6 defines home address option as an option of destination
> options header. It is placed before fragment header then
> ip6_find_1stfragopt() is fixed to know about it.
> Home address option also carries final source address of the flow, then
> outbound AH calculation should take care of it like routing header case.
> Based on MIPL2 kernel patch.
> 
> Signed-off-by: Masahide NAKAMURA <[EMAIL PROTECTED]>
> Signed-off-by: YOSHIFUJI Hideaki <[EMAIL PROTECTED]>

Applied to net-2.6.19, and I fixed the leak mentioned here:

> +#ifdef CONFIG_IPV6_MIP6
> + if (ipv6_clear_mutable_options(skb->nh.ipv6h, hdr_len, XFRM_POLICY_IN))
> + goto out;
> +#else
>   if (ipv6_clear_mutable_options(skb->nh.ipv6h, hdr_len))
>   goto free_out;
> +#endif

By making MIP6 case goto free_out; too.
-
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH 26/44] [IPV6] MIP6: Revert address to send ICMPv6 error.

2006-08-23 Thread David Miller
From: YOSHIFUJI Hideaki <[EMAIL PROTECTED]>
Date: Thu, 24 Aug 2006 00:02:27 +0900

> IPv6 source address is replaced in receiving packet
> with home address option carried by destination options header.
> To send ICMPv6 error back, original address which is received one on wire
> should be used. This function checks such header is included
> and reverts them.
> Based on MIPL2 kernel patch.
> 
> This patch was also written by: Ville Nuorvala <[EMAIL PROTECTED]>
> 
> Signed-off-by: Masahide NAKAMURA <[EMAIL PROTECTED]>
> Signed-off-by: YOSHIFUJI Hideaki <[EMAIL PROTECTED]>

Applied to net-2.6.19, thanks a lot.
-
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH 25/44] [IPV6] MIP6: Add inbound interface of home address option.

2006-08-23 Thread David Miller
From: YOSHIFUJI Hideaki <[EMAIL PROTECTED]>
Date: Thu, 24 Aug 2006 00:02:26 +0900

> From: Masahide NAKAMURA <[EMAIL PROTECTED]>
> 
> Add inbound function of home address option by registering it to TLV table for
> destination options header.
> Based on MIPL2 kernel patch.
> 
> This patch was also written by: Ville Nuorvala <[EMAIL PROTECTED]>
> 
> Signed-off-by: Masahide NAKAMURA <[EMAIL PROTECTED]>
> Signed-off-by: YOSHIFUJI Hideaki <[EMAIL PROTECTED]>

Applied to net-2.6.19, thank you.

I made a small change afterwards, placing 'dsthao' after
'flags' in inet6_skb_parm in order to pack structure more
tightly.

Thanks again.
-
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH 24/44] [IPV6] MIP6: Add home address option definition.

2006-08-23 Thread David Miller
From: YOSHIFUJI Hideaki <[EMAIL PROTECTED]>
Date: Thu, 24 Aug 2006 00:02:25 +0900

> Add home address option definition for Mobile IPv6.
> Based on MIPL2 kernel patch.
> 
> Signed-off-by: Noriaki TAKAMIYA <[EMAIL PROTECTED]>
> Signed-off-by: Masahide NAKAMURA <[EMAIL PROTECTED]>
> Signed-off-by: YOSHIFUJI Hideaki <[EMAIL PROTECTED]>

Applied to net-2.6.19

Thank you.
-
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: ProxyARP and IPSec

2006-08-23 Thread Andy Gay
On Wed, 2006-08-23 at 18:14 -0700, H. Peter Anvin wrote:
> H. Peter Anvin wrote:
> > Alexey Kuznetsov wrote:
> >>
> >> The question is where is this host really?
> >>
> >> If it is far far away and connected only via IPsec tunnel with 
> >> destionation
> >> of tunnel different of host address
> >>
> >> ip ro add THEHOST dev dummy0
> >>
> >> should be enough. It asserts that THEHOST is not on eth0.
> >> IPsec policy will figure out correct route, unless something is broken.
> >>
> > 
> > Just tried it, and it works as advertised.
> > 
> 
> ... except that OpenSwan will rip out the route and install a route 
> pointing to eth0, thus breaking the thing again.

Use a custom updown script with Openswan to fix that.

> 
>   -hpa
> 
> -
> To unsubscribe from this list: send the line "unsubscribe netdev" in
> the body of a message to [EMAIL PROTECTED]
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
> 

-
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH 23/44] [IPV6]: Allow to replace skbuff by TLV parser.

2006-08-23 Thread David Miller
From: YOSHIFUJI Hideaki <[EMAIL PROTECTED]>
Date: Thu, 24 Aug 2006 00:02:24 +0900

> In receiving Mobile IPv6 home address option which is a TLV carried
> by destination options header, kernel will try to mangle source adderss
> of packet. Think of cloned skbuff it is required to replace it by
> the parser just like routing header case.
> This is a framework to achieve that to allow TLV parser to replace
> inbound skbuff pointer.
> 
> Signed-off-by: Masahide NAKAMURA <[EMAIL PROTECTED]>
> Signed-off-by: YOSHIFUJI Hideaki <[EMAIL PROTECTED]>

Applied to net-2.6.19, thanks a lot.
-
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH 22/44] [IPV6]: Find option offset by type.

2006-08-23 Thread David Miller
From: YOSHIFUJI Hideaki <[EMAIL PROTECTED]>
Date: Thu, 24 Aug 2006 00:02:23 +0900

> This is a helper to search option offset from extension header which
> can carry TLV option like destination options header.
> Mobile IPv6 home address option will use it.
> Based on MIPL2 kernel patch.
> 
> Signed-off-by: Masahide NAKAMURA <[EMAIL PROTECTED]>
> Signed-off-by: YOSHIFUJI Hideaki <[EMAIL PROTECTED]>

Applied to net-2.6.19, thanks a lot.
-
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH 21/44] [IPV6] MIP6: Add socket option and ancillary data interface of routing header type 2.

2006-08-23 Thread David Miller
From: YOSHIFUJI Hideaki <[EMAIL PROTECTED]>
Date: Thu, 24 Aug 2006 00:02:22 +0900

> Add socket option and ancillary data interface of routing header type 2.
> Mobile IPv6 application will use this to send binding acknowledgement
> with the header without relation of confirmed route optimization (binding).
> Based on MIPL2 kernel patch.
> 
> Signed-off-by: Masahide NAKAMURA <[EMAIL PROTECTED]>
> Signed-off-by: YOSHIFUJI Hideaki <[EMAIL PROTECTED]>

Applied to net-2.6.19, thanks a lot.
-
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH 20/44] [IPV6] MIP6: Add inbound interface of routing header type 2.

2006-08-23 Thread David Miller
From: YOSHIFUJI Hideaki <[EMAIL PROTECTED]>
Date: Thu, 24 Aug 2006 00:02:21 +0900

> Add inbound interface of routing header type 2 for Mobile IPv6.
> Based on MIPL2 kernel patch.
> 
> This patch was also written by: Ville Nuorvala <[EMAIL PROTECTED]>
> 
> Signed-off-by: Masahide NAKAMURA <[EMAIL PROTECTED]>
> Signed-off-by: YOSHIFUJI Hideaki <[EMAIL PROTECTED]>

Applied to net-2.6.19

Thanks.
-
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH 19/44] [IPV6] MIP6: Add routing header type 2 definition.

2006-08-23 Thread David Miller
From: YOSHIFUJI Hideaki <[EMAIL PROTECTED]>
Date: Thu, 24 Aug 2006 00:02:20 +0900

> Add routing header type 2 definition for Mobile IPv6.
> Based on MIPL2 kernel patch.
> 
> Signed-off-by: Noriaki TAKAMIYA <[EMAIL PROTECTED]>
> Signed-off-by: Masahide NAKAMURA <[EMAIL PROTECTED]>
> Signed-off-by: YOSHIFUJI Hideaki <[EMAIL PROTECTED]>

Applied to net-2.6.19, thanks a lot.
-
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH 18/44] [IPV6]: Add Kconfig to enable Mobile IPv6.

2006-08-23 Thread David Miller
From: YOSHIFUJI Hideaki <[EMAIL PROTECTED]>
Date: Thu, 24 Aug 2006 00:02:19 +0900

> From: Masahide NAKAMURA <[EMAIL PROTECTED]>
> 
> Add Kconfig to enable Mobile IPv6.
> Based on MIPL2 kernel patch.
> 
> Signed-off-by: Noriaki TAKAMIYA <[EMAIL PROTECTED]>
> Signed-off-by: Masahide NAKAMURA <[EMAIL PROTECTED]>
> Signed-off-by: YOSHIFUJI Hideaki <[EMAIL PROTECTED]>

Applied to net-2.6.19

Won't we also need a selection of route optimization and/or subtree
options when enabling the mobile ipv6 config option?
-
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH 17/44] [XFRM]: Fix message about transformation user interface.

2006-08-23 Thread David Miller
From: YOSHIFUJI Hideaki <[EMAIL PROTECTED]>
Date: Thu, 24 Aug 2006 00:02:18 +0900

> Transformation user interface is not only for IPsec.
> Based on MIPL2 kernel patch.
> 
> Signed-off-by: Masahide NAKAMURA <[EMAIL PROTECTED]>
> Signed-off-by: YOSHIFUJI Hideaki <[EMAIL PROTECTED]>

Applied to net-2.6.19, thanks a lot.
-
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH 16/44] [XFRM] IPV6: Restrict bundle reusing

2006-08-23 Thread David Miller
From: YOSHIFUJI Hideaki <[EMAIL PROTECTED]>
Date: Thu, 24 Aug 2006 00:02:17 +0900

> From: Masahide NAKAMURA <[EMAIL PROTECTED]>
> 
> For outbound transformation, bundle is checked whether it is
> suitable for current flow to be reused or not. In such IPv6 case
> as below, transformation may apply incorrect bundle for the flow instead
> of creating another bundle:
> 
> - The policy selector has destination prefix length < 128
>   (Two or more addresses can be matched it)
> - Its bundle holds dst entry of default route whose prefix length < 128
>   (Previous traffic was used such route as next hop)
> - The policy and the bundle were used a transport mode state and
>   this time flow address is not matched the bundled state.
> 
> This issue is found by Mobile IPv6 usage to protect mobility signaling
> by IPsec, but it is not a Mobile IPv6 specific.
> This patch adds strict check to xfrm_bundle_ok() for each
> state mode and address when prefix length is less than 128.
> 
> Signed-off-by: Masahide NAKAMURA <[EMAIL PROTECTED]>
> Signed-off-by: YOSHIFUJI Hideaki <[EMAIL PROTECTED]>

Applied.  Maybe ipv4 side wants to check for prefix length < 32?
Or does it not matter for some reason under ipv4?
-
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH 5/44] [XFRM] STATE: Add source address list.

2006-08-23 Thread David Miller
From: Masahide NAKAMURA <[EMAIL PROTECTED]>
Date: Thu, 24 Aug 2006 10:19:47 +0900

> As you may already find out the resolution will not be so hard
> since this it is doing the same thing as destination hash about
> XFRM list.

Correct.  I also do not think it will be very difficult.
-
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH 4/4] IP100A: Solve host error problem in low performance embedded system when continune down and up.

2006-08-23 Thread Jesse Huang
Hi Randy:

Sorry for the file path. I will regenerate with path
a/drivers/net/sundance.c
and re-submit again.

Thanks for your help!

Best Regards,
Jesse Huang

- Original Message - 
From: "Randy.Dunlap" <[EMAIL PROTECTED]>
To: "Jesse Huang" <[EMAIL PROTECTED]>
Cc: ; ;
<[EMAIL PROTECTED]>; <[EMAIL PROTECTED]>
Sent: Wednesday, August 23, 2006 12:05 AM
Subject: Re: [PATCH 4/4] IP100A: Solve host error problem in low performance
embedded system when continune down and up.


On Tue, 22 Aug 2006 14:31:32 -0400 Jesse Huang wrote:

> From: Jesse Huang <[EMAIL PROTECTED]>
>
> Change Logs:
>- Solve host error problem in low performance embedded
>  system when continune down and up.
>
> Signed-off-by: Jesse Huang <[EMAIL PROTECTED]>
>
> ---
>
>  sundance.c |   30 +-
>  1 files changed, 25 insertions(+), 5 deletions(-)

Full path/file names above and below, please.

> a88c635933a981dd4fca87e5b8ca9426c5c98013
> diff --git a/sundance.c b/sundance.c
> index 424aebd..de55e0f 100755
> --- a/sundance.c
> +++ b/sundance.c
> @@ -1647,6 +1647,14 @@ static int netdev_close(struct net_devic
>  struct sk_buff *skb;
>  int i;
>
> + /* Wait and kill tasklet */
> + tasklet_kill(&np->rx_tasklet);
> + tasklet_kill(&np->tx_tasklet);
> +   np->cur_tx = 0;
> +   np->dirty_tx = 0;

Use same indentation/whitespace as surrounding code.
(tabs, not spaces)

> + np->cur_task = 0;
> + np->last_tx = 0;
> +
>  netif_stop_queue(dev);
>
>  if (netif_msg_ifdown(np)) {
> @@ -1667,9 +1675,20 @@ static int netdev_close(struct net_devic
>  /* Stop the chip's Tx and Rx processes. */
>  iowrite16(TxDisable | RxDisable | StatsDisable, ioaddr + MACCtrl1);
>
> - /* Wait and kill tasklet */
> - tasklet_kill(&np->rx_tasklet);
> - tasklet_kill(&np->tx_tasklet);
> +for (i = 2000; i > 0; i--) {
> + if ((ioread32(ioaddr + DMACtrl) &0xC000) == 0)
> + break;
> + mdelay(1);
> +}
> +
> +iowrite16(GlobalReset | DMAReset | FIFOReset |NetworkReset, ioaddr
+ASICCtrl + 2);
> +
> +for (i = 2000; i > 0; i--)
> +{
> + if ((ioread16(ioaddr + ASICCtrl +2) &ResetBusy) == 0)
> + break;
> + mdelay(1);
> +}

Same comment about indentation/whitespace.

---
~Randy


-
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH] IP1000A: IC Plus update 2006-08-22

2006-08-23 Thread Jesse Huang
Hi Francois:

I am very appreciated what you do for IP1000A.
I will follow those files. Thanks you very much!

Best Regards,
Jesse Huang

- Original Message - 
From: "Francois Romieu" <[EMAIL PROTECTED]>
To: "Jesse Huang" <[EMAIL PROTECTED]>
Cc: <[EMAIL PROTECTED]>; <[EMAIL PROTECTED]>; <[EMAIL PROTECTED]>;
; ;
<[EMAIL PROTECTED]>
Sent: Thursday, August 24, 2006 6:30 AM
Subject: Re: [PATCH] IP1000A: IC Plus update 2006-08-22


Francois Romieu <[EMAIL PROTECTED]> :
[...]
> Typo. It should be:
> http://www.fr.zoreil.com/linux/kernel/2.6.x/2.6.18-rc4/ip1000

Added 0038-ip1000-CodingStyle.txt.

More local variables, more unsigned int, less MixedCase, ipg_nic_rx()
fits in your favorite 80 cols console.

-- 
Ueimor


-
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH 5/44] [XFRM] STATE: Add source address list.

2006-08-23 Thread Masahide NAKAMURA

David Miller wrote:

From: YOSHIFUJI Hideaki <[EMAIL PROTECTED]>
Date: Thu, 24 Aug 2006 00:02:06 +0900


From: Masahide NAKAMURA <[EMAIL PROTECTED]>

Support source address based searching.
Mobile IPv6 will use it.
Based on MIPL2 kernel patch.

Signed-off-by: Masahide NAKAMURA <[EMAIL PROTECTED]>
Signed-off-by: YOSHIFUJI Hideaki <[EMAIL PROTECTED]>


Patch applied to net-2.6.19, thanks a lot.

I see this is where I will need to perform conflict resolution
with my XFRM layer hashing patches :-)


That's right.
As you may already find out the resolution will not be so hard
since this it is doing the same thing as destination hash about
XFRM list.

Thanks,

--
Masahide NAKAMURA
-
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH 15/44] [XFRM] IPV6: Update outbound state timestamp for each sending.

2006-08-23 Thread David Miller
From: YOSHIFUJI Hideaki <[EMAIL PROTECTED]>
Date: Thu, 24 Aug 2006 00:02:16 +0900

> From: Masahide NAKAMURA <[EMAIL PROTECTED]>
> 
> With this patch transformation state is updated last used time
> for each sending. Xtime is used for it like other state lifetime
> expiration.
> Mobile IPv6 enabled nodes will want to know traffic status of each
> binding (e.g. judgement to request binding refresh by correspondent node,
> or to keep home/care-of nonce alive by mobile node).
> The last used timestamp is an important hint about it.
> Based on MIPL2 kernel patch.
> 
> This patch was also written by: Henrik Petander <[EMAIL PROTECTED]>
> 
> Signed-off-by: Masahide NAKAMURA <[EMAIL PROTECTED]>
> Signed-off-by: YOSHIFUJI Hideaki <[EMAIL PROTECTED]>

Patch applied to net-2.6.19
-
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH 14/44] [XFRM] STATE: Introduce care-of address.

2006-08-23 Thread David Miller
From: YOSHIFUJI Hideaki <[EMAIL PROTECTED]>
Date: Thu, 24 Aug 2006 00:02:15 +0900

> Care-of address is carried by state as a transformation option like IPsec
> encryption/authentication algorithm.
> Based on MIPL2 kernel patch.
> 
> Signed-off-by: Noriaki TAKAMIYA <[EMAIL PROTECTED]>
> Signed-off-by: Masahide NAKAMURA <[EMAIL PROTECTED]>
> Signed-off-by: YOSHIFUJI Hideaki <[EMAIL PROTECTED]>

Applied to net-2.6.19, thanks a lot.
-
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: ProxyARP and IPSec

2006-08-23 Thread H. Peter Anvin

H. Peter Anvin wrote:

Alexey Kuznetsov wrote:


The question is where is this host really?

If it is far far away and connected only via IPsec tunnel with 
destionation

of tunnel different of host address

ip ro add THEHOST dev dummy0

should be enough. It asserts that THEHOST is not on eth0.
IPsec policy will figure out correct route, unless something is broken.



Just tried it, and it works as advertised.



... except that OpenSwan will rip out the route and install a route 
pointing to eth0, thus breaking the thing again.


-hpa

-
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: ProxyARP and IPSec

2006-08-23 Thread H. Peter Anvin

Alexey Kuznetsov wrote:


The question is where is this host really?

If it is far far away and connected only via IPsec tunnel with destionation
of tunnel different of host address

ip ro add THEHOST dev dummy0

should be enough. It asserts that THEHOST is not on eth0.
IPsec policy will figure out correct route, unless something is broken.



Just tried it, and it works as advertised.

-hpa
-
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH 13/44] [XFRM] STATE: Support non-fragment outbound transformation headers.

2006-08-23 Thread David Miller
From: YOSHIFUJI Hideaki <[EMAIL PROTECTED]>
Date: Thu, 24 Aug 2006 00:02:14 +0900

> For originated outbound IPv6 packets which will fragment, ip6_append_data()
> should know length of extension headers before sending them and
> the length is carried by dst_entry.
> IPv6 IPsec headers fragment then transformation was
> designed to place all headers after fragment header.
> OTOH Mobile IPv6 extension headers do not fragment then
> it is a good idea to make dst_entry have non-fragment length to tell it
> to ip6_append_data().
> 
> Signed-off-by: Masahide NAKAMURA <[EMAIL PROTECTED]>
> Signed-off-by: YOSHIFUJI Hideaki <[EMAIL PROTECTED]>

Applied to net-2.6.19, thank you.
-
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH 12/44] [XFRM] STATE: Add a hook to obtain local/remote outbound address.

2006-08-23 Thread David Miller
From: YOSHIFUJI Hideaki <[EMAIL PROTECTED]>
Date: Thu, 24 Aug 2006 00:02:13 +0900

> Outbound transformation replaces both source and destination address with
> state's end-point addresses at the same time when IPsec tunnel mode.
> It is also required to change them for Mobile IPv6 route optimization, but we
> should care about the following differences:
>  - changing result is not end-point but care-of address
>  - either source or destination is replaced for each state
> This hook is a common platform to change outbound address.
> Based on MIPL2 kernel patch.
> 
> Signed-off-by: Masahide NAKAMURA <[EMAIL PROTECTED]>
> Signed-off-by: YOSHIFUJI Hideaki <[EMAIL PROTECTED]>

Applied to net-2.6.19, thanks a lot.
-
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH 11/44] [XFRM]: Rename secpath_has_tunnel to secpath_has_nontransport.

2006-08-23 Thread David Miller
From: YOSHIFUJI Hideaki <[EMAIL PROTECTED]>
Date: Thu, 24 Aug 2006 00:02:12 +0900

> On current kernel inbound transformation state is allowed transport and
> disallowed tunnel mode when mismatch is occurred between tempates and states.
> As the result of adding two more modes by Mobile IPv6, this function name
> is misleading. Inbound transformation can allow only transport mode
> when mismatch is occurred between template and secpath.
> Based on MIPL2 kernel patch.
> 
> Signed-off-by: Masahide NAKAMURA <[EMAIL PROTECTED]>
> Signed-off-by: YOSHIFUJI Hideaki <[EMAIL PROTECTED]>

Applied to net-2.6.19, thanks a lot.
-
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH 10/44] [XFRM] STATE: Common receive function for route optimization extension headers.

2006-08-23 Thread David Miller
From: YOSHIFUJI Hideaki <[EMAIL PROTECTED]>
Date: Thu, 24 Aug 2006 00:02:11 +0900

> XFRM_STATE_WILDRECV flag is introduced; the last resort state is set it
> and receives packet which is not route optimized but uses such extension
> headers i.e. Mobile IPv6 signaling (binding update and acknowledgement).
> A node enabled Mobile IPv6 adds the state.
> Based on MIPL2 kernel patch.
> 
> Signed-off-by: Masahide NAKAMURA <[EMAIL PROTECTED]>
> Signed-off-by: YOSHIFUJI Hideaki <[EMAIL PROTECTED]>

Applied to net-2.6.19, thanks a lot.
-
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH 9/44] [XFRM]: Restrict authentication algorithm only when inbound transformation protocol is IPsec.

2006-08-23 Thread David Miller
From: YOSHIFUJI Hideaki <[EMAIL PROTECTED]>
Date: Thu, 24 Aug 2006 00:02:10 +0900

> For Mobile IPv6 usage, routing header or destination options header is used 
> and
> it doesn't require this comparison. It is checked only for IPsec template.
> Based on MIPL2 kernel patch.
> 
> Signed-off-by: Masahide NAKAMURA <[EMAIL PROTECTED]>
> Signed-off-by: YOSHIFUJI Hideaki <[EMAIL PROTECTED]>

Looks good, applied to net-2.6.19

Thanks a lot.
-
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH 8/44] [XFRM] STATE: Introduce route optimization mode.

2006-08-23 Thread David Miller
From: YOSHIFUJI Hideaki <[EMAIL PROTECTED]>
Date: Thu, 24 Aug 2006 00:02:09 +0900

> Route optimization is used with routing header and destination options
> header for Mobile IPv6.
> At outbound it makes header space like IPsec transport. At inbound
> it does nothing because exhdrs.c functions have responsibility to
> update skbuff information for these headers.
> 
> Signed-off-by: Masahide NAKAMURA <[EMAIL PROTECTED]>
> Signed-off-by: YOSHIFUJI Hideaki <[EMAIL PROTECTED]>

Applied to net-2.6.19, thanks a lot.
-
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH 7/44] [XFRM] STATE: Add a hook to find offset to be inserted header in outbound.

2006-08-23 Thread David Miller
From: YOSHIFUJI Hideaki <[EMAIL PROTECTED]>
Date: Thu, 24 Aug 2006 00:02:08 +0900

> On current kernel, ip6_find_1stfragopt() is used by IPv6 IPsec to find offset 
> to
> be inserted header in outbound for transport mode. (BTW, no usage may be 
> needed for
> IPv4 case.)
> Mobile IPv6 requires another logic for routing header and destination options
> header respectively. This patch is common platform for the offset and adopts 
> it to
> IPsec.
> Based on MIPL2 kernel patch.
> 
> Signed-off-by: Masahide NAKAMURA <[EMAIL PROTECTED]>
> Signed-off-by: YOSHIFUJI Hideaki <[EMAIL PROTECTED]>

Patch applied to net-2.6.19, thanks a lot.
-
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH 6/44] [XFRM] STATE: Search by address using source address list.

2006-08-23 Thread David Miller
From: YOSHIFUJI Hideaki <[EMAIL PROTECTED]>
Date: Thu, 24 Aug 2006 00:02:07 +0900

> From: Masahide NAKAMURA <[EMAIL PROTECTED]>
> 
> This is a support to search transformation states by its addresses
> by using source address list for Mobile IPv6 usage.
> To use it from user-space, it is also added a message type for
> source address as a xfrm state option.
> Based on MIPL2 kernel patch.
> 
> Signed-off-by: Masahide NAKAMURA <[EMAIL PROTECTED]>
> Signed-off-by: YOSHIFUJI Hideaki <[EMAIL PROTECTED]>

Applied to net-2.6.19, thanks a lot.
-
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH 5/44] [XFRM] STATE: Add source address list.

2006-08-23 Thread David Miller
From: YOSHIFUJI Hideaki <[EMAIL PROTECTED]>
Date: Thu, 24 Aug 2006 00:02:06 +0900

> From: Masahide NAKAMURA <[EMAIL PROTECTED]>
> 
> Support source address based searching.
> Mobile IPv6 will use it.
> Based on MIPL2 kernel patch.
> 
> Signed-off-by: Masahide NAKAMURA <[EMAIL PROTECTED]>
> Signed-off-by: YOSHIFUJI Hideaki <[EMAIL PROTECTED]>

Patch applied to net-2.6.19, thanks a lot.

I see this is where I will need to perform conflict resolution
with my XFRM layer hashing patches :-)
-
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH 4/44] [XFRM]: Expand XFRM_MAX_DEPTH for route optimization.

2006-08-23 Thread David Miller
From: YOSHIFUJI Hideaki <[EMAIL PROTECTED]>
Date: Thu, 24 Aug 2006 00:02:05 +0900

> From: Masahide NAKAMURA <[EMAIL PROTECTED]>
> 
> XFRM_MAX_DEPTH is a limit of transformation states to be applied to the same
> flow. Two more extension headers are used by Mobile IPv6 transformation.
> Based on MIPL2 kernel patch.
> 
> Signed-off-by: Masahide NAKAMURA <[EMAIL PROTECTED]>
> Signed-off-by: YOSHIFUJI Hideaki <[EMAIL PROTECTED]>

Applied to net-2.6.19

Thanks.
-
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH 3/44] [XFRM] STATE: Allow non IPsec protocol.

2006-08-23 Thread David Miller
From: YOSHIFUJI Hideaki <[EMAIL PROTECTED]>
Date: Thu, 24 Aug 2006 00:02:04 +0900

> From: Masahide NAKAMURA <[EMAIL PROTECTED]>
> 
> It will be added two more transformation protocols (routing header
> and destination options header) for Mobile IPv6.
> xfrm_id_proto_match() can be handle zero as all, IPSEC_PROTO_ANY as
> all IPsec and otherwise as exact one.
> Based on MIPL2 kernel patch.
> 
> Signed-off-by: Masahide NAKAMURA <[EMAIL PROTECTED]>
> Signed-off-by: YOSHIFUJI Hideaki <[EMAIL PROTECTED]>

Patch applied to net-2.6.19, thanks a lot.
-
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH 2/44] [XFRM]: Introduce a helper to compare id protocol.

2006-08-23 Thread David Miller
From: YOSHIFUJI Hideaki <[EMAIL PROTECTED]>
Date: Thu, 24 Aug 2006 00:02:03 +0900

> From: Masahide NAKAMURA <[EMAIL PROTECTED]>
> 
> Put the helper to header for future use.
> Based on MIPL2 kernel patch.
> 
> Signed-off-by: Masahide NAKAMURA <[EMAIL PROTECTED]>
> Signed-off-by: YOSHIFUJI Hideaki <[EMAIL PROTECTED]>

Applied to net-2.6.19

Thank you.
-
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH 1/44] [XFRM]: Add XFRM_MODE_xxx for future use.

2006-08-23 Thread David Miller
From: YOSHIFUJI Hideaki <[EMAIL PROTECTED]>
Date: Thu, 24 Aug 2006 00:02:02 +0900

> Transformation mode is used as either IPsec transport or tunnel.
> It is required to add two more items, route optimization and inbound trigger
> for Mobile IPv6.
> Based on MIPL2 kernel patch.
> 
> This patch was also written by: Ville Nuorvala <[EMAIL PROTECTED]>
> 
> Signed-off-by: Masahide NAKAMURA <[EMAIL PROTECTED]>
> Signed-off-by: YOSHIFUJI Hideaki <[EMAIL PROTECTED]>

This looks perfectly fine.

Patch applied to net-2.6.19.

-
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [RFC] [GIT PATCH] IPv6 Routing / Ndisc Fixes

2006-08-23 Thread David Miller
From: YOSHIFUJI Hideaki <[EMAIL PROTECTED]>
Date: Thu, 10 Aug 2006 17:46:35 +0900 (JST)

> Hello.
> 
> In article <[EMAIL PROTECTED]> (at Thu, 10 Aug 2006 00:37:14 +0300), Ville 
> Nuorvala <[EMAIL PROTECTED]> says:
> 
> > >> commit e0ad64d5b44179ea1296d737dec23279c72c9636
> > >> Author: YOSHIFUJI Hideaki <[EMAIL PROTECTED]>
> > >> Date:   Wed Aug 9 17:08:33 2006 +0900
> > >>
> > >> [IPV6] NDISC: Allow redirects from other interfaces if it is not 
> > >> strict.
> > >> 
> > >> Signed-off-by: YOSHIFUJI Hideaki <[EMAIL PROTECTED]>
> > >>
> > >> diff --git a/net/ipv6/route.c b/net/ipv6/route.c
> > >> index 4650787..1698fec 100644
> > >> --- a/net/ipv6/route.c
> > >> +++ b/net/ipv6/route.c
> > >> @@ -1322,7 +1322,7 @@ restart:
> > >>  continue;
> > >>  if (!(rt->rt6i_flags & RTF_GATEWAY))
> > >>  continue;
> > >> -if (fl->oif != rt->rt6i_dev->ifindex)
> > >> +if ((flags & RT6_F_STRICT) && fl->oif != 
> > >> rt->rt6i_dev->ifindex)
> > >>  continue;
> > >>  if (!ipv6_addr_equal(&rdfl->gateway, &rt->rt6i_gateway))
> > >>  continue;
> > >>
> > > 
> > > Is this absolutely safe? Doesn't this enable a malicious node on another
> > > link to make a bogus redirect if it uses same link-local source address
> > > as the real router on the other link. Keep in mind that the RT6_F_STRICT
> > > flag is set based on the destination of the original redirected packet
> > > and doesn't in any way depend on the router or source address.
> :
> 
> Ah, you're right.  I'll drop this.

Ok, I integrated all of these changes, dropping this RT6_F_STRICT
changeset, and integrating all of Ville's sign offs and ACKs.

It is all in the net-2.6.19 tree, thanks a lot.

I will start to review the MIPV6 patches next.

-
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH 0/44] Mobile IPv6 Platform, Take 2 (for net-2.6.19)

2006-08-23 Thread David Miller
From: YOSHIFUJI Hideaki <[EMAIL PROTECTED]>
Date: Thu, 24 Aug 2006 00:02:01 +0900

> we have another discussion about improvement of XFRM state hash.
> Our patches (about source address list part) will conflict with that
> work, but we did not take that into account so far because it was not
> in the tree.

Yes, do not worry about this.  I will add my changes later
after we integrate the mobile-ipv6 work, and therefore I will
take care of the conflicts.
-
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH 2.6.17 0/9] NetXen: 1G/10G Ethernet Driver

2006-08-23 Thread Don Fry
It looks like you have not run the source throught Lindent as previously
requested.  Before you submit the code again, please use the Lindent
script.

I can get the code to ping between two cards.  Will be doing more
testing tomorrow.

-- 
Don Fry
[EMAIL PROTECTED]
-
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: ProxyARP and IPSec

2006-08-23 Thread Alexey Kuznetsov
Hello!

> What he's trying to accomplish doesn't sound all that weird,

Absolutely sane.


> does anyone have any other ideas?

The question is where is this host really?

If it is far far away and connected only via IPsec tunnel with destionation
of tunnel different of host address

ip ro add THEHOST dev dummy0

should be enough. It asserts that THEHOST is not on eth0.
IPsec policy will figure out correct route, unless something is broken.

If tunnel endpoint is THEHOST, then it is necessary to make a prescription
how to reach it bypassing IPsec. This can be made with a rule telling
that THEHOST is reachable from router and only from router:

ip ru add from OUR_TUNNEL_ENDPOINT to THEHOST table XXX
ip ro add THEHOST via THAT_ROUTE_WHICH_IS_SUPPOSED_TO_KNOW table XXX

Alexey
-
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH] IP1000A: IC Plus update 2006-08-22

2006-08-23 Thread Francois Romieu
Francois Romieu <[EMAIL PROTECTED]> :
[...]
> Typo. It should be:
> http://www.fr.zoreil.com/linux/kernel/2.6.x/2.6.18-rc4/ip1000

Added 0038-ip1000-CodingStyle.txt.

More local variables, more unsigned int, less MixedCase, ipg_nic_rx()
fits in your favorite 80 cols console.

-- 
Ueimor
-
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: ProxyARP and IPSec

2006-08-23 Thread David Miller
From: Thomas Graf <[EMAIL PROTECTED]>
Date: Wed, 23 Aug 2006 21:14:25 +0200

> * H. Peter Anvin <[EMAIL PROTECTED]> 2006-08-22 17:31
> > Specifically, Linux will not ProxyARP for an address unless it has a 
> > route for it, *and* that route either has a DNAT marking or points to a 
> > different interface than the input interface:
> 
> I can think of a very ugly way: Use netfilter to match on the
> arp packet prerouting, set nfmark to some value, create a routing
> rule matching the fwmark again, have it look up a separate table
> with a dummy route pointing to a dummy device. Make sure to have
> a proxy neighbour entry as using the device proxy_arp sysctl would
> fail again.

This shows we have a usability problem if that's the only way
to do this :-)

What he's trying to accomplish doesn't sound all that weird,
does anyone have any other ideas?
-
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH] d80211: add ieee80211_stop_queues()

2006-08-23 Thread Michael Buesch
On Wednesday 23 August 2006 23:12, Simon Barber wrote:
> We already do have intelligent qdiscs - via TC. Anyone using htb for
> rate pacing, will achieve better control (less jitter) if the DMA queue
> latency is kept down.
> 
> One very important issue for 802.11 is the software rate control. At a
> certain point in time the rate control algorithm may determine it's time
> to start transmitting frames at a much lower rate - now all the frames
> already in the DMA queue will be transmitted at the old higher rate -
> and hence will suffer a lower probability of being received correctly.
> If the number of frames in the DMA queue can be kept down then the rate
> change happens faster. Obviously the limiting factor is keeping the DMA
> queue full enough that the hardware is not starved in the worst case of
> softirq latency. This is a time based limit.

Yes, that makes sense.
What about the following:

We don't remove the ieee80211_stop/wake_queue() mechanism, as it's
simply used to protect the hard bounds of the ring.

I think determining the ring latency might be possible without changing
the API or even changing the low level driver.

We have the ieee80211_tx_status() callback. We must simply
assume any packet that's gone through hw->tx() but not yet
got back through ieee80211_tx_status() is on the device queue.
And I think that's a valid assumption.

So accounting can be done before calling hw->tx()
and in ieee80211_tx_status().

At ieee80211_tx_status() time we have all needed information.
The frame length (skb), the transmission rate from the tx_control
array in the status report. We have that information in hw->tx(),
too, of course. So we can calculate the time (latency) the
current ring state has in O(1) time.

-- 
Greetings Michael.
-
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH 2/6]: powerpc/cell spidernet low watermark patch.

2006-08-23 Thread David Miller
From: [EMAIL PROTECTED] (Linas Vepstas)
Date: Wed, 23 Aug 2006 16:36:42 -0500

> I could create a searate patch to change struct descr {} to split 
> the u32 into several u8's; there's a dozen spots that get touched.
> 
> Alternatel, I could do a cheesy cast to char[4] and access that way.
> Opinions?

The most portable scheme would be a "u32/u8[4]" union with
appropriate endianness checks when determining which byte
to access in the u8[] view.
-
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH 5/6]: powerpc/cell spidernet bottom half

2006-08-23 Thread Linas Vepstas
On Sat, Aug 19, 2006 at 01:03:04AM +0200, Arnd Bergmann wrote:
> using the NAPI poll function

Still fiddling with this. Getting side-tracked after noticing
that the RX side generates a *huge* numbe of interrupts, despite
code in the driver which superficially appears to be RX NAPI.  
One step forward, two steps back, isn't there a dance like that?

--linas
-
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH wireless-dev 4/6] d80211: Send Layer 2 Update frames in kernel

2006-08-23 Thread Stefan Rompf
Am Mittwoch, 23. August 2006 19:22 schrieb Jiri Benc:

> > Send Layer 2 Update frame from the 802.11 code in kernel to the netdev
> > that the STA is bound to. If the STA is bound to another VLAN netdev,
> > send another update frame. This fixes an issue in which a local bridge
> > table was not updated when hostapd sent this frame.
>
> I hope someone is going to describe why is this necessary and why it
> cannot be done in a less hackish way. Otherwise, I'd probably tend to
> ask for reverting this patch.

Imagine an ESS consisting of several APs in a switched wired network. Client 
roams from one AP to another. In order to update the FDB of the switches, a 
packet with the client MAC address needs to be originated from the ethernet 
interface of the AP the client has associated to, even if the client does not 
create traffic at the moment.

It's part of 802.11F.

Stefan
-
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH 2/6]: powerpc/cell spidernet low watermark patch.

2006-08-23 Thread Linas Vepstas
On Sun, Aug 20, 2006 at 12:03:14PM +0200, Arnd Bergmann wrote:
> On Sunday 20 August 2006 08:31, Benjamin Herrenschmidt wrote:
> > > card->low_watermark->next->dmac_cmd_status |= SPIDER_NET_DESCR_TXDESFLG;
> > > mb();
> > > card->low_watermark->dmac_cmd_status &= ~SPIDER_NET_DESCR_TXDESFLG;
> > > card->low_watermark = card->low_watermark->next;
> > > 
> > > when we queue another frame for TX.
> > 
> > I would have expected those to be racy vs. the hardware... what if the
> > hardware is updating dmac_cmd_status just as your are trying to and the
> > bit out of it ?
> 
> Right, that doesn't work. It is the only bit we use in that byte though,
> so maybe it can be done with a single byte write.

Thanks, you're right, I missed that.  I'll change this to byte access 
shortly.  Any recommendations for style/api for byte access? 

I could create a searate patch to change struct descr {} to split 
the u32 into several u8's; there's a dozen spots that get touched.

Alternatel, I could do a cheesy cast to char[4] and access that way.
Opinions?

--linas
-
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[PATCH] ethtool: skge register dump

2006-08-23 Thread Stephen Hemminger
Pretty printing of skge registers. This is a redo of earlier
patch that must have got lost. It earlier patch was before the
git conversion.

Signed-off-by: Stephen Hemminger <[EMAIL PROTECTED]>
---
 Makefile.am|2 -
 ethtool-util.h |3 +
 ethtool.c  |1 
 skge.c |  189 
 4 files changed, 194 insertions(+), 1 deletions(-)

diff --git a/Makefile.am b/Makefile.am
index 6eb2c08..cf4ebc5 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -7,7 +7,7 @@ sbin_PROGRAMS = ethtool
 ethtool_SOURCES = ethtool.c ethtool-copy.h ethtool-util.h  \
  amd8111e.c de2104x.c e100.c e1000.c   \
  fec_8xx.c ibm_emac.c natsemi.c pcnet32.c  \
- realtek.c tg3.c
+ realtek.c tg3.c skge.c
 
 dist-hook:
cp $(top_srcdir)/ethtool.spec $(distdir)
diff --git a/ethtool-util.h b/ethtool-util.h
index 7d6638e..52c43bf 100644
--- a/ethtool-util.h
+++ b/ethtool-util.h
@@ -45,4 +45,7 @@ int ibm_emac_dump_regs(struct ethtool_dr
 /* Broadcom Tigon3 Ethernet controller */
 int tg3_dump_regs(struct ethtool_drvinfo *info, struct ethtool_regs *regs);
 
+/* SysKonnect Gigabit (Genesis and Yukon) */
+int skge_dump_regs(struct ethtool_drvinfo *info, struct ethtool_regs *regs);
+
 #endif
diff --git a/ethtool.c b/ethtool.c
index 7d408be..464cac6 100644
--- a/ethtool.c
+++ b/ethtool.c
@@ -940,6 +940,7 @@ static struct {
{ "fec_8xx", fec_8xx_dump_regs },
{ "ibm_emac", ibm_emac_dump_regs },
{ "tg3", tg3_dump_regs },
+   { "skge", skge_dump_regs },
 };
 
 static int dump_regs(struct ethtool_drvinfo *info, struct ethtool_regs *regs)
diff --git a/skge.c b/skge.c
new file mode 100644
index 000..e19553e
--- /dev/null
+++ b/skge.c
@@ -0,0 +1,189 @@
+/*
+ * Copyright (C) 2004
+ *  Stephen Hemminger <[EMAIL PROTECTED]>
+ */
+
+#include 
+
+#include "ethtool-util.h"
+
+static void dump_addr(int n, const u8 *a)
+{
+   int i;
+
+   printf("Addr %d", n);
+   for (i = 0; i < 6; i++)
+   printf("%02X%c", a[i], i == 5 ? '\n' : ' ');
+}
+
+static void dump_timer(const char *name, const void *p)
+{
+   const u8 *a = p;
+   const u32 *r = p;
+   
+   printf("%s\n", name);
+   printf("\tInit 0x%08X Value 0x%08X\n", r[0], r[1]);
+   printf("\tTest 0x%02X   Control 0x%02X\n", a[8], a[9]);
+}
+
+static void dump_queue(const char *name, const void *a, int rx)
+{
+   struct desc {
+   u_int32_t   ctl;
+   u_int32_t   next;
+   u_int32_t   data_lo;
+   u_int32_t   data_hi;
+   u_int32_t   status;
+   u_int32_t   timestamp;
+   u_int16_t   csum2;
+   u_int16_t   csum1;
+   u_int16_t   csum2_start;
+   u_int16_t   csum1_start;
+   u_int32_t   addr_lo;
+   u_int32_t   addr_hi;
+   u_int32_t   count_lo;
+   u_int32_t   count_hi;
+   u_int32_t   byte_count;
+   u_int32_t   csr;
+   u_int32_t   flag;
+   };
+   const struct desc *d = a;
+
+   printf("\n%s\n", name);
+   printf("---\n");
+   printf("Descriptor Address   0x%08X%08X\n", 
+  d->addr_hi, d->addr_lo);
+   printf("Address Counter  0x%08X%08X\n", 
+  d->count_hi, d->count_lo);
+   printf("Current Byte Counter %d\n", d->byte_count);
+   printf("BMU Control/Status   0x%08X\n", d->csr);
+   printf("Flag & FIFO Address  0x%08X\n", d->flag);
+   printf("\n");
+   printf("Control  0x%08X\n", d->ctl);
+   printf("Next 0x%08X\n", d->next);
+   printf("Data 0x%08X%08X\n", 
+  d->data_hi, d->data_lo);
+   printf("Status   0x%08X\n", d->status);
+   printf("Timestamp0x%08X\n", d->timestamp);
+   if (rx) {
+   printf("Csum1  Offset %4d Positon   %d\n", 
+  d->csum1, d->csum1_start);
+   printf("Csum2  Offset %4d Positon   %d\n", 
+  d->csum2, d->csum2_start);
+   } else 
+   printf("Csum Start 0x%04X Pos %4d Write %d\n", 
+  d->csum1, d->csum2_start, d->csum1_start);
+
+}
+
+static void dump_ram(const char *name, const void *p)
+{
+   const u32 *r = p;
+
+   printf("\n%s\n", name);
+   printf("---\n");
+   printf("Start Address0x%08X\n", r[0]);
+   printf("End Address  0x%08X\n", r[1]);
+   printf("Write Pointer

RE: [PATCH] d80211: add ieee80211_stop_queues()

2006-08-23 Thread Simon Barber
We already do have intelligent qdiscs - via TC. Anyone using htb for
rate pacing, will achieve better control (less jitter) if the DMA queue
latency is kept down.

One very important issue for 802.11 is the software rate control. At a
certain point in time the rate control algorithm may determine it's time
to start transmitting frames at a much lower rate - now all the frames
already in the DMA queue will be transmitted at the old higher rate -
and hence will suffer a lower probability of being received correctly.
If the number of frames in the DMA queue can be kept down then the rate
change happens faster. Obviously the limiting factor is keeping the DMA
queue full enough that the hardware is not starved in the worst case of
softirq latency. This is a time based limit.

Simon


-Original Message-
From: Michael Buesch [mailto:[EMAIL PROTECTED] 
Sent: Wednesday, August 23, 2006 1:57 PM
To: Simon Barber
Cc: Jiri Benc; [EMAIL PROTECTED]; netdev@vger.kernel.org
Subject: Re: [PATCH] d80211: add ieee80211_stop_queues()

On Wednesday 23 August 2006 22:32, Simon Barber wrote:
> Right - and what I'm proposing is that we don't just count the number 
> of frames in the ring - but also count the amount of frame time the 
> ring takes too. This way if there are a number of large, slow frames 
> we can stop adding more frames into the ring well before we reach the 
> limit on the number of frames.

Ah, now I understand what you are trying to explain. :) But why do we
actually _want_ to stop a DMA ring, if it's not full (has free
descriptors)? I can't see any benefit on it. Adding frames to the ring
is done on the fly without stopping or otherwise interferring with any
running transmissions queued earlier.
I would say we don't care about the time it takes for the ring to go
into idle on the d80211 level. I think the only thing we care at d80211
level is: Can we queue another frame?
We have that logic. If a queue is not stopped, we can queue another
frame.

Or do you want to make the qdisc intelligent? Say, it drops a few
beacons, if there are already packets queued for the next 300ms, for
example. Do you want to optimize latency of payload data by dropping
low-priority packets while the queue is heavily loaded?
I can't see another usage for time based DMA ring accounting in d80211,
yet.

--
Greetings Michael.
-
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH] d80211: add ieee80211_stop_queues()

2006-08-23 Thread Michael Buesch
On Wednesday 23 August 2006 22:32, Simon Barber wrote:
> Right - and what I'm proposing is that we don't just count the number of
> frames in the ring - but also count the amount of frame time the ring
> takes too. This way if there are a number of large, slow frames we can
> stop adding more frames into the ring well before we reach the limit on
> the number of frames. 

Ah, now I understand what you are trying to explain. :)
But why do we actually _want_ to stop a DMA ring, if it's
not full (has free descriptors)? I can't see any benefit on
it. Adding frames to the ring is done on the fly without
stopping or otherwise interferring with any running transmissions
queued earlier.
I would say we don't care about the time it takes for the
ring to go into idle on the d80211 level. I think the only thing
we care at d80211 level is: Can we queue another frame?
We have that logic. If a queue is not stopped, we can queue another
frame.

Or do you want to make the qdisc intelligent? Say, it drops
a few beacons, if there are already packets queued for the next
300ms, for example. Do you want to optimize latency of payload
data by dropping low-priority packets while the queue is
heavily loaded?
I can't see another usage for time based DMA ring accounting
in d80211, yet.

-- 
Greetings Michael.
-
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH 27/44] [IPV6] IPSEC: Support sending with Mobile IPv6 extension headers.

2006-08-23 Thread YOSHIFUJI Hideaki / 吉藤英明
In article <[EMAIL PROTECTED]> (at Thu, 24 Aug 2006 00:02:28 +0900), YOSHIFUJI 
Hideaki <[EMAIL PROTECTED]> says:

> +#ifdef CONFIG_IPV6_MIP6
> + if (ipv6_clear_mutable_options(skb->nh.ipv6h, hdr_len, XFRM_POLICY_IN))
> + goto out;
> +#else
>   if (ipv6_clear_mutable_options(skb->nh.ipv6h, hdr_len))
>   goto free_out;
> +#endif

Oops, I missed this.

This will result in memory leakage...
We will fix it with some clean-ups in the next spin.

--yoshfuji
-
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


RE: [PATCH] d80211: add ieee80211_stop_queues()

2006-08-23 Thread Simon Barber
Right - and what I'm proposing is that we don't just count the number of
frames in the ring - but also count the amount of frame time the ring
takes too. This way if there are a number of large, slow frames we can
stop adding more frames into the ring well before we reach the limit on
the number of frames. 

Simon

-Original Message-
From: Michael Buesch [mailto:[EMAIL PROTECTED] 
Sent: Wednesday, August 23, 2006 1:20 PM
To: Simon Barber
Cc: Jiri Benc; [EMAIL PROTECTED]; netdev@vger.kernel.org
Subject: Re: [PATCH] d80211: add ieee80211_stop_queues()

On Wednesday 23 August 2006 22:10, Simon Barber wrote:
> The DMA ring forms a queue of frames. Frames live in that queue for 
> some time before they are transmitted. This is a source of latency 
> between the software process that puts  the frames in the queue and 
> the point in time when they are actually transmitted.

Yes, sure. But I don't see how shortening that queue reduces the time.
Frames are always processed by the device as fast as possible to a given
"end-pointer". That end-pointer is updated on the fly as packets come
in. So if enough packets come in the device keeps circling the ring. No
matter how large it is.
The issue that we must prevent is a ring overflow by providing a
sufficiently _large_ (not small) ring. The larger the ring the better.
Theoretically an infinite ring size would be perfect, but we don't want
that for obvious memory issues. ;) So we try to keep ring size down to a
sane amount, where it's damn unlikely to ever overflow, to reduce memory
usage (and only memory usage).

--
Greetings Michael.
-
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH 22/44] [IPV6]: Find option offset by type.

2006-08-23 Thread YOSHIFUJI Hideaki / 吉藤英明
In article <[EMAIL PROTECTED]> (at Wed, 23 Aug 2006 13:22:06 -0400), Brian 
Haley <[EMAIL PROTECTED]> says:

> > +   /* not_found */
> > +   return -1;
> > + bad:
> > +   return -1;
> > +}
> 
> You could change this to:
> 
>   /* not_found */
> bad:
>   return -1;
> }

Right.  I think our compiler is smart enough to eliminate that though.
(Similar clean-up will be done for ipv6_rearrange_destopt() as well.)

--yoshfuji
-
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


  1   2   3   >