Robert Swindells | 12 May 12:36 2015

crash in icmp_error()

I upgraded my router yesterday and it has started crashing.

I got one core dump from it:

Crash version 7.99.16, image version 7.99.16.
System panicked: trap
Backtrace from time of crash is available.
crash> bt
vpanic() at vpanic+0x145
snprintf() at snprintf
startlwp() at startlwp
calltrap() at calltrap+0x11
icmp_error() at icmp_error+0x2a7
ip_forward() at ip_forward+0x1e7
ipintr() at ipintr+0x9e3
softint_dispatch() at softint_dispatch+0x7d
DDB lost frame for Xsoftintr+0x4f, trying 0xfffffe81090e9ff0
Xsoftintr() at Xsoftintr+0x4f
--- interrupt ---

It ran fine with 7.99.9.

Robert Swindells

Christopher Humphries | 6 May 11:54 2015

Available network kernel projects?


I was on #netbsd on freenode and Riastradh mentioned that there may be more
progress made on SMP networking, especially the Virtual Network Stacks
project (sounded cool and fun), than the project list on the wiki may lead
one to believe. What is the current state of this?

If the information is out of date, which of the list of the networking
projects may be available to work on or help with?


Looking to get started in netbsd kernel development in either networking or
filesystem space (if I can choose).

I realize 7.0 is right around the corner, so you may be busy; I appreciate
your help!

-Chris Humphries

Matt Thomas | 5 May 01:15 2015

Importing unbound

I think we should include unbound as an alternative for named so it can be used .

named is just “too big” for me to be comfortable with.

Roy Marples | 5 May 00:12 2015

Add ARP to INET or require ND6

Hi List

While adding the IN_IFF_TENTATIVE functionality and friends it was pointed out 
that ARP is optional with INET.
The argument at the time being why pay for ARP if there are no real 

However, NS/NA (the ARP equivalent of IPv6) is not optional with INET6, it's 

So the burning question is this:
Should we turn NS/NA into an option or remove the ARP option?

I'm in favour of the latter as I would find it hard to test patches for the 
former given my restricted hardware set.


Tyler Retzlaff | 2 May 22:32 2015

removing NATM netnatm


just soliciting opinions for removal of NATM (sys/netnatm).

it has been bitrotting away for what looks like years, never
gets compiled (not even by ALL kernels) and given its condition
I doubt it is used by anyone anywhere.

is there a process to be followed for removing it?  is there a
reason to keep it around?


Mouse | 28 Apr 23:31 2015

pppd's defaultroute option

It appears to me that pppd's defaultroute option simply doesn't work
for IPv6, nor do I see any v6 analog of it.  Is there some reason for
this?  It's annoying to have to install a default route in ipv6-up
when, as far as I can see, there's no reason pppd couldn't do it for me
just as easily as it does for v4.

The system I care about at the moment is 4.0.1, but based on the
manpages this appears to be just as true on the other two versions I
run myself (5.2 and 1.4T) and according to a guest account I have on a
system which reports itself as 6.1_STABLE.

/~\ The ASCII				  Mouse
\ / Ribbon Campaign
 X  Against HTML		mouse <at>
/ \ Email!	     7D C8 61 52 5D E7 2D 39  4E F1 31 3E E8 B3 27 4B

Tyler Retzlaff | 26 Apr 22:02 2015

mbuf -> sockaddr patch for send and connect


here is the next patch in the series for review. as with the others
it converts the type of the sockaddr parameter from mbuf * to sockaddr *
for the user-requests send and connect.

comments welcome
Index: compat/linux/common/linux_socket.c
RCS file: /cvsroot/src/sys/compat/linux/common/linux_socket.c,v
retrieving revision 1.123
diff -p -u -r1.123 linux_socket.c
--- compat/linux/common/linux_socket.c	3 Apr 2015 20:01:07 -0000	1.123
+++ compat/linux/common/linux_socket.c	26 Apr 2015 17:31:58 -0000
 <at>  <at>  -1402,14 +1402,14  <at>  <at>  linux_sys_connect(struct lwp *l, const s
 		syscallarg(int) namelen;
 	} */
 	int		error;
-	struct mbuf *nam;
+	struct sockaddr_big sb;

-	error = linux_get_sa(l, SCARG(uap, s), &nam, SCARG(uap, name),
+	error = linux_get_sa_sb(l, SCARG(uap, s), &sb, SCARG(uap, name),
 	    SCARG(uap, namelen));
 	if (error)
 		return (error);

-	error = do_sys_connect(l, SCARG(uap, s), nam);
(Continue reading)

Robert Swindells | 26 Apr 20:33 2015

more mbuf flags

I want to use an mbuf flag as part of adding sctp support. My current
plan is to use M_PROTO1 for this.

The M_PROTO1 flag is used in a few places in the tree:

In sys/net/if_bridge.c it is set for all enqueued mbufs. This was
introduced in 1.28 as part of a patch to allow gif(4) interfaces to be
members of a bridge, the rest of the patch has gone now but not this

In sys/netbt/hci_link.c it is set to indicate that an mbuf is a first
fragment and checked later.

In the iee80211(4) stack and drivers it is used to indicate that the
mbuf contains a PS_POLL packet and some wireless drivers test for it.

I think the if_bridge.c usage should be deleted.

All the other current usages seem to me to be features of a link, not
a protocol and ought to be changed to use one of the M_LINK* flags in
order to free up M_PROTO1 for use by actual protocols.

Thoughts ?

Robert Swindells

Charlet, Ricky | 24 Apr 23:44 2015

patch for duplicate tcp acks


        I was suffering duplicate tpc acks.  It seems trivial to duplicate.... Any time I receive a non-zero len tcp
packet, I ack it twice.  Note that I'm using a window scale of 3 and that may or may come into play.

        Anyway, did some debugging and some comparing. I found a patch for this problem in freebsd.

Here is how I applied it to netbsd (diff included below). It works for me. But I'm on an embedded system with a
funky compiler and modified source.  I'm giving this patch to the list in hopes that someone will feel like
compiling / testing it in a truer netbsd kernel.

Index: src/sys/netinet/tcp_output.c
RCS file: /cvsroot/src/sys/netinet/tcp_output.c,v
retrieving revision 1.173
diff -r1.173 tcp_output.c
<               long adv = min(win, (long)TCP_MAXWIN << tp->rcv_scale) -
<                       (tp->rcv_adv - tp->rcv_nxt);
>               long adv;
>               int oldwin;
>               adv = fp_min(win, (long)FP_TCP_MAXWIN << tp->rcv_scale);
>               if (SEQ_GT(tp->rcv_adv, tp->rcv_nxt)) {
>                               oldwin = (tp->rcv_adv - tp->rcv_nxt);
>                               adv -= oldwin;
>               } else
>                               oldwin = 0;
(Continue reading)

Mouse | 24 Apr 01:48 2015

ping6 -o?

On the machines I have ready access to, ping6 lacks ping's -o flag.

Is there any particular reason for this?  I find myself wanting it.

/~\ The ASCII				  Mouse
\ / Ribbon Campaign
 X  Against HTML		mouse <at>
/ \ Email!	     7D C8 61 52 5D E7 2D 39  4E F1 31 3E E8 B3 27 4B

Roy Marples | 21 Apr 10:46 2015

IPv4 Address Flags

Hi List

As discussed here [1], a few people voiced their opinion that they
didn't like address removal when the carrier drops and would rather
re-negotiate at carrier up. The first step of doing this is to add IPv6
address flag semantics to IPv4 addresses.

This patch adds the following flags to IPv4 and mimics the IPv6
behaviour of the same flags:

ioctl SIOCGIFAFLAG_IN has been added to retrieve the flags using a ifreq
struct (ifaliasreq is probably better but then we run into compatibility
issues, also why IN_IFF_NODAD is not implemented).

ifconfig(8) has been modified to report the new flags and wait for
tentative to vanish via -w alongside the IPv6 addresses.

sysctl(8) now has these new values:

DAD is implemented according to RFC 5227.
A future patch could be made to implement address defence from the RFC,
but this is optional (although required for IPv4LL, but dhcpcd will
handle that).

(Continue reading)