Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 4 Mar 2007 03:53:15 +1100 (EST)
From:      Ian Smith <smithi@nimnet.asn.au>
To:        freebsd-net@freebsd.org
Subject:   mpd 4.1 on 5.5-STABLE 
Message-ID:  <Pine.BSF.3.96.1070304014221.12009B-100000@gaia.nimnet.asn.au>

next in thread | raw e-mail | index | archive | help
I'm having trouble getting mpd 4.1 going, and am a netgraph noobie.

FreeBSD paqi.nimnet.asn.au 5.5-STABLE FreeBSD 5.5-STABLE #0: Sat Mar  3
03:14:13 EST 2007 root@paqi.nimnet.asn.au:/usr/obj/usr/src/sys/PAQI5S_3  i386

paqi# mpd4 -v
Version 4.1 (root@paqi.nimnet.asn.au 20:51  3-Mar-2007)

/etc/rc.conf (updated since rebooting after installworld) has:
mpd_enable="YES"
mpd_flags="-b"

When started the first time, before there's any ng0 interface, mpd logs
the following two lines then immediately exits without further ado:

paqi# /usr/local/etc/rc.d/mpd4.sh start
Starting mpd4.

/var/log/mpd.log:
[.. previous attempts with mpd4.1-rc2 on a 5.5-STABLE from December,
    with exactly the same set of symptoms as now
..]
Mar  3 23:25:18 paqi mpd: process 36762 started, version 4.1 (root@paqi.nimnet.asn.au 20:51  3-Mar-2007)
Mar  3 23:25:18 paqi mpd: CONSOLE: listening on 127.0.0.1 5005

paqi# ps aux | grep "[m]pd"
paqi# sockstat | grep mpd

Having been exactly here before with rc2, I see ng0 has been created:

paqi# ifconfig
plip0: flags=108810<POINTOPOINT,SIMPLEX,MULTICAST> mtu 1500
lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> mtu 16384
        inet 127.0.0.1 netmask 0xff000000
dc0: flags=108843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
        options=8<VLAN_MTU>
        inet 192.168.7.1 netmask 0xffffff00 broadcast 192.168.7.255
        ether 00:14:6c:8e:ef:37
        media: Ethernet 100baseTX <full-duplex>
        status: active
xe0: flags=108843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
        inet 192.168.1.1 netmask 0xffffff00 broadcast 192.168.1.255
        ether 00:80:c7:ea:cb:c5
        media: Ethernet 10baseT/UTP
        status: active
ng0: flags=8890<POINTOPOINT,NOARP,SIMPLEX,MULTICAST> mtu 1500

and know that it'll refer to the now-dead PID 36762 from above:

paqi# ngctl list
There are 5 total nodes:
  Name: ngctl36785      Type: socket          ID: 00000006   Num hooks: 0
  Name: mpd36762-PPPoE-bpf Type: bpf             ID: 00000005   Num hooks: 2
  Name: mpd36762-PPPoE-vjc Type: vjc             ID: 00000004   Num hooks: 4
  Name: mpd36762-PPPoE  Type: ppp             ID: 00000003   Num hooks: 6
  Name: ng0             Type: iface           ID: 00000002   Num hooks: 2

paqi# ngctl list -l
There are 5 total nodes:
  Name: ngctl36786      Type: socket          ID: 00000007   Num hooks: 0
  Name: mpd36762-PPPoE-bpf Type: bpf             ID: 00000005   Num hooks: 2
  Local hook      Peer name       Peer type    Peer ID         Peer hook
  ----------      ---------       ---------    -------         ---------
  iface           ng0             iface        00000002        inet
  ppp             mpd36762-PPPoE  ppp          00000003        inet
  Name: mpd36762-PPPoE-vjc Type: vjc             ID: 00000004   Num hooks: 4
  Local hook      Peer name       Peer type    Peer ID         Peer hook
  ----------      ---------       ---------    -------         ---------
  vjip            mpd36762-PPPoE  ppp          00000003        vjc_vjip
  vjuncomp        mpd36762-PPPoE  ppp          00000003        vjc_vjuncomp
  vjcomp          mpd36762-PPPoE  ppp          00000003        vjc_vjcomp
  ip              mpd36762-PPPoE  ppp          00000003        vjc_ip
  Name: mpd36762-PPPoE  Type: ppp             ID: 00000003   Num hooks: 6
  Local hook      Peer name       Peer type    Peer ID         Peer hook
  ----------      ---------       ---------    -------         ---------
  ipv6            ng0             iface        00000002        inet6
  inet            mpd36762-PPPoE-bpf bpf          00000005        ppp
  vjc_vjip        mpd36762-PPPoE-vjc vjc          00000004        vjip
  vjc_vjuncomp    mpd36762-PPPoE-vjc vjc          00000004        vjuncomp
  vjc_vjcomp      mpd36762-PPPoE-vjc vjc          00000004        vjcomp
  vjc_ip          mpd36762-PPPoE-vjc vjc          00000004        ip
  Name: ng0             Type: iface           ID: 00000002   Num hooks: 2
  Local hook      Peer name       Peer type    Peer ID         Peer hook
  ----------      ---------       ---------    -------         ---------
  inet6           mpd36762-PPPoE  ppp          00000003        ipv6
  inet            mpd36762-PPPoE-bpf bpf          00000005        iface

'ifconfig ng0 destroy' won't.  So then, now mpd will start, uselessly: 

paqi# /usr/local/etc/rc.d/mpd4.sh start
Starting mpd4.
paqi# ps auxww | grep "[m]pd"
root   36794  0.0  1.5  4040  2268  ??  Is   11:31PM   0:00.02 /usr/local/sbin/mpd4 -p /var/run/mpd4.pid -b
paqi# cat /var/run/mpd4.pid
36794
paqi# sockstat | grep mpd
root     mpd4       36794 3  dgram  -> /var/run/logpriv
root     mpd4       36794 10 tcp4   127.0.0.1:5005        *:*

Now I can telnet in ok, but it's 'no bundles defined' all the way.  I
can exit, or quit which stops mpd ok (but leaves ng0 as is), but this
time my poking around also found that 'show iface' murdered it:

Mar  3 23:31:44 paqi mpd: process 36794 started, version 4.1 (root@paqi.nimnet.asn.au 20:51  3-Mar-2007)
Mar  3 23:31:44 paqi mpd: CONSOLE: listening on 127.0.0.1 5005
Mar  3 23:31:44 paqi mpd: [PPPoE] can't connect "bypass.inet"->"iface" and "ng0:"->"inet": File exists
Mar  3 23:31:44 paqi mpd: [PPPoE] netgraph initialization failed
Mar  3 23:31:44 paqi mpd: no bundles defined

[obviously the problem, but why?]

Mar  4 01:34:22 paqi mpd: last message repeated 14 times  (14 more conf lines)
Mar  4 01:34:22 paqi mpd: CONSOLE: Connect
Mar  4 01:34:22 paqi mpd: CONSOLE: Allocated new console session 0x80d501c from 127.0.0.1
Mar  4 01:34:33 paqi mpd: [(null)] CONSOLE: smithi: log
Mar  4 01:35:40 paqi mpd: [(null)] CONSOLE: smithi: log -ipv6cp
Mar  4 01:35:45 paqi mpd: [(null)] CONSOLE: smithi: log
Mar  4 01:35:54 paqi mpd: [(null)] CONSOLE: smithi: load PPPoE
Mar  4 01:35:54 paqi mpd: [PPPoE] can't connect "bypass.inet"->"iface" and "ng0:"->"inet": File exists
Mar  4 01:35:54 paqi mpd: [PPPoE] netgraph initialization failed
Mar  4 01:35:54 paqi mpd: no bundles defined
Mar  4 01:36:24 paqi mpd: last message repeated 14 times
Mar  4 01:36:24 paqi mpd: [(null)] CONSOLE: smithi: sho
Mar  4 01:36:40 paqi mpd: [(null)] CONSOLE: smithi: sho ipv6cp
Mar  4 01:36:40 paqi mpd: no bundles defined
Mar  4 01:36:49 paqi mpd: [(null)] CONSOLE: smithi: sho auth
Mar  4 01:36:49 paqi mpd: no bundles defined
Mar  4 01:36:57 paqi mpd: [(null)] CONSOLE: smithi: sho types
Mar  4 01:37:18 paqi mpd: [(null)] CONSOLE: smithi: sho iface
Mar  4 01:37:19 paqi mpd: caught fatal signal segv
Mar  4 01:37:19 paqi mpd: fatal error, exiting
Mar  4 01:37:19 paqi mpd: process 36794 terminated

(no core)

paqi# ngctl list
There are 5 total nodes:
  Name: ngctl37232      Type: socket          ID: 00000012   Num hooks: 0
  Name: mpd36762-PPPoE-bpf Type: bpf             ID: 00000005   Num hooks: 2
  Name: mpd36762-PPPoE-vjc Type: vjc             ID: 00000004   Num hooks: 4
  Name: mpd36762-PPPoE  Type: ppp             ID: 00000003   Num hooks: 6
  Name: ng0             Type: iface           ID: 00000002   Num hooks: 2

mpd.conf less comments (yes, with no empty lines between)

startup:
        set console port 5005
        set console ip 127.0.0.1
        set console user smithi xxxxx
        set console user root xxxxxxx
        set console open

default:
        load PPPoE

PPPoE:
        new -i ng0 PPPoE PPPoE
        set iface addrs 1.1.1.1 2.2.2.2
        set iface route default
        set iface disable on-demand
        set iface idle 0
        set bundle disable multilink
        set auth authname "number@provider"
        set auth password "yeahsure"
        set link no acfcomp protocomp
        set link disable pap chap
        set link accept chap
        set link mtu 1492
        set link keep-alive 10 60
        set ipcp yes vjcomp
        set ipcp ranges w.x.y.z/0 w.x.0.0/16
        open

mpd.links likewise:
PPPoE:
        set link type pppoe
        set pppoe iface xe0
        set pppoe service ""
        set pppoe disable incoming
        set pppoe enable originate

NETGRAPH is in kernel, modules are loaded:

paqi# kldstat -v | egrep "net|ng_"
                161 netgraph
                163 dummynet
 4    1 0xc227a000 4000     ng_socket.ko
                239 ng_socket
 5    1 0xc227e000 3000     ng_iface.ko
                240 ng_iface
 6    1 0xc2281000 6000     ng_ppp.ko
                241 ng_ppp
 7    1 0xc2287000 4000     ng_vjc.ko
                242 ng_vjc
 8    1 0xc2296000 4000     ng_bpf.ko
                243 ng_bpf

Hmmm, I'm sure I saw ng_pppoe.ko was there too on my attempts with rc2
before, though they had also all come up with exactly the same error:

mpd: [PPPoE] can't connect "bypass.inet"->"iface" and "ng0:"->"inet": File exists
mpd: [PPPoE] netgraph initialization failed

One thing makes me a bit nervous: those ipv6 and inet6 hooks.  kernel is
compiled without INET6, new kernel/world built with make.conf having: 
NOINET6=true	# do not build IPv6 related programs and libraries
WITHOUT_IPV6=true

Hope that's enough but not too much info.

Cheers, Ian




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?Pine.BSF.3.96.1070304014221.12009B-100000>