if_start() and sending packets problem
Max Laier
max at love2party.net
Sat Feb 16 14:00:29 UTC 2008
Am Sa, 16.02.2008, 09:11, schrieb Tofig Suleymanov:
> 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
Why do you set NOARP? It seems that your ping can't figure out the ARP
address of 192.168.0.1 and hence returns early. Either install a static
arp entry for 192.168.0.1 or lose the NOARP.
> 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.
--
/"\ Best regards, | mlaier at freebsd.org
\ / Max Laier | ICQ #67774661
X http://pf4freebsd.love2party.net/ | mlaier at EFnet
/ \ ASCII Ribbon Campaign | Against HTML Mail and News
More information about the freebsd-hackers
mailing list