* [PATCH 2.6.25 9/9] SCTP: Follow Add-IP security consideratiosn wrt INIT/INIT-ACK
From: Vlad Yasevich @ 2007-12-17 21:32 UTC (permalink / raw)
To: netdev; +Cc: lksctp-developers, Vlad Yasevich
In-Reply-To: <1197927169-5106-1-git-send-email-vladislav.yasevich@hp.com>
The Security Considerations section of RFC 5061 has the following
text:
If an SCTP endpoint that supports this extension receives an INIT
that indicates that the peer supports the ASCONF extension but does
NOT support the [RFC4895] extension, the receiver of such an INIT
MUST send an ABORT in response. Note that an implementation is
allowed to silently discard such an INIT as an option as well, but
under NO circumstance is an implementation allowed to proceed with
the association setup by sending an INIT-ACK in response.
An implementation that receives an INIT-ACK that indicates that the
peer does not support the [RFC4895] extension MUST NOT send the
COOKIE-ECHO to establish the association. Instead, the
implementation MUST discard the INIT-ACK and report to the upper-
layer user that an association cannot be established destroying the
Transmission Control Block (TCB).
Follow the recomendations.
Signed-off-by: Vlad Yasevich <vladislav.yasevich@hp.com>
---
net/sctp/sm_make_chunk.c | 47 ++++++++++++++++++++++++++++++++++++++++++---
net/sctp/sm_statefuns.c | 7 ++---
2 files changed, 46 insertions(+), 8 deletions(-)
diff --git a/net/sctp/sm_make_chunk.c b/net/sctp/sm_make_chunk.c
index 68a994c..ae9fc9e 100644
--- a/net/sctp/sm_make_chunk.c
+++ b/net/sctp/sm_make_chunk.c
@@ -1830,6 +1830,39 @@ static int sctp_process_hn_param(const struct sctp_association *asoc,
return 0;
}
+static int sctp_verify_ext_param(union sctp_params param)
+{
+ __u16 num_ext = ntohs(param.p->length) - sizeof(sctp_paramhdr_t);
+ int have_auth = 0;
+ int have_asconf = 0;
+ int i;
+
+ for (i = 0; i < num_ext; i++) {
+ switch (param.ext->chunks[i]) {
+ case SCTP_CID_AUTH:
+ have_auth = 1;
+ break;
+ case SCTP_CID_ASCONF:
+ case SCTP_CID_ASCONF_ACK:
+ have_asconf = 1;
+ break;
+ }
+ }
+
+ /* ADD-IP Security: The draft requires us to ABORT or ignore the
+ * INIT/INIT-ACK if ADD-IP is listed, but AUTH is not. Do this
+ * only if ADD-IP is turned on and we are not backward-compatible
+ * mode.
+ */
+ if (sctp_addip_noauth)
+ return 1;
+
+ if (sctp_addip_enable && !have_auth && have_asconf)
+ return 0;
+
+ return 1;
+}
+
static void sctp_process_ext_param(struct sctp_association *asoc,
union sctp_params param)
{
@@ -1960,7 +1993,11 @@ static sctp_ierror_t sctp_verify_param(const struct sctp_association *asoc,
case SCTP_PARAM_UNRECOGNIZED_PARAMETERS:
case SCTP_PARAM_ECN_CAPABLE:
case SCTP_PARAM_ADAPTATION_LAYER_IND:
+ break;
+
case SCTP_PARAM_SUPPORTED_EXT:
+ if (!sctp_verify_ext_param(param))
+ return SCTP_IERROR_ABORT;
break;
case SCTP_PARAM_SET_PRIMARY:
@@ -2133,10 +2170,11 @@ int sctp_process_init(struct sctp_association *asoc, sctp_cid_t cid,
!asoc->peer.peer_hmacs))
asoc->peer.auth_capable = 0;
-
- /* If the peer claims support for ADD-IP without support
- * for AUTH, disable support for ADD-IP.
- * Do this only if backward compatible mode is turned off.
+ /* In a non-backward compatible mode, if the peer claims
+ * support for ADD-IP but not AUTH, the ADD-IP spec states
+ * that we MUST ABORT the association. Section 6. The section
+ * also give us an option to silently ignore the packet, which
+ * is what we'll do here.
*/
if (!sctp_addip_noauth &&
(asoc->peer.asconf_capable && !asoc->peer.auth_capable)) {
@@ -2144,6 +2182,7 @@ int sctp_process_init(struct sctp_association *asoc, sctp_cid_t cid,
SCTP_PARAM_DEL_IP |
SCTP_PARAM_SET_PRIMARY);
asoc->peer.asconf_capable = 0;
+ goto clean_up;
}
/* Walk list of transports, removing transports in the UNKNOWN state. */
diff --git a/net/sctp/sm_statefuns.c b/net/sctp/sm_statefuns.c
index eed47c6..aadbed1 100644
--- a/net/sctp/sm_statefuns.c
+++ b/net/sctp/sm_statefuns.c
@@ -507,7 +507,9 @@ sctp_disposition_t sctp_sf_do_5_1C_ack(const struct sctp_endpoint *ep,
&err_chunk)) {
/* This chunk contains fatal error. It is to be discarded.
- * Send an ABORT, with causes if there is any.
+ * Send an ABORT, with causes. If there are no causes,
+ * then there wasn't enough memory. Just terminate
+ * the association.
*/
if (err_chunk) {
packet = sctp_abort_pkt_new(ep, asoc, arg,
@@ -526,9 +528,6 @@ sctp_disposition_t sctp_sf_do_5_1C_ack(const struct sctp_endpoint *ep,
} else {
error = SCTP_ERROR_NO_RESOURCE;
}
- } else {
- sctp_sf_tabort_8_4_8(ep, asoc, type, arg, commands);
- error = SCTP_ERROR_INV_PARAM;
}
/* SCTP-AUTH, Section 6.3:
--
1.5.3.5
^ permalink raw reply related
* Re: [BUG] lack of /proc/net/ax25 with 2.6.24-rc5
From: Rafael J. Wysocki @ 2007-12-17 21:56 UTC (permalink / raw)
To: Bernard Pidoux; +Cc: Linux Netdev List, linux-kernel, Eric W. Biederman
In-Reply-To: <476595EC.5050103@ccr.jussieu.fr>
On Sunday, 16 of December 2007, Bernard Pidoux wrote:
> With 2.6.24-rc5 there is no /proc/net/ax25
FYI, I've created a Bugzilla entry for this issue at:
http://bugzilla.kernel.org/show_bug.cgi?id=9589
Please add your address to the CC list in there.
Thanks,
Rafael
> Here is an extract from dmesg after boot :
>
> =======================
> sysctl table check failed: /net/ax25/ax0/ax25_default_mode .3.9.1.2
> Unknown sysctl binary path
> Pid: 2936, comm: kissattach Not tainted 2.6.24-rc5 #1
> [<c012ca6a>] set_fail+0x3b/0x43
> [<c012ce7a>] sysctl_check_table+0x408/0x456
> [<c012ce8e>] sysctl_check_table+0x41c/0x456
> [<c012ce8e>] sysctl_check_table+0x41c/0x456
> [<c02ac64a>] _spin_unlock+0x14/0x1c
> [<c012ce8e>] sysctl_check_table+0x41c/0x456
> [<c011e681>] sysctl_set_parent+0x19/0x2a
> [<c011f55c>] register_sysctl_table+0x45/0x85
> [<d8be9d26>] ax25_register_sysctl+0x112/0x11c [ax25]
> [<d8be6c76>] ax25_device_event+0x2e/0x90 [ax25]
> [<c012c560>] notifier_call_chain+0x2a/0x47
> [<c012c59f>] raw_notifier_call_chain+0x17/0x1a
> [<c0259290>] dev_open+0x6f/0x75
> [<c0257ee7>] dev_change_flags+0x9c/0x148
> [<c0256ab3>] __dev_get_by_name+0x68/0x73
> [<c0292307>] devinet_ioctl+0x22e/0x53b
> [<c0259074>] dev_ioctl+0x472/0x5ba
> [<c024d4ba>] sock_ioctl+0x1aa/0x1cf
> [<c024d310>] sock_ioctl+0x0/0x1cf
> [<c016bc19>] do_ioctl+0x19/0x4c
> [<c016be40>] vfs_ioctl+0x1f4/0x20b
> [<c0103d01>] sysenter_past_esp+0x9a/0xa9
> [<c016be9c>] sys_ioctl+0x45/0x5d
> [<c0103cc6>] sysenter_past_esp+0x5f/0xa9
> =======================
> sysctl table check failed: /net/ax25/ax0/backoff_type .3.9.1.3 Unknown
> sysctl binary path
> (...) truncated
> =======================
> sysctl table check failed: /net/ax25/ax0/connect_mode .3.9.1.4 Unknown
> sysctl binary path
> (...)
> =======================
> sysctl table check failed: /net/ax25/ax0/standard_window_size .3.9.1.5
> Unknown sysctl binary path
> =======================
> (...)
>
> and so on ...
>
>
>
> Bernard Pidoux
> f6bvp@amsat.org
> --
> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
> Please read the FAQ at http://www.tux.org/lkml/
>
>
--
"Premature optimization is the root of all evil." - Donald Knuth
^ permalink raw reply
* [PATCH drivers/net/skfp/h/fplustm.h] parentheses around RX_FIFO_SPACE definition
From: Roel Kluin @ 2007-12-17 21:55 UTC (permalink / raw)
To: netdev
drivers/net/skfp/h/fplustm.h:129:
#define RX_FIFO_SPACE 0x4000 - RX_FIFO_OFF
drivers/net/skfp/fplustm.c:1404:
smc->hw.fp.fifo.rx1_fifo_size = RX_FIFO_SPACE *
SMT_R1_RXD_COUNT/(SMT_R1_RXD_COUNT+SMT_R2_RXD_COUNT) ;
smc->hw.fp.fifo.rx2_fifo_size = RX_FIFO_SPACE *
SMT_R2_RXD_COUNT/(SMT_R1_RXD_COUNT+SMT_R2_RXD_COUNT) ;
Add parentheses to definition to prevent operator precedence errors
Signed-off-by: Roel Kluin <12o3l@tiscali.nl>
---
diff --git a/drivers/net/skfp/h/fplustm.h b/drivers/net/skfp/h/fplustm.h
index 98bbf65..588579c 100644
--- a/drivers/net/skfp/h/fplustm.h
+++ b/drivers/net/skfp/h/fplustm.h
@@ -126,7 +126,7 @@ struct s_smt_rx_queue {
#define SYNC_TRAFFIC_ON 0x2
/* big FIFO memory */
-#define RX_FIFO_SPACE 0x4000 - RX_FIFO_OFF
+#define RX_FIFO_SPACE (0x4000 - RX_FIFO_OFF)
#define TX_FIFO_SPACE 0x4000
#define TX_SMALL_FIFO 0x0900
^ permalink raw reply related
* [PATCH] e1000: Dump the eeprom when a user encounters a bad checksum
From: Auke Kok @ 2007-12-17 21:50 UTC (permalink / raw)
To: jeff; +Cc: netdev, davem, john.ronciak, jesse.brandeburg, randy.dunlap, joe
To help supporting users with a bad eeprom checksum, dump the
eeprom info when such a situation is encountered by a user.
Signed-off-by: Auke Kok <auke-jan.h.kok@intel.com>
---
drivers/net/e1000/e1000_main.c | 85 +++++++++++++++++++++++++++++++++++-----
1 files changed, 74 insertions(+), 11 deletions(-)
diff --git a/drivers/net/e1000/e1000_main.c b/drivers/net/e1000/e1000_main.c
index efd8c2d..aac55be 100644
--- a/drivers/net/e1000/e1000_main.c
+++ b/drivers/net/e1000/e1000_main.c
@@ -817,6 +817,64 @@ e1000_reset(struct e1000_adapter *adapter)
}
/**
+ * Dump the eeprom for users having checksum issues
+ **/
+void e1000_dump_eeprom(struct e1000_adapter *adapter)
+{
+ struct net_device *netdev = adapter->netdev;
+ struct ethtool_eeprom eeprom;
+ const struct ethtool_ops *ops = netdev->ethtool_ops;
+ u8 *data;
+ int i;
+ u16 csum_old, csum_new = 0;
+
+ eeprom.len = ops->get_eeprom_len(netdev);
+ eeprom.offset = 0;
+
+ data = kmalloc(eeprom.len, GFP_KERNEL);
+ if (!data) {
+ printk(KERN_ERR "Unable to allocate memory to dump EEPROM"
+ " data\n");
+ return;
+ }
+
+ ops->get_eeprom(netdev, &eeprom, data);
+
+ csum_old = (data[EEPROM_CHECKSUM_REG * 2]) +
+ (data[EEPROM_CHECKSUM_REG * 2 + 1] << 8);
+ for (i = 0; i < EEPROM_CHECKSUM_REG * 2; i += 2)
+ csum_new += data[i] + (data[i + 1] << 8);
+ csum_new = EEPROM_SUM - csum_new;
+
+ printk(KERN_ERR "/*********************/\n");
+ printk(KERN_ERR "Current EEPROM Checksum : 0x%04x\n", csum_old);
+ printk(KERN_ERR "Calculated : 0x%04x\n", csum_new);
+
+ printk(KERN_ERR "Offset Values\n");
+ printk(KERN_ERR "======== ======\n");
+ print_hex_dump(KERN_ERR, "", DUMP_PREFIX_OFFSET, 16, 1, data, 128, 0);
+
+ printk(KERN_ERR "Include this output when contacting your support "
+ "provider.\n");
+ printk(KERN_ERR "This is not a software error! Something bad "
+ "happened to your hardware or\n");
+ printk(KERN_ERR "EEPROM image. Ignoring this "
+ "problem could result in further problems,\n");
+ printk(KERN_ERR "possibly loss of data, corruption or system hangs!\n");
+ printk(KERN_ERR "The MAC Address will be reset to 00:00:00:00:00:00, "
+ "which is invalid\n");
+ printk(KERN_ERR "and requires you to set the proper MAC "
+ "address manually before continuing\n");
+ printk(KERN_ERR "to enable this network device.\n");
+ printk(KERN_ERR "Please inspect the EEPROM dump and report the issue "
+ "to your hardware vendor\n");
+ printk(KERN_ERR "or Intel Customer Support: linux-nics@intel.com\n");
+ printk(KERN_ERR "/*********************/\n");
+
+ kfree(data);
+}
+
+/**
* e1000_probe - Device Initialization Routine
* @pdev: PCI device information struct
* @ent: entry in e1000_pci_tbl
@@ -967,7 +1025,6 @@ e1000_probe(struct pci_dev *pdev,
adapter->en_mng_pt = e1000_enable_mng_pass_thru(&adapter->hw);
/* initialize eeprom parameters */
-
if (e1000_init_eeprom_params(&adapter->hw)) {
E1000_ERR("EEPROM initialization failed\n");
goto err_eeprom;
@@ -979,23 +1036,29 @@ e1000_probe(struct pci_dev *pdev,
e1000_reset_hw(&adapter->hw);
/* make sure the EEPROM is good */
-
if (e1000_validate_eeprom_checksum(&adapter->hw) < 0) {
DPRINTK(PROBE, ERR, "The EEPROM Checksum Is Not Valid\n");
- goto err_eeprom;
+ e1000_dump_eeprom(adapter);
+ /*
+ * set MAC address to all zeroes to invalidate and temporary
+ * disable this device for the user. This blocks regular
+ * traffic while still permitting ethtool ioctls from reaching
+ * the hardware as well as allowing the user to run the
+ * interface after manually setting a hw addr using
+ * `ip set address`
+ */
+ memset(adapter->hw.mac_addr, 0, netdev->addr_len);
+ } else {
+ /* copy the MAC address out of the EEPROM */
+ if (e1000_read_mac_addr(&adapter->hw))
+ DPRINTK(PROBE, ERR, "EEPROM Read Error\n");
}
-
- /* copy the MAC address out of the EEPROM */
-
- if (e1000_read_mac_addr(&adapter->hw))
- DPRINTK(PROBE, ERR, "EEPROM Read Error\n");
+ /* don't block initalization here due to bad MAC address */
memcpy(netdev->dev_addr, adapter->hw.mac_addr, netdev->addr_len);
memcpy(netdev->perm_addr, adapter->hw.mac_addr, netdev->addr_len);
- if (!is_valid_ether_addr(netdev->perm_addr)) {
+ if (!is_valid_ether_addr(netdev->perm_addr))
DPRINTK(PROBE, ERR, "Invalid MAC Address\n");
- goto err_eeprom;
- }
e1000_get_bus_info(&adapter->hw);
^ permalink raw reply related
* Re: [PATCH] e1000: Dump the eeprom when a user encounters a bad checksum
From: Joe Perches @ 2007-12-17 22:14 UTC (permalink / raw)
To: Auke Kok
Cc: jeff, netdev, davem, john.ronciak, jesse.brandeburg, randy.dunlap
In-Reply-To: <20071217215023.26270.62396.stgit@localhost.localdomain>
On Mon, 2007-12-17 at 13:50 -0800, Auke Kok wrote:
> diff --git a/drivers/net/e1000/e1000_main.c
> b/drivers/net/e1000/e1000_main.c
> index efd8c2d..aac55be 100644
> --- a/drivers/net/e1000/e1000_main.c
> +++ b/drivers/net/e1000/e1000_main.c
> @@ -979,23 +1036,29 @@ e1000_probe(struct pci_dev *pdev,
> e1000_reset_hw(&adapter->hw);
>
> /* make sure the EEPROM is good */
> -
> if (e1000_validate_eeprom_checksum(&adapter->hw) < 0) {
> DPRINTK(PROBE, ERR, "The EEPROM Checksum Is Not Valid\n");
> - goto err_eeprom;
> + e1000_dump_eeprom(adapter);
> + /*
> + * set MAC address to all zeroes to invalidate and temporary
> + * disable this device for the user. This blocks regular
> + * traffic while still permitting ethtool ioctls from reaching
> + * the hardware as well as allowing the user to run the
> + * interface after manually setting a hw addr using
> + * `ip set address`
> + */
> + memset(adapter->hw.mac_addr, 0, netdev->addr_len);
Do you need to set netdev->dev_addr too?
> + } else {
> + /* copy the MAC address out of the EEPROM */
> + if (e1000_read_mac_addr(&adapter->hw))
> + DPRINTK(PROBE, ERR, "EEPROM Read Error\n");
> }
> -
> - /* copy the MAC address out of the EEPROM */
> -
> - if (e1000_read_mac_addr(&adapter->hw))
> - DPRINTK(PROBE, ERR, "EEPROM Read Error\n");
> + /* don't block initalization here due to bad MAC address */
I just sent a patch to fix these typos and another pops up...
initialization
cheers, Joe
^ permalink raw reply
* Re: [PATCH 2.6.25 0/9]: SCTP: Update ADD-IP implementation to conform to spec
From: David Miller @ 2007-12-17 22:36 UTC (permalink / raw)
To: vladislav.yasevich; +Cc: netdev, lksctp-developers
In-Reply-To: <1197927169-5106-1-git-send-email-vladislav.yasevich@hp.com>
From: Vlad Yasevich <vladislav.yasevich@hp.com>
Date: Mon, 17 Dec 2007 16:32:40 -0500
> The following is a set of patches that updates the SCTP ADD-IP
> implementation to conform to the recently published RFC.
Patch 7 didn't seem to make it.
If you CC: on submissions like this, in the worst case at
least I'll get a copy even if the mailing list blocks it
for whatever reason (size, SPAM filter, etc.)
^ permalink raw reply
* Re: [PATCH net-2.6.25 1/8] Create ipv4_is_<type>(__be32 addr) functions
From: Jan Engelhardt @ 2007-12-17 22:37 UTC (permalink / raw)
To: Joe Perches; +Cc: netdev, Linux Kernel Mailing List, David Miller
In-Reply-To: <1197589141-7020-1-git-send-email-joe@perches.com>
On Dec 13 2007 15:38, Joe Perches wrote:
>
>Change IPV4 specific macros LOOPBACK MULTICAST LOCAL_MCAST BADCLASS and ZERONET
>macros to inline functions ipv4_is_<type>(__be32 addr)
>
>Adds type safety and arguably some readability.
>
>Changes since last submission:
>
>Removed ipv4_addr_octets function
>Used hex constants
>Converted recently added rfc3330 macros
>
>Signed-off-by: Joe Perches <joe@perches.com>
>---
>+static inline bool ipv4_is_loopback(__be32 addr)
>+{
>+ return (addr & htonl(0xff000000)) == htonl(0x7f000000);
>+}
>+
Can we use __constant_htonl()?
>+static inline bool ipv4_is_private_10(__be32 addr)
>+{
>+ return (addr & htonl(0xff000000)) == htonl(0x0a000000);
>+}
What are these functions needed for, even? There does not seem to be
any code (at least in davem's net-2.6.25:net/ipv4/, where I dared to grep)
that uses them.
^ permalink raw reply
* Re: [PATCH 2.6.25 0/9]: SCTP: Update ADD-IP implementation to conform to spec
From: Vlad Yasevich @ 2007-12-17 22:40 UTC (permalink / raw)
To: David Miller; +Cc: netdev, lksctp-developers
In-Reply-To: <20071217.143648.68777576.davem@davemloft.net>
David Miller wrote:
> From: Vlad Yasevich <vladislav.yasevich@hp.com>
> Date: Mon, 17 Dec 2007 16:32:40 -0500
>
>> The following is a set of patches that updates the SCTP ADD-IP
>> implementation to conform to the recently published RFC.
>
> Patch 7 didn't seem to make it.
>
> If you CC: on submissions like this, in the worst case at
> least I'll get a copy even if the mailing list blocks it
> for whatever reason (size, SPAM filter, etc.)
Hm... only missing from netdev.. :)
Do you want me to send just patch 7, or resend the whole series?
-vlad
> --
> To unsubscribe from this list: send the line "unsubscribe netdev" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
>
^ permalink raw reply
* Re: [PATCH net-2.6.25 1/8] Create ipv4_is_<type>(__be32 addr) functions
From: David Miller @ 2007-12-17 22:41 UTC (permalink / raw)
To: jengelh; +Cc: joe, netdev, linux-kernel
In-Reply-To: <Pine.LNX.4.64.0712172333550.32270@fbirervta.pbzchgretzou.qr>
From: Jan Engelhardt <jengelh@computergmbh.de>
Date: Mon, 17 Dec 2007 23:37:24 +0100 (CET)
> Can we use __constant_htonl()?
That should only be used in initializers.
^ permalink raw reply
* Re: [PATCH net-2.6.25 1/8] Create ipv4_is_<type>(__be32 addr) functions
From: Joe Perches @ 2007-12-17 22:42 UTC (permalink / raw)
To: Jan Engelhardt; +Cc: netdev, Linux Kernel Mailing List, David Miller
In-Reply-To: <Pine.LNX.4.64.0712172333550.32270@fbirervta.pbzchgretzou.qr>
On Mon, 2007-12-17 at 23:37 +0100, Jan Engelhardt wrote:
> >+static inline bool ipv4_is_loopback(__be32 addr)
> >+{
> >+ return (addr & htonl(0xff000000)) == htonl(0x7f000000);
> >+}
> >+
> Can we use __constant_htonl()?
I believe the generated code is the same.
> >+static inline bool ipv4_is_private_10(__be32 addr)
> >+{
> >+ return (addr & htonl(0xff000000)) == htonl(0x0a000000);
> >+}
>
> What are these functions needed for, even? There does not seem to be
> any code (at least in davem's net-2.6.25:net/ipv4/, where I dared to grep)
> that uses them.
include/net/addrconf.h
net/sctp/protocol.c
cheers, Joe
^ permalink raw reply
* Re: [PATCH net-2.6.25 1/8] Create ipv4_is_<type>(__be32 addr) functions
From: David Miller @ 2007-12-17 22:43 UTC (permalink / raw)
To: jengelh; +Cc: joe, netdev, linux-kernel
In-Reply-To: <Pine.LNX.4.64.0712172333550.32270@fbirervta.pbzchgretzou.qr>
From: Jan Engelhardt <jengelh@computergmbh.de>
Date: Mon, 17 Dec 2007 23:37:24 +0100 (CET)
>
> On Dec 13 2007 15:38, Joe Perches wrote:
> >+static inline bool ipv4_is_private_10(__be32 addr)
> >+{
> >+ return (addr & htonl(0xff000000)) == htonl(0x0a000000);
> >+}
>
> What are these functions needed for, even? There does not seem to be
> any code (at least in davem's net-2.6.25:net/ipv4/, where I dared to grep)
> that uses them.
You really need to grep the whole tree, never ever decrease the scope
of directories to search if you want to see if an interface is used.
It's used by some ipv6 address translation code as well as some
bits in SCTP:
include/net/addrconf.h: eui[0] = (ipv4_is_zeronet(addr) || ipv4_is_private_10(addr) ||
net/sctp/protocol.c: } else if (ipv4_is_private_10(addr->v4.sin_addr.s_addr) ||
So lazy...
^ permalink raw reply
* Re: [PATCH 2.6.25 0/9]: SCTP: Update ADD-IP implementation to conform to spec
From: David Miller @ 2007-12-17 22:43 UTC (permalink / raw)
To: vladislav.yasevich; +Cc: netdev, lksctp-developers
In-Reply-To: <4766FAD9.3060500@hp.com>
From: Vlad Yasevich <vladislav.yasevich@hp.com>
Date: Mon, 17 Dec 2007 17:40:25 -0500
> David Miller wrote:
> > From: Vlad Yasevich <vladislav.yasevich@hp.com>
> > Date: Mon, 17 Dec 2007 16:32:40 -0500
> >
> >> The following is a set of patches that updates the SCTP ADD-IP
> >> implementation to conform to the recently published RFC.
> >
> > Patch 7 didn't seem to make it.
> >
> > If you CC: on submissions like this, in the worst case at
> > least I'll get a copy even if the mailing list blocks it
> > for whatever reason (size, SPAM filter, etc.)
>
> Hm... only missing from netdev.. :)
>
> Do you want me to send just patch 7, or resend the whole series?
I'd like to see patch 7 so please send it.
Is it particularly big?
^ permalink raw reply
* [PATCH] sysctl: Fix ax25 checks
From: Eric W. Biederman @ 2007-12-17 22:44 UTC (permalink / raw)
To: Bernard Pidoux
Cc: Linux Netdev List, linux-kernel, Rafael J. Wysocki, Andrew Morton
In-Reply-To: <476595EC.5050103@ccr.jussieu.fr>
Bernard Pidoux <pidoux@ccr.jussieu.fr> writes:
> With 2.6.24-rc5 there is no /proc/net/ax25
/proc/sys/net/ax25?
> Here is an extract from dmesg after boot :
Groan. I thought I had found the last of the bugs with
my sysctl sanity checks. I guess you actually have to
use ax25 for this bug to show up.
Thank you for catching this.
> =======================
> sysctl table check failed: /net/ax25/ax0/ax25_default_mode .3.9.1.2 Unknown
> sysctl binary path
> Pid: 2936, comm: kissattach Not tainted 2.6.24-rc5 #1
> [<c012ca6a>] set_fail+0x3b/0x43
> [<c012ce7a>] sysctl_check_table+0x408/0x456
> [<c012ce8e>] sysctl_check_table+0x41c/0x456
> [<c012ce8e>] sysctl_check_table+0x41c/0x456
> [<c02ac64a>] _spin_unlock+0x14/0x1c
> [<c012ce8e>] sysctl_check_table+0x41c/0x456
> [<c011e681>] sysctl_set_parent+0x19/0x2a
> [<c011f55c>] register_sysctl_table+0x45/0x85
> [<d8be9d26>] ax25_register_sysctl+0x112/0x11c [ax25]
> [<d8be6c76>] ax25_device_event+0x2e/0x90 [ax25]
> [<c012c560>] notifier_call_chain+0x2a/0x47
> [<c012c59f>] raw_notifier_call_chain+0x17/0x1a
> [<c0259290>] dev_open+0x6f/0x75
> [<c0257ee7>] dev_change_flags+0x9c/0x148
> [<c0256ab3>] __dev_get_by_name+0x68/0x73
> [<c0292307>] devinet_ioctl+0x22e/0x53b
> [<c0259074>] dev_ioctl+0x472/0x5ba
> [<c024d4ba>] sock_ioctl+0x1aa/0x1cf
> [<c024d310>] sock_ioctl+0x0/0x1cf
> [<c016bc19>] do_ioctl+0x19/0x4c
> [<c016be40>] vfs_ioctl+0x1f4/0x20b
> [<c0103d01>] sysenter_past_esp+0x9a/0xa9
> [<c016be9c>] sys_ioctl+0x45/0x5d
> [<c0103cc6>] sysenter_past_esp+0x5f/0xa9
> =======================
> sysctl table check failed: /net/ax25/ax0/backoff_type .3.9.1.3 Unknown sysctl
> binary path
> (...) truncated
> =======================
> sysctl table check failed: /net/ax25/ax0/connect_mode .3.9.1.4 Unknown sysctl
> binary path
> (...)
> =======================
> sysctl table check failed: /net/ax25/ax0/standard_window_size .3.9.1.5 Unknown
> sysctl binary path
> =======================
> (...)
>
> and so on ...
>
Signed-off-by: Eric W. Biederman <ebiederm@xmission.com>
---
kernel/sysctl_check.c | 7 ++++++-
1 files changed, 6 insertions(+), 1 deletions(-)
diff --git a/kernel/sysctl_check.c b/kernel/sysctl_check.c
index bed939f..a68425a 100644
--- a/kernel/sysctl_check.c
+++ b/kernel/sysctl_check.c
@@ -428,7 +428,7 @@ static struct trans_ctl_table trans_net_netrom_table[] = {
{}
};
-static struct trans_ctl_table trans_net_ax25_table[] = {
+static struct trans_ctl_table trans_net_ax25_param_table[] = {
{ NET_AX25_IP_DEFAULT_MODE, "ip_default_mode" },
{ NET_AX25_DEFAULT_MODE, "ax25_default_mode" },
{ NET_AX25_BACKOFF_TYPE, "backoff_type" },
@@ -446,6 +446,11 @@ static struct trans_ctl_table trans_net_ax25_table[] = {
{}
};
+static struct trans_ctl_table trans_net_ax25_table[] = {
+ { 0, NULL, trans_net_ax25_param_table },
+ {}
+};
+
static struct trans_ctl_table trans_net_bridge_table[] = {
{ NET_BRIDGE_NF_CALL_ARPTABLES, "bridge-nf-call-arptables" },
{ NET_BRIDGE_NF_CALL_IPTABLES, "bridge-nf-call-iptables" },
--
1.5.3.rc6.17.g1911
^ permalink raw reply related
* Re: [PATCH net-2.6.25 1/8] Create ipv4_is_<type>(__be32 addr) functions
From: Jan Engelhardt @ 2007-12-17 23:02 UTC (permalink / raw)
To: David Miller; +Cc: joe, netdev, linux-kernel
In-Reply-To: <20071217.144319.93471413.davem@davemloft.net>
On Dec 17 2007 14:43, David Miller wrote:
>> On Dec 13 2007 15:38, Joe Perches wrote:
>> >+static inline bool ipv4_is_private_10(__be32 addr)
>> >+{
>> >+ return (addr & htonl(0xff000000)) == htonl(0x0a000000);
>> >+}
>>
>> What are these functions needed for, even? There does not seem to be
>> any code (at least in davem's net-2.6.25:net/ipv4/, where I dared to grep)
>> that uses them.
>
>You really need to grep the whole tree, never ever decrease the scope
>of directories to search if you want to see if an interface is used.
>
Hah you got me there :)
>It's used by some ipv6 address translation code as well as some
>bits in SCTP:
>
>include/net/addrconf.h: eui[0] = (ipv4_is_zeronet(addr) || ipv4_is_private_10(addr) ||
>net/sctp/protocol.c: } else if (ipv4_is_private_10(addr->v4.sin_addr.s_addr) ||
>
>So lazy...
I just discovered git-grep...
^ permalink raw reply
* Re: [PATCH] endianness annotations and fixes for olympic
From: Jeff Garzik @ 2007-12-17 23:15 UTC (permalink / raw)
To: Al Viro; +Cc: mikep, netdev, kaaker
In-Reply-To: <20071216205336.GW8181@ftp.linux.org.uk>
Al Viro wrote:
> * missing braces in !readl(...) & ...
> * trivial endianness annotations
> * in olympic_arb_cmd() the loop collecting fragments of
> packet is b0rken on big-endian - we have
> (next_ptr && (buf_ptr=olympic_priv->olympic_lap + ntohs(next_ptr)))
> as condition and it should have swab16(), not ntohs() - it's host-endian
> byteswapped, not big-endian. So if we get more than one fragment on big-endian
> host, we get screwed.
> This ntohs() got missed back when the rest of those had been switched
> to swab16() in 2.4.0-test2-pre1 - at a guess, nobody had hit fragmented
> packets during the testing of PPC fixes.
>
> PS: Ken Aaker cc'd on assumption that he is the same guy who'd done the
> original set of PPC fixes in olympic
>
> Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
applied #upstream
^ permalink raw reply
* Re: [PATCH 0/4] Pull request for 'sis190' branch
From: Jeff Garzik @ 2007-12-17 23:18 UTC (permalink / raw)
To: Francois Romieu; +Cc: Andrew Morton, netdev, K.M. Liu
In-Reply-To: <20071210222732.GA8675@electric-eye.fr.zoreil.com>
Francois Romieu wrote:
> Please pull from branch 'sis190' in repository
>
> git://git.kernel.org/pub/scm/linux/kernel/git/romieu/netdev-2.6.git sis190
>
> to get the changes below.
>
> Distance from 'upstream-linus' (7962024e9d16e9349d76b553326f3fa7be64305e)
> -------------------------------------------------------------------------
>
> c27e14e508664471b8e44ef1f81ec080213ea314
> 348de67fe200e25d8cb80cff35642192436cfeda
> 004a22d03d62cd08e5287273a5143447db009cd0
> 14deb44ffe7220be2de697d616f28cce17e72297
>
> Diffstat
> --------
>
> drivers/net/sis190.c | 21 ++++++++++-----------
> 1 files changed, 10 insertions(+), 11 deletions(-)
>
> Shortlog
> --------
>
> Francois Romieu (4):
> sis190: add cmos ram access code for the SiS19x/968 chipset pair
> sis190: remove duplicate INIT_WORK
> sis190: mdio operation failure is not correctly detected
> sis190: scheduling while atomic error
pulled into #upstream
^ permalink raw reply
* Re: Pull request for 'ipg' branch
From: Jeff Garzik @ 2007-12-17 23:18 UTC (permalink / raw)
To: Francois Romieu
Cc: Pekka Enberg, Sorbica Shieh, Jesse Huang, Andrew Morton, netdev
In-Reply-To: <20071204214551.GA6345@electric-eye.fr.zoreil.com>
Francois Romieu wrote:
> Please pull from branch 'ipg' in repository
>
> git://git.kernel.org/pub/scm/linux/kernel/git/romieu/netdev-2.6.git ipg
>
> to get the changes below.
>
> Distance from 'upstream' (558f08ed31c6909d3c9ae5d6dbf81220ede4b54a)
> -------------------------------------------------------------------
>
> 4918e9ebf74735bb8e664f97dc1dcc1e3d6abf9e
> e7b6ced0731fc6ad1a15a015de7e8c2e15da95f8
> 46bc63253ca320770b855249ef8cb894940a3437
> 992a029067f6e5c70021a0df65b2469a06362832
> adf129afde7ea8444fb6441da27e2d3385dbc297
> 25ba65ab7ff51de58ea0c70d23b3257f658f180d
> 2af61e99e3d1c959840ea007ff56b15db794fb99
> 9312ed326b6d944ec01636db69cba84de46c0c69
>
> Diffstat
> --------
>
> drivers/net/ipg.c | 284 ++++++++++++++++++++++++-----------------------------
> drivers/net/ipg.h | 99 +++++++------------
> 2 files changed, 168 insertions(+), 215 deletions(-)
pulled
^ permalink raw reply
* Re: [PATCH]: remove netif_running() check from myri10ge_poll()
From: Jeff Garzik @ 2007-12-17 23:19 UTC (permalink / raw)
To: Andrew Gallatin; +Cc: David Miller, netdev, linux-kernel
In-Reply-To: <47602AAA.8060204@myri.com>
Andrew Gallatin wrote:
> Remove the bogus netif_running() check from myri10ge_poll().
>
> This eliminates any chance that myri10ge_poll() can trigger
> an oops by calling netif_rx_complete() and returning
> with work_done == budget.
>
> Signed-off-by: Andrew Gallatin <gallatin@myri.com>
holding onto this patch but not applying, because NAPI discussions
appear to be continuing...
^ permalink raw reply
* Re: [PATCH/RFC] [POWERPC] Add fixed-phy support for fs_enet
From: Jeff Garzik @ 2007-12-17 23:20 UTC (permalink / raw)
To: Jochen Friedrich
Cc: Vitaly Bordug, linuxppc-dev, linux-kernel, netdev, Scott Wood
In-Reply-To: <47601027.2080104@scram.de>
Jochen Friedrich wrote:
> This patch adds support to use the fixed-link property
> of an ethernet node to fs_enet for the
> CONFIG_PPC_CPM_NEW_BINDING case.
>
> Signed-off-by: Jochen Friedrich <jochen@scram.de>
> ---
> drivers/net/fs_enet/fs_enet-main.c | 9 ++++++++-
> 1 files changed, 8 insertions(+), 1 deletions(-)
>
> diff --git a/drivers/net/fs_enet/fs_enet-main.c b/drivers/net/fs_enet/fs_enet-main.c
> index f2a4d39..8220c70 100644
> --- a/drivers/net/fs_enet/fs_enet-main.c
> +++ b/drivers/net/fs_enet/fs_enet-main.c
> @@ -1174,8 +1174,15 @@ static int __devinit find_phy(struct device_node *np,
> struct device_node *phynode, *mdionode;
> struct resource res;
> int ret = 0, len;
> + const u32 *data;
> +
> + data = of_get_property(np, "fixed-link", NULL);
> + if (data) {
> + snprintf(fpi->bus_id, 16, PHY_ID_FMT, 0, *data);
> + return 0;
> + }
>
> - const u32 *data = of_get_property(np, "phy-handle", &len);
> + data = of_get_property(np, "phy-handle", &len);
> if (!data || len != 4)
ACK, pass this through paulus?
^ permalink raw reply
* Re: Please pull 'upstream-jgarzik' branch of wireless-2.6
From: Jeff Garzik @ 2007-12-17 23:24 UTC (permalink / raw)
To: John W. Linville; +Cc: netdev, linux-wireless
In-Reply-To: <20071216043419.GF3096@tuxdriver.com>
John W. Linville wrote:
> Jeff,
>
> Some more patches intended for 2.6.25... There are a bunch of libertas
> patches in there, as well as some iwlwifi cleanups from the last merge
> and a couple of b43 fixes resulting from a regression in an earlier
> patch already queued in netdev-2.6#upstream.
>
> Let me know if there are any problems!
>
> Thanks,
>
> John
>
> ---
>
> Individual patches available here:
>
> http://www.kernel.org/pub/linux/kernel/people/linville/wireless-2.6/upstream-jgarzik
>
> ---
>
> The following changes since commit 9c8e86195d75a1f4875e9ced083a015a99cec94e:
> John W. Linville (1):
> rt2x00: correct "skb_buff" typo
>
> are available in the git repository at:
>
> git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-2.6.git upstream-jgarzik ..BRANCH.NOT.VERIFIED..
>
> Dan Williams (11):
> orinoco: always use latest BSS info when caching scan results
> libertas: make lbs_cmd() usage nicer
> libertas: clean up is_command_allowed_in_ps()
> libertas: clean up direct command handling
> libertas: add simple copyback command callback
> libertas: convert GET_HW_SPEC to a direct command
> libertas: rename and re-type bufvirtualaddr to cmdbuf
> libertas: fix case of FWT_ACCESS_LIST_ROUTE and FWT_ACCESS_LIST_NEIGHBOR commands
> libertas: convert DATA_RATE to a direct command
> libertas: convert RF_CHANNEL to a direct command
> libertas: endianness fixes for get_channel/set_channel
>
> David Woodhouse (76):
> libertas: Fix memory leak of RX skbs
> libertas: Remove cmd_oid from struct cmd_ctrl_node
> libertas: Consolidate lbs_host_to_card_done() function.
> libertas: Don't claim to have checksummed incoming packets.
> libertas: Move SET_BOOT2_VER command to if_usb where it belongs
> libertas: Zero 'pdata_size' field in cmd_ctrl_node reliably.
> libertas: Byteswap cmdptr->size in lbs_cmd()
> libertas: Use lbs_cmd() for setting Boot2 version
> libertas: Remove SET_BOOT2_VER support from the Big Switch Statement.
> libertas: Fix endianness in boot2_version handling.
> libertas: when usb_submit_usb fails, include the error code in the printk
> libertas: Switch to using a callback function pointer for commands
> libertas: Don't set IW_ENCODE_NOKEY when returning WEP keys.
> libertas: Fix up error handling in lbs_setuserscan()
> libertas: kill adapter->nr_cmd_pending
> libertas: switch lbs_cmd() to take a callback function pointer
> libertas: clean up lbs_thread() to make it slightly more readable
> libertas: fix lbs_rtap attribute in sysfs
> libertas: kill TxLockFlag
> libertas: kill struct lbs_adapter
> libertas: use lbs_host_to_card_done() in lbs_tx_timeout()
> libertas: cope with device which already has firmware loaded
> libertas: stop debugfs code looking at cmdpendingq
> libertas: kill internal tx queue for PS mode
> libertas: kill SendSinglePacket() function.
> libertas: move lbs_hard_start_xmit() into tx.c
> libertas: kill lbs_process_tx() by merging it into lbs_hard_start_xmit()
> libertas: clean up lbs_hard_start_xmit()
> libertas: kill lbs_pre_start_xmit(), lib_mesh_pre_start_xmit()
> libertas: stop using ieee80211 for radiotap device
> libertas: set dev_addr on rtap device
> libertas: TX packet is radiotap iff it comes from rtap_dev
> libertas: free successfully transmitted skbs again
> libertas: refactor the 'should I sleep?' decision in lbs_thread()
> libertas: Move actual transmission to main thread
> libertas: remove unreachable code from process_rxed_802_11_packet()
> libertas: fix error cases in lbs_process_rxed_802_11_packet()
> libertas: kill lbs_upload_tx_packet()
> libertas: kill (IS,SET,UNSET)_MESH_FRAME.
> libertas: add opaque extra argument to cmd callback function
> libertas: clean up lbs_interrupt()
> libertas: remove pre_open_check()
> libertas: make rtap and normal modes mutually exclusive, clean up open/stop
> libertas: improve reliability of firmware reloading on USB
> libertas: switch to a waitqueue and timer for handling USB firmware load
> libertas: don't run thread while firmware not yet ready
> libertas: switch USB cardp->priv to 'struct lbs_private *' and resulting fix
> libertas: move removal of lbs_rtap file to lbs_stop_card()
> libertas: wait for 'firmware ready' event from firmware after loading
> libertas: fix debug output in lbs_cmd_copyback() function.
> libertas: convert CMD_MESH_ACCESS to a direct command
> libertas: remove casts from lbs_cmd() and lbs_cmd_with_response() macros
> libertas: make some more functions static
> libertas: fix sparse endianness warnings in scan.c
> libertas: add lbs_mesh sysfs attribute for enabling mesh
> libertas: kill references to mesh autostart
> libertas: kill rx_urb_recall and eth_dev members of struct usb_card_rec
> libertas: whitespace cleanup in host.h
> libertas: allow get/set SSID on mshX device
> libertas: allow setting channel on mshX device
> libertas: add missing newline on debug message
> libertas: disable mesh temporarily while setting eth channel/assoc
> libertas: add debugging output to lbs_mesh_config()
> libertas: be more careful about command responses matching cur_cmd
> libertas: add missing newlines in debugging statements
> libertas: slight cleanup of netif queue stop/wake
> libertas: add lbs_host_sleep_cfg() command function
> libertas: switch lbs_cmd() to take a _pointer_ to the command structure
> libertas: make worker thread not freezable
> libertas: implement suspend and resume core methods
> libertas: implement suspend/resume for USB devices
> libertas: add ethtool support for wake-on-lan configuration
> libertas: make lbs_update_channel() function non-static
> libertas: cope with both old and new mesh TLV values
> libertas: pass channel argument directly to lbs_mesh_config()
> libertas: use spin_is_locked() instead of spin_trylock() in lbs_interrupt()
>
> Holger Schurig (8):
> libertas: remove cmd_ctrl_node->cmdflags
> libertas: remove cmd_ctrl_node->status
> libertas: make more functions static
> libertas: handy function to call firmware commands
> libertas: fix data packet size errors
> libertas: implement new scanning logic
> libertas: endianness fixes
> libertas: fix use-after-free error
>
> Li Zefan (1):
> libertas: don't cast a pointer to pointer of
>
> Michael Buesch (2):
> b43: Fix ofdmtab write regression
> b43: Fix for broken transmission
>
> Reinette Chatre (1):
> iwlwifi: remove HT code from iwl-3945.h
>
> Tomas Winkler (2):
> iwlwifi: fix compliation warnings
> iwlwifi: add missing comments
Pulled.
PLEASE verify iwlwifi and zd1121rw drivers, as soon as netdev-2.6.git
mirrors out, because I had to do some hand-merging when bringing the .24
fixes into #upstream.
Jeff
^ permalink raw reply
* Re: Please pull 'upstream-jgarzik' branch of wireless-2.6
From: Jeff Garzik @ 2007-12-17 23:40 UTC (permalink / raw)
To: John W. Linville
Cc: netdev-u79uwXL29TY76Z2rM5mHXA,
linux-wireless-u79uwXL29TY76Z2rM5mHXA, Andrew Morton
In-Reply-To: <47670514.4030204-o2qLIJkoznsdnm+yROfE0A@public.gmane.org>
Hum, this required merging also, and broke the build too :/
drivers/net/wireless/iwlwifi/iwl3945-base.c: In function
‘iwl3945_alive_start’:
drivers/net/wireless/iwlwifi/iwl3945-base.c:6285: error: implicit
declaration of function ‘iwl_rate_control_unregister’
make[4]: *** [drivers/net/wireless/iwlwifi/iwl3945-base.o] Error 1
make[3]: *** [drivers/net/wireless/iwlwifi] Error 2
make[2]: *** [drivers/net/wireless] Error 2
make[1]: *** [drivers/net] Error 2
make: *** [drivers] Error 2
I'll leave it there and assume that you will send a fix --on top of--
netdev#upstream ...
^ permalink raw reply
* Re: [PATCH 1/2] add driver for enc28j60 ethernet chip
From: Jeff Garzik @ 2007-12-17 23:49 UTC (permalink / raw)
To: Claudio Lanconelli; +Cc: netdev
In-Reply-To: <475EA546.7030202@eptar.com>
Claudio Lanconelli wrote:
> These patches add support for Microchip enc28j60 ethernet chip
> controlled via SPI.
> I tested it on my custom board (S162) with ARM9 s3c2442 SoC.
> Any comments are welcome.
>
> Signed-off-by: Claudio Lanconelli <lanconelli.claudio@eptar.com>
comments:
* overall: a clean driver that looks mostly acceptable, good work
* use stats in net_device rather than defining your own
* use ethtool rather than 'full_duplex' variable to select duplex
* [suggestion but not requirement] kernel prefers "u8" and "u32" types
to the C99 types uint8_t or uint32_t
* remove the 'inline' markers from functions, and let the compiler make
the decision
* udelay() in enc28j60_phy_write() -- and any similar code pattern --
may not actually delay for the specified amount of time, when you
consider that writes may be posted. normally a read will flush a write.
* Why do interrupt work in a kernel thread? Your comment says you
cannot, but does not explain.
* should use NAPI
* should be able to program multicast list while everything is active
^ permalink raw reply
* Re: [PATCH 1/2] add driver for enc28j60 ethernet chip
From: Jeff Garzik @ 2007-12-17 23:49 UTC (permalink / raw)
To: Claudio Lanconelli; +Cc: netdev
In-Reply-To: <475EA546.7030202@eptar.com>
oh yeah: make sure your Kconfig/Makefile stuff is in the _same_ patch
as your driver.
^ permalink raw reply
* Re: [PATCH] net/netfilter/: Spelling fixes
From: Patrick McHardy @ 2007-12-17 23:49 UTC (permalink / raw)
To: Joe Perches
Cc: linux-kernel, Andrew Morton, coreteam, netdev, netfilter-devel,
netfilter
In-Reply-To: <1197920439-5455-28-git-send-email-joe@perches.com>
Joe Perches wrote:
> Signed-off-by: Joe Perches <joe@perches.com>
> ---
> net/netfilter/nf_conntrack_sip.c | 4 ++--
> 1 files changed, 2 insertions(+), 2 deletions(-)
Both your netfilter patches conflict with some pending patches
of mine (which also fix those spelling errors). So for now I'm
going to say no, please resubmit in case I won't get my patches
in shape for 2.6.25.
^ permalink raw reply
* Re: "ip neigh show" not showing arp cache entries?
From: Patrick McHardy @ 2007-12-17 23:51 UTC (permalink / raw)
To: Chris Friesen; +Cc: yoshfuji, dada1, netdev, linux-kernel
In-Reply-To: <4766D261.1020005@nortel.com>
Chris Friesen wrote:
> Patrick McHardy wrote:
>
>> From a kernel perspective there are only complete dumps, the
>> filtering is done by iproute. So the fact that it shows them
>> when querying specifically implies there is a bug in the
>> iproute neighbour filter. Does it work if you omit "all"
>> from the ip neigh show command?
>
> Omitting "all" gives identical results. It is still missing entries
> when compared with the output of "arp".
In that case the easiest way to debug this is probably if you
add some debugging to ip/ipneigh.c:print_neigh() since I'm
unable to reproduce this problem. A printf for all the filter
conditions (=> return 0) at the top should do.
^ permalink raw reply
page: next (older) | prev (newer) | latest
- recent:[subjects (threaded)|topics (new)|topics (active)]
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox