Re: [PATCH] ethtool: skge register dump
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.
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.
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.
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
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
[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
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.
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.
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.
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.
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.
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.
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.
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
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
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
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
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
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
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
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.
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.
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.
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.
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.
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?
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
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.
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.
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.
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.
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.
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.
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
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
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
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
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
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
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
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
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
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
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
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
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.
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
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
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.
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.
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.
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.
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
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.
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.
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.
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.
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.
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.
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.
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
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.
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.
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
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.
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.
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.
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
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
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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
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)
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
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
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
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
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()
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.
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
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
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.
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
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()
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()
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.
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()
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.
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