if_start() and sending packets problem
Tofig Suleymanov
tofig at freebsd.az
Sat Feb 16 08:40:10 UTC 2008
Hello hackers,
I will be grateful if someone could point me to the right direction
regarding the question below.
My device driver is getting incoming packets fine, but for some reason I
am not able to send a single packet. Here is the source code:
http://www.freebsd.az/if_ib.c
I've added several debug messages to the source and here is the output:
(bringing interface up and assigning the ip/netmask combination)
ifconfig ib0 192.168.0.6 netmask 255.255.255.0 up
(At this moment I get this in my /var/log/messages. It seems to be a
gratuitous arp who-has packet )
Feb 7 19:14:32 schizo kernel: ib_init entered
Feb 7 19:14:32 schizo kernel: ib_start entered
Feb 7 19:14:32 schizo kernel: ib_encap entered
Feb 7 19:14:32 schizo kernel: DHOST ff ff ff ff ff ff
Feb 7 19:14:32 schizo kernel: SHOST 0 c0 ee 22 3 14
Feb 7 19:14:32 schizo kernel: txeof entered
Feb 7 19:14:32 schizo kernel: txeof exiting
(now I try pinging, but no joy . I've added extra debug messages inside
ping.c)
schizo# ping 192.168.0.1
PING 192.168.0.1 (192.168.0.1): 56 data bytes
packets sent: -1
ping: sendto: Invalid argument
packets sent: -1
ping: sendto: Invalid argument
packets sent: -1
ping: sendto: Invalid argument
^C
--- 192.168.0.1 ping statistics ---
3 packets transmitted, 0 packets received, 100% packet loss
I have also tried to add debug messages to sys/net/if.c and
sys/net/netisr.c and it seems that the kernel doesn't even try to run my
ib_start() function.
Doing tcpdump on the interface and pinging does not show any packets
flowing. Please note that tcpdump shows the arp who-has request right
after I assign the ip address.
ifconfig ib0 gives the following:
ib0: flags=1008c3<UP,BROADCAST,RUNNING,NOARP,SIMPLEX,NEEDSGIANT> mtu 1500
inet 192.168.0.5 netmask 0xffffff00 broadcast 192.168.0.255
ether 00:c0:ee:22:03:14
media: Ethernet 10baseT/UTP
status: active
netstat -in gives the following output:
Name Mtu Network Address Ipkts Ierrs Opkts Oerrs Coll
bge0* 1500 <Link#1> 00:16:41:52:fb:1e 0 0 0 0 0
iwi0 1500 <Link#2> 00:13:ce:cc:b8:10 3065 0 2856 0 0
iwi0 1500 192.168.1 192.168.1.5 3034 - 2825 - -
lo0 16384 <Link#3> 8 0 8 0 0
lo0 16384 127 127.0.0.1 8 - 8 - -
ib0 1500 <Link#4> 00:c0:ee:22:03:14 4 0 2 0 0
ib0 1500 192.168.0 192.168.0.5 0 - 3 - -
Any ideas are highly appreciated.
More information about the freebsd-hackers
mailing list