Feed for discussion Technology in project Networking. Posts for Technology post122443: How to mount lsm module to io-pkt by mount() Vic One(deleted) http://community.qnx.com/sf/go/post122443 2023-11-29T09:16:30Z 2023-11-29T09:16:30Z Hi, I have a question. According to the page: https://www.qnx.com/developers/docs/7.0.0/index.html#com.qnx.doc.neutrino.resmgr/topic/messages_mount_function.html it seems like I could mount .so file (for packet filtering) to io-pkt by mount() function. I can mount my lsm.so to io-pkt by mount utility (as the following command): mount -T io-pkt /lib/dll/lsm-pf-test.so but I don't know how to pass the parameters to mount() function. Any suggestion? Thanks. Vic One(deleted) 2023-11-29T09:16:30Z post122360: Re: A guest of hypervisor, how to get the physical status of ethernet interface? Nick Reilly http://community.qnx.com/sf/go/post122360 2023-08-09T18:23:41Z 2023-08-09T18:23:41Z I think you are going to have to code your own solution, I haven't seen a generic solution. Nick Reilly 2023-08-09T18:23:41Z post122359: Re: A guest of hypervisor, how to get the physical status of ethernet interface? zhaio kll(deleted) http://community.qnx.com/sf/go/post122359 2023-08-09T15:47:11Z 2023-08-09T15:47:11Z Thanks for your answer. In my system, host need use the network interface, so can’t set up pass-through device, is there any other solution? zhaio kll(deleted) 2023-08-09T15:47:11Z post122358: Re: A guest of hypervisor, how to get the physical status of ethernet interface? Nick Reilly http://community.qnx.com/sf/go/post122358 2023-08-09T15:08:57Z 2023-08-09T15:08:57Z The guest virtual interface is just reporting its connection to the host virtual interface. The host physical interface is a completely separate interface and you would need to use some other unrelated mechanism to report its state to the guest. If the host physical interface is only used by this guest and not by the host or any other guests, then you could do a passthrough of the hardware. Nick Reilly 2023-08-09T15:08:57Z post122357: A guest of hypervisor, how to get the physical status of ethernet interface? zhaio kll(deleted) http://community.qnx.com/sf/go/post122357 2023-08-09T02:01:26Z 2023-08-09T02:01:26Z Hi all: I creat a hepervisor, and guest is andriod OS. When I unpulged network cable, the virtual network interface of guest is still carrier. I want to know guest how to get the physical status of network interface. Or, host (QNX OS) how get the physical status of network interface through interrupt or blocking instead of polling, I think that is also feasible for the host to notify the guest. Thanks in advance! Zhao Hengyi zhaio kll(deleted) 2023-08-09T02:01:26Z post122155: Making Ethernet interface up/down from io-pkt Prasanth O http://community.qnx.com/sf/go/post122155 2023-03-02T13:44:14Z 2023-03-02T13:44:14Z In my application, in a specific scenario, I need to put the tsec0 interface down, and should make tsec1 up. This part should be executed from QNX 'iopkt' TCP/IP stack subsystem. I tried calling the below command from there... system ("ifconfig tsec0 down"); But when I ran this program, the device got restarted with the following message "SpvAbort SpvTaskTimeout task UDP". Later I searched for options through 'ioctl 'command. But I didn't get any direct options. Instead I saw few options to delete/add interface addresses. I tried with the below one to remove the IPI from tsec0 interface. qnw_iface_list[0].if_net->if_ioctl (qnw_iface_list[0].if_net, SIOCDIFADDR, (caddr_t)&ifmr); But this one also didn't help. Even though the command got executed, didn't find any change in device behavior. I was still able to ping tsec0. Here I need the guidance on how to make the ethernet interface down/up programmatically from 'iopkt' subsystem. I am pretty new to QNX world, so pls bear with me on the trivial questions. Prasanth O 2023-03-02T13:44:14Z post122037: Re: dhcpd not quite working Thomas Sosinski http://community.qnx.com/sf/go/post122037 2022-12-19T18:21:57Z 2022-12-19T18:21:57Z Thank you Ivo Kostadinov. That did help! Thomas Sosinski 2022-12-19T18:21:57Z post121715: Re: Malloc check failed Ohad Oz(deleted) http://community.qnx.com/sf/go/post121715 2022-02-09T10:30:07Z 2022-02-09T10:30:07Z have you identified the root cause of this issue? I face it too. it is inconsistent and the code dump doesn't point to the error. Ohad Oz(deleted) 2022-02-09T10:30:07Z post121600: Re: RE: broadcast using 255.255.255.255 actually sends 192.168.0.255 Zavvio Mok(deleted) http://community.qnx.com/sf/go/post121600 2021-09-24T20:10:17Z 2021-09-24T20:10:17Z Thank you for the post. Using SO_BINDTODEVICE option to bind socket to network interface is proved to be necessary to bypass QNX's broadcast limitation. struct ifreq ifr; memset(&ifr, 0, sizeof(ifr)); strncpy(ifr.ifr_name, "en0", sizeof("en0")); setsockopt (sock, SOL_SOCKET, SO_BINDTODEVICE, (char *)&ifr, sizeof ifr) Also had to explicitly add a route for 255.255.255.255 to QNX's current IP address, and thus its current network interface's up-link, e.g. "route add 255.255.255.255 <current IP address>". # ifconfig lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> mtu 33192 inet 127.0.0.1 netmask 0xff000000 fec0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500 address: 00:10:ea:92:79:d7 media: Ethernet autoselect (100baseTX full-duplex) status: active inet 192.168.250.100 netmask 0xffffff00 broadcast 192.168.250.255 # route show Routing tables Internet: Destination Gateway Flags localhost.localdom 127.0.0.1 UH 192.168.250.0/24 link#2 U 192.168.250.100 00:10:ea:92:79:d7 UHL 255.255.255.255 192.168.250.100 UGH Zavvio Mok(deleted) 2021-09-24T20:10:17Z post121418: Re: telnet and ftp not working after mount root directory( / ) to QNX6 fs song shizhe http://community.qnx.com/sf/go/post121418 2021-05-18T02:03:31Z 2021-05-18T02:03:31Z Thanks very much, it is working well after add mntperms option. song shizhe 2021-05-18T02:03:31Z post121416: Re: telnet and ftp not working after mount root directory( / ) to QNX6 fs Roger Maclean http://community.qnx.com/sf/go/post121416 2021-05-17T12:09:58Z 2021-05-17T12:09:58Z PAM, which is used for authenticating users, requires that all directories leading up to the directories containing its config files and modules are owned by root and do not have group or other write permissions. When you mount another file system at /, it will likely be making / group writable. To fix this you need to mount the file system with the option mntperms=755. Roger Maclean 2021-05-17T12:09:58Z post121413: telnet and ftp not working after mount root directory( / ) to QNX6 fs song shizhe http://community.qnx.com/sf/go/post121413 2021-05-17T08:03:54Z 2021-05-17T08:03:54Z software: QNX 7.1 before, root directory( / ) is mount on ifs by default, telnet and ftp is working well. when i mount a EMPTY qnx6 fs on /, just like mount -t qnx6 /dev/emmc0t179 / after that, all files on original ifs are already exist, everything seems same as before. but when i telnet to my board, there is an error message on my termial: QNX Neutrino (localhost) (ttyp0) login: root Login incorrect and i already tried restart inetd, there are some output on inetd debug messages: # inetd -d ADD : telnet proto=tcp, wait.max=0.40, user:group=root: builtin=0 server=/usr/sbin/telnetd policy= registered /usr/sbin/telnetd on 4 ADD : ftp proto=tcp, wait.max=0.40, user:group=root: builtin=0 server=/usr/sbin/ftpd policy= registered /usr/sbin/ftpd on 5 someone wants telnet accept, ctrl 3 204822 execl /usr/sbin/telnetd ftp is same , i got similar result. does anyone can help? thanks. Regards song shizhe 2021-05-17T08:03:54Z post120904: Re: Multiple LAN cannot work concurrently Una Springer(deleted) http://community.qnx.com/sf/go/post120904 2020-08-24T17:16:26Z 2020-08-24T17:16:26Z > Man you just have to configure the routers again as i know. Nothing extremly > hard or anything like that. I see you guys trying to show off all of your > brains and knowledge aquired at the programming courses. Or maybe i am just > too stupid in this domain as i left programming in like 2 or 3 years. :D . I > do remember when i was going for a cisco programming course, at the exam we > had some questions that i couldn't find anything in my head. Before the exam i > entered the [url=https://www.spotoclub.com/]spotoclub.com[/url] site to find all the possible answers, so it is > nothing surprising that i couldn't obtain anything with programming. Ohh, and i thought i was the only one to do so! Una Springer(deleted) 2020-08-24T17:16:26Z post120882: Re: Multiple LAN cannot work concurrently Virginia Berry(deleted) http://community.qnx.com/sf/go/post120882 2020-08-06T19:42:35Z 2020-08-06T19:42:35Z Man you just have to configure the routers again as i know. Nothing extremly hard or anything like that. I see you guys trying to show off all of your brains and knowledge aquired at the programming courses. Or maybe i am just too stupid in this domain as i left programming in like 2 or 3 years. :D . I do remember when i was going for a cisco programming course, at the exam we had some questions that i couldn't find anything in my head. Before the exam i entered the spotoclub.com site to find all the possible answers, so it is nothing surprising that i couldn't obtain anything with programming. Virginia Berry(deleted) 2020-08-06T19:42:35Z post120881: Re: Multiple LAN cannot work concurrently Una Springer(deleted) http://community.qnx.com/sf/go/post120881 2020-08-06T19:15:09Z 2020-08-06T19:15:09Z I get a pretty similar issue, i do not know why actually, but pretty usual i have to manualy aply the static ip, and even then it might not work. Una Springer(deleted) 2020-08-06T19:15:09Z post120879: Re: Multiple LAN cannot work concurrently Una Springer(deleted) http://community.qnx.com/sf/go/post120879 2020-08-06T00:29:20Z 2020-08-06T00:29:20Z Oh man, how stupid was i, i had exactly the same issue and it is actually so easy to make it work, thank you man, sorry for being 5 years late :D Una Springer(deleted) 2020-08-06T00:29:20Z post119884: Re: ipsec requirements Jared Roundy http://community.qnx.com/sf/go/post119884 2019-09-09T15:05:34Z 2019-09-09T15:05:34Z I was not starting the ipsec option. I am doing that and see Sep 09 09:11:42 5 14 0 initializing IPsec... done Sep 09 09:11:42 5 14 0 IPsec: Initialized Security Association Processing. So thanks for that help. I am still seeing the same issues as before though (errno 22 and 247). Any other ideas? I can switch my code to QNX 7 to see if I have any more messages from sloginfo, but that may not be completed until later in the week. Jared Roundy 2019-09-09T15:05:34Z post119883: Re: ipsec requirements Dean Denter http://community.qnx.com/sf/go/post119883 2019-09-09T12:03:47Z 2019-09-09T12:03:47Z Did you start io-pkt with the ipsec option? io-pkt-v6-hc -d<driver> -ptcpip ipsec Also, check for any errors in the slog output (in 7.0: "slog2info -biopkt,io_pkt_v6_hc") Dean Denter 2019-09-09T12:03:47Z post119882: ipsec requirements Jared Roundy http://community.qnx.com/sf/go/post119882 2019-09-06T22:55:39Z 2019-09-06T22:55:39Z I am trying to create a UDPv6 connection using ipsec. Is there more infrastructure I need to start up for ipsec other then the network stack (io-pkt-v6-hc)? Do I need to add any specific options to startup of the stack? I am getting errno 22 from the setsocketopt() call with the following code const char* outPolicyText = "out ipsec esp/transport//require"; ipsec_policy_t outPolicy = ipsec_set_policy(outPolicyText, strlen(outPolicyText)); if (setsockopt(mySocketHandle, IPPROTO_IP, IP_IPSEC_POLICY, outPolicy, ipsec_get_policylen(outPolicy))) { zError("setsockopt Error for outPolicy %d %s", errno, ipsec_strerror()); } else { zError("setsockopt Success for outPolicy"); } free(outPolicy); I get errno 247 from the socket() call with the following call int pfSocket = socket(PF_KEY, SOCK_RAW, PF_KEY_V2); I am running io-pkt-v6-hc on 6.5.0SP1. I can switch to 6.6 or 7.0 if that makes a difference. Thanks Jared Roundy 2019-09-06T22:55:39Z post119799: Re: Does Slinger webserver supports these features Shivaji T(deleted) http://community.qnx.com/sf/go/post119799 2019-07-30T21:13:38Z 2019-07-30T21:13:38Z Can soem tell what is best suited webserver in QNX, if we need to use for new projects? Shivaji T(deleted) 2019-07-30T21:13:38Z post119797: Re: Does Slinger webserver supports these features Nick Reilly http://community.qnx.com/sf/go/post119797 2019-07-30T20:27:42Z 2019-07-30T20:27:42Z slinger hasn't received any updates in a long time and has been removed from newer versions of QNX. You shouldn't be using it on any new projects. Nick Reilly 2019-07-30T20:27:42Z post119796: Does Slinger webserver supports these features Rajesh Jarang(deleted) http://community.qnx.com/sf/go/post119796 2019-07-30T18:31:37Z 2019-07-30T18:31:37Z Does Slinger Webserver (SDP 6.5.0 SP1) supports following features? * WebSockets * FastCGI * Redirect/ReWrite Rajesh Jarang(deleted) 2019-07-30T18:31:37Z post119709: Re: dhcpd not quite working Ivo Kostadinov http://community.qnx.com/sf/go/post119709 2019-05-22T02:55:24Z 2019-05-22T02:55:24Z Replying as I ran into this problem 8 years later ... Trying to keep dhcpd.leases in /tmp won't work as it is using the RAM filesystem. Put on any other filesystem however will work. Reason is found in the QNX documentation: "Note that /dev/shmem isn't actually a filesystem. It's a window onto the shared memory names that happens to have some filesystem-like characteristics." I finally got my dhcpd.leases working from RAM using ramdrive formatted as FAT: devb-ram ram nodinit,cache=512k disk name=hd@10 waitfor /dev/hd10 fdisk /dev/hd10 add -t 6 mount -e /dev/hd10 waitfor /dev/hd10t6 mkdosfs /dev/hd10t6 mount -t dos /dev/hd10t6 /root mkdir /root/leasesdb touch /root/leasesdb/dhcpd.leases chmod a+rw /root/leasesdb/dhcpd.leases dhcpd -lf /root/leasesdb/dhcpd.leases ural0 Hope this saves some time to the next guy Ivo Kostadinov 2019-05-22T02:55:24Z post119705: Re: DHCP inform not sent John Efstathiades http://community.qnx.com/sf/go/post119705 2019-05-14T16:14:03Z 2019-05-14T16:14:03Z To answer my own question: The dhclient use a packet filter to listen to replies from the DHCP server. The network driver must therefore include support for packet filtering in the receive path. My driver did not so dhclient was not seeing any messages from the DHCP server. Added the following code: #if NBPFILTER > 0 /* Pass this up to any BPF listeners. */ if (ifp->if_bpf) { bpf_mtap(ifp->if_bpf, m); } #endif to the receive path fixed the problem. This is mentioned briefly in the chapter Packet Filtering in the Core Networking with io-pkt User's Guide. John Efstathiades 2019-05-14T16:14:03Z post119702: DHCP inform not sent John Efstathiades http://community.qnx.com/sf/go/post119702 2019-05-10T17:37:27Z 2019-05-10T17:37:27Z Hello, I am having a problem with DHCP on a specific interface. The stack sends out a DHCP Discover message and then receives a DHCP Offer from the DHCP server but I don't see a DHCP Request sent out. If I run DHCP client in foreground with verbose output I see that it does not think the DHCP Offer has been received. I have instrumented the network driver and verified the DHCP Offer packet is received and is consistent with the data shown in Wireshark. This packet is passed to the stack. Is there any other stack or DHCP client logging I can use to determine why it is ignoring the DHCP Offer message? I am using the default QNX 7 SDP DHCP client configuration files. Thanks, John John Efstathiades 2019-05-10T17:37:27Z post119436: Re: ARP Request in qnx7 Nick Reilly http://community.qnx.com/sf/go/post119436 2019-01-22T15:23:22Z 2019-01-22T15:23:22Z I don't have sample code handy for this exact scenario. Google returns some hits, but I haven't tried them. If you need more support I would suggest getting in touch with your QNX support person. Nick Reilly 2019-01-22T15:23:22Z post119435: Re: ARP Request in qnx7 Jack Yu(deleted) http://community.qnx.com/sf/go/post119435 2019-01-22T15:06:36Z 2019-01-22T15:06:36Z Hi Nick, Thank you! Do you have any example code for that by any chance? Jack Yu(deleted) 2019-01-22T15:06:36Z post119423: Re: ARP Request in qnx7 Nick Reilly http://community.qnx.com/sf/go/post119423 2019-01-18T15:52:48Z 2019-01-18T15:52:48Z I would recommend using the BPF API. There are plenty of examples around on the Internet of how to send a packet with BPF. Nick Reilly 2019-01-18T15:52:48Z post119422: ARP Request in qnx7 Jack Yu(deleted) http://community.qnx.com/sf/go/post119422 2019-01-18T15:46:53Z 2019-01-18T15:46:53Z I am working on a function to sending arp request using network socket library in QNX7 invironment. It requires to send a broadcast ARP message (FF:FF:FF:FF:FF:FF MAC address) and receive a response from the destination with it MAC address. Does anyone have experience how to achieve this? Is there any code example? Thanks! Jack Yu(deleted) 2019-01-18T15:46:53Z post118874: QNX 6.5.0 - apparent (weird) route caching Miguel Valero http://community.qnx.com/sf/go/post118874 2018-06-13T21:25:22Z 2018-06-13T21:25:22Z Using this in our system: kern.osrelease = 6.5.0 kern.version = 2012/06/20-13:49:31EDT If the io-pkt gets an ICMP request to a host for which there is no specific route, the packet is sent to the default gateway. So far so good. But, when the route for the relevant subnet for that host is later added to the route table, ICMP requests keep on being routed to the default gateway. Once we enter this situation, the only way we have so far found for getting rid of this undesired caching is to remove and reinstall the default route, which is not a very nice thing to do. First we thought this was due to the fast forwarding feature, but we realized by code reading that ICMP is not supposed to create IP flows. Further, we tried, while in the "error" situation, sending ICMP requests with different TOS values, but all requests got still routed to the default gateway. We also tried disabling the fast forwarding altogether (hopefully), by setting net.inet.ip.maxflows = 0. The behavior did not change. Is there anyone that can explain why this behavior and how to overcome it? Thanks. Miguel Valero 2018-06-13T21:25:22Z post118461: Re: QNX 6.5.0 Fast Retransmission Robert Murrell http://community.qnx.com/sf/go/post118461 2018-01-24T22:38:59Z 2018-01-24T22:38:59Z I don't know if my previous attempt succeeded because the files were large. Here are smaller traces. File "events_delayed_start_01-23_1_rec_3043.pcapng" Wireshart trace. Filter on ip.addr==172.23.165.253. Record 3043 is where the problem starts. FIle "events_delayed_start_01-23_1_sp4_rec_520.pcap" is the tcpdump from 172.23.165.253. Record 520 is the packet that was lost. Robert Murrell 2018-01-24T22:38:59Z post118453: Re: QNX 6.5.0 Fast Retransmission Nick Reilly http://community.qnx.com/sf/go/post118453 2018-01-24T21:44:48Z 2018-01-24T21:44:48Z Fast retransmission is supported. It is triggered by a 3 duplicate ACKs being received. If your application isn't sending enough data that there are 3 more segments in flight after the lost segment to trigger the 3 duplicate ACKs then that would be why you are not seeing the fast retransmission. Do you have a wireshark trace showing the 3 duplicate ACKs? Nick Reilly 2018-01-24T21:44:48Z post118450: Re: QNX 6.5.0 Fast Retransmission Robert Murrell http://community.qnx.com/sf/go/post118450 2018-01-24T18:23:51Z 2018-01-24T18:23:51Z I ran sysclt -a on the troubled unit and here are the results. Of particular note are "net.inet.tcp.sack.enable = 1" and "net.inet.tcp.congctl.selected = newreno". If my reading is correct, Fast Retransmission is enabled and the packet loss should be detected. kern.ostype = QNX kern.osrelease = 6.5.0 kern.version = 2010/07/09-14:44:03EDT kern.hostname = localhost kern.clockrate: tick = 8403, hz = 119 kern.mbuf.msize = 256 kern.mbuf.mclbytes = 2048 kern.mbuf.nmbclusters = 8192 kern.mbuf.mblowat = 16 kern.mbuf.mcllowat = 8 kern.sbmax = 262144 net.inet.ip.forwarding = 0 net.inet.ip.redirect = 1 net.inet.ip.ttl = 64 net.inet.ip.forwsrcrt = 1 net.inet.ip.directed-broadcast = 0 net.inet.ip.allowsrcrt = 1 net.inet.ip.subnetsarelocal = 1 net.inet.ip.mtudisc = 1 net.inet.ip.anonportmin = 49152 net.inet.ip.anonportmax = 65535 net.inet.ip.mtudisctimeout = 600 net.inet.ip.maxflows = 256 net.inet.ip.hostzerobroadcast = 1 net.inet.ip.lowportmin = 600 net.inet.ip.lowportmax = 1023 net.inet.ip.maxfragpackets = 200 net.inet.ip.grettl = 0 net.inet.ip.checkinterface = 0 net.inet.ip.ifq.len = 0 net.inet.ip.ifq.maxlen = 256 net.inet.ip.ifq.drops = 0 net.inet.ip.random_id = 0 net.inet.ip.do_loopback_cksum = 0 net.inet.icmp.maskrepl = 0 net.inet.icmp.returndatabytes = 8 net.inet.icmp.errppslimit = 100 net.inet.icmp.rediraccept = 1 net.inet.icmp.redirtimeout = 600 net.inet.icmp.tstamprepl = 1 net.inet.tcp.rfc1323 = 1 net.inet.tcp.sendspace = 22528 net.inet.tcp.recvspace = 32768 net.inet.tcp.mssdflt = 536 net.inet.tcp.syn_cache_limit = 10255 net.inet.tcp.syn_bucket_limit = 105 net.inet.tcp.init_win = 0 net.inet.tcp.mss_ifmtu = 0 net.inet.tcp.sack.enable = 1 net.inet.tcp.sack.maxholes = 32 net.inet.tcp.sack.globalmaxholes = 1024 net.inet.tcp.sack.globalholes = 0 net.inet.tcp.win_scale = 1 net.inet.tcp.timestamps = 1 net.inet.tcp.compat_42 = 0 net.inet.tcp.cwm = 0 net.inet.tcp.cwm_burstsize = 4 net.inet.tcp.ack_on_push = 0 net.inet.tcp.keepidle = 14400 net.inet.tcp.keepintvl = 1 net.inet.tcp.keepcnt = 20 net.inet.tcp.slowhz = 2 net.inet.tcp.log_refused = 0 net.inet.tcp.init_win_local = 4 net.inet.tcp.rstppslimit = 100 net.inet.tcp.delack_ticks = 23 net.inet.tcp.hiwat_adjust = 1 net.inet.tcp.do_loopback_cksum = 0 net.inet.tcp.congctl.available = reno newreno net.inet.tcp.congctl.selected = newreno net.inet.tcp.ecn.enable = 0 net.inet.tcp.ecn.maxretries = 1 net.inet.tcp.iss_hash = 0 net.inet.tcp.abc.enable = 1 net.inet.tcp.abc.aggressive = 1 net.inet.udp.checksum = 1 net.inet.udp.sendspace = 9216 net.inet.udp.recvspace = 41600 net.inet.udp.do_loopback_cksum = 0 net.inet.arp.prune = 300 net.inet.arp.keep = 1118 net.inet.arp.down = 20 net.inet.arp.refresh = 300 net.bpf.maxbufsize = 1048576 hw.machine = x86pc hw.machine_arch = x86 hw.alignbytes = 3 qnx.kern.enmap = 1 qnx.net.inet.tcp.hiwat_adjust = 1 Robert Murrell 2018-01-24T18:23:51Z post118448: QNX 6.5.0 Fast Retransmission Robert Murrell http://community.qnx.com/sf/go/post118448 2018-01-24T14:39:11Z 2018-01-24T14:39:11Z We are using QNX 6.5.0 base install (not SR1). We can configure our products in a leader/follower (master/slave has been declared politically incorrect) setup where multiple units are interconnected and communicate to each other via TCP. We normally experience an acceptable up to 300 ms command/response times with this setup. However, we occasionally lose a packet from one of the followers. When this happens, there is a 1.5 second or longer delay before TCP retransmits. I have confirmed the packet loss by simultaneously monitoring the internal traffic using tcpdump and the output traffic with Wireshark. The actual packet loss seems to be an incompatibility between the card we are using and our internal switch. I am working with our vendor to find a solution. I have a question about io-pkt-v4, which we are using. RFC2581, TCP Congestion Control, Secion 3.2 describes TCP Fast Retransmissions, which should alleviate this problem. I'm guessing that io-pkt-v4 does not support this RFC. We have avoided upgrading to SR1 due to the amount of regression testing of our product with such a change. Is RFC2581 supported in later releases of io-pkt-v4? Robert Murrell 2018-01-24T14:39:11Z post118160: Re: SSH mux'd connections don't work David Alessio http://community.qnx.com/sf/go/post118160 2017-10-30T22:36:19Z 2017-10-30T22:36:19Z This issue has come up for me again. Has the fixed been pushed to io-pkt? Thanks, -david David Alessio 2017-10-30T22:36:19Z post117687: Re: Radius client and Syslog client Nick Reilly http://community.qnx.com/sf/go/post117687 2017-05-01T14:26:56Z 2017-05-01T14:26:56Z For radius support with PAM in SDP7 we use FreeBSD's libradius. For syslog support make sure you are running syslogd and that your messages are going to syslogd and not to sloginfo. Regards, Nick. Nick Reilly 2017-05-01T14:26:56Z post117686: Radius client and Syslog client Frederic Paolucci(deleted) http://community.qnx.com/sf/go/post117686 2017-04-28T15:44:03Z 2017-04-28T15:44:03Z Hello, I need to do 2 things on my QNX 6.5 (ARM9) product: * Implement a Radius client (in order to communicate with a Radius server - ie FreeRadius on Windows) * Implement a Syslog client (in order to communicate with a Syslog server - ie Kiwi on Windows) For Radius client, I could not find any QNX implementation; looks like "Mocana" company had a Radius client available, but it seems this company stopped maintaining that library. So, I could not find any other Radius Client QNX implementation. For Syslog client, default QNX syslog implementation does not match my needs, because if can only write a message on system log, whereas I want to write messages on a remote server. So, I could not find any other Syslog client implementation. For now, my only way to implement Radius client and Syslog client on QNX is to download Linux source code, and try to compile it on QNX. But it may be a nightmare... Do you have any better proposal? Thanks, Frederic Frederic Paolucci(deleted) 2017-04-28T15:44:03Z post116409: Re: I want to control network card buffer Nick Reilly http://community.qnx.com/sf/go/post116409 2016-06-13T12:56:24Z 2016-06-13T12:56:24Z You can use pf to configure an ALTQ for default traffic with a bandwidth slightly less than the actual link. This means that the packets will build up in the ALTQ buffer rather than in the network card Tx descriptors. You can then send your traffic via a separate higher priority ALTQ. Note that 250us is a very tight requirement, the default tick in QNX is 1ms. Nick Reilly 2016-06-13T12:56:24Z post116407: I want to control network card buffer i b(deleted) http://community.qnx.com/sf/go/post116407 2016-06-12T01:23:52Z 2016-06-12T01:23:52Z I want to control the card buffer send messages, because I need to send once every 250 microseconds, can anyone give me a demo? i b(deleted) 2016-06-12T01:23:52Z post116297: Re: QNX 6.5.0 io-pkt-v4 crash Robert Murrell http://community.qnx.com/sf/go/post116297 2016-05-17T17:34:18Z 2016-05-17T17:34:18Z Sorry, no. It expired 5 years ago. Robert Murrell 2016-05-17T17:34:18Z post116296: Re: QNX 6.5.0 io-pkt-v4 crash Nick Reilly http://community.qnx.com/sf/go/post116296 2016-05-17T17:05:57Z 2016-05-17T17:05:57Z Had a quick look at the code and I see something suspicious, I think if we get a legitimate ARP request while we are probing with ARP then we may believe that is another host with that address. Do you have a support contract in place to raise this issue through? Nick Reilly 2016-05-17T17:05:57Z post116295: Re: QNX 6.5.0 io-pkt-v4 crash Robert Murrell http://community.qnx.com/sf/go/post116295 2016-05-17T14:28:12Z 2016-05-17T14:28:12Z Nick, I don't know about the Cisco device. It is managed by our IT department and locked somewhere in a dark room. We are using the base release QNX 6.5.0 dhcp.client. Can you confirm that the latest dhcp.client does not do this? Robert Murrell 2016-05-17T14:28:12Z post116294: Re: QNX 6.5.0 io-pkt-v4 crash Nick Reilly http://community.qnx.com/sf/go/post116294 2016-05-17T13:49:03Z 2016-05-17T13:49:03Z When given an address dhcp.client will send ARP requests to validate that the address is not in use before using it. You can see the first ARP at row 4 in the CSV, note that it sends an ARP broadcast. What's interesting is row 18, the Cisco sends a directed ARP to the device and the device replies. I suspect this is getting picked up as an ARP reply from someone else and causing dhcp.client to believe that someone else has the address already. 1) Is proxy ARP enabled on the Cisco device? 2) Are you up to date on your version of dhcp.client? Nick Reilly 2016-05-17T13:49:03Z post116293: Re: QNX 6.5.0 io-pkt-v4 crash Robert Murrell http://community.qnx.com/sf/go/post116293 2016-05-17T13:23:17Z 2016-05-17T13:23:17Z I looked a little closer at the Wireshark traces at the lease renewal and have found something odd. I've attached a partial Wireshark trace as a CSV file. The first line shows 'AdlinkTe_0e:b0:e5' renewing its lease. This is our device running QNX 6.5.0 dhcp.client. The second line shows the DCHP server ACKing the request. The last line shows our device issuing a DHCP Decline on the renewal. Shortly after, it issues a DHCP Request. This is likely the root cause of our problem. Why did dhcp.client issue DHCP Decline? Robert Murrell 2016-05-17T13:23:17Z post116270: Re: QNX 6.5.0 io-pkt-v4 crash Robert Murrell http://community.qnx.com/sf/go/post116270 2016-05-11T14:29:23Z 2016-05-11T14:29:23Z Thanks, Nick. I never new of this "feature" of the DHCP protocol. Our vendor is looking into the devn-vortex driver crash, and we can switch from the devnp-i82544 driver to the latest devnp-e1000 driver. We can also restrict the use of our devices to have infinite leases or static IP addresses. One last question, though. If dhcp.client gets the same address that it had been using, will it do anything to disrupt open TCP connections? Our devices run a proprietary protocol server. When an external device connects, it keeps the socket open indefinitely exchanging information. We are seeing this connection broken sometimes when the renewal address is the same as the original lease address. Robert Murrell 2016-05-11T14:29:23Z post116268: Re: QNX 6.5.0 io-pkt-v4 crash Nick Reilly http://community.qnx.com/sf/go/post116268 2016-05-11T13:13:16Z 2016-05-11T13:13:16Z dhcp.client will renew the lease at the time specified in the options if the server provides it. If the server doesn't provide a renewal time option then it will use half of the lease time as the renewal time. Doing renewal shouldn't crash your driver. Regards, Nick. Nick Reilly 2016-05-11T13:13:16Z post116267: Re: QNX 6.5.0 io-pkt-v4 crash Robert Murrell http://community.qnx.com/sf/go/post116267 2016-05-11T12:56:15Z 2016-05-11T12:56:15Z I found the root cause of the crashing. After a day or so of normal running, dhcp.client will spontaneously request a new address. Most times, the server will reassign the same address. Sometimes the application layers will not detect a problem. Other times they will detect a socket error but reconnect. Other times the server will assign a new address and the application layer will disconnect and remain so until manually reconfigured. A very few times, the ethernet card driver will generate a segmentation fault and crash io-pkt-v4. Our DHCP server provides leases for 24 hours. It periodically send ARP requests to see what addresses are still being used and will reserve that address even if the lease has expired. I am using Wireshark to monitor all activity through a hub (not a switch). I see normal communications right up to the point of the DHCP request. So, under what conditions will dhcp.client spontaneously request a new address? P.S. I want to thank everone for being responsive concerning this older product. Robert Murrell 2016-05-11T12:56:15Z post116236: Re: QNX 6.5.0 io-pkt-v4 crash Hugh Brown http://community.qnx.com/sf/go/post116236 2016-05-06T12:40:42Z 2016-05-06T12:40:42Z I can¹t make any sense from the core file, but why are you using the devnp-i82544.so driver? This driver has been replaced by the devnp-e1000.so driver. You can find the e1000 driver here: devnp-e1000.so <http://community.qnx.com/sf/frs/do/downloadFile/projects.bsp/frs.network_d river_updates.latest_io_pkt_network_drivers_0/frs134039?dl=1> On 2016-05-05, 2:35 PM, "Robert Murrell" <community-noreply@qnx.com> wrote: >We had another io-pkt-v4 crash, this time on a port with the >devnp-i82544.so driver. I use gdb backtrace command and get the >following: > >#0 0x08085844 in segv_handler () >#1 <signal handler called> >#2 0xb034bcfb in _resmgr_detach_id () from >C:/QNX650/target/qnx6/x86/lib/libc.so.3 >#3 0xb0335a52 in resmgr_detach () from >C:/QNX650/target/qnx6/x86/lib/libc.so.3 >#4 0x00000000 in ?? () > >I'm not sure what to make of this info, or if I'm using gdb correctly. >Any insight as to the cause of the crash? Core file is attached. > > > >_______________________________________________ > >Technology >http://community.qnx.com/sf/go/post116231 >To cancel your subscription to this discussion, please e-mail >technology-networking-unsubscribe@community.qnx.com Hugh Brown 2016-05-06T12:40:42Z post116231: Re: QNX 6.5.0 io-pkt-v4 crash Robert Murrell http://community.qnx.com/sf/go/post116231 2016-05-05T18:35:02Z 2016-05-05T18:35:02Z We had another io-pkt-v4 crash, this time on a port with the devnp-i82544.so driver. I use gdb backtrace command and get the following: #0 0x08085844 in segv_handler () #1 <signal handler called> #2 0xb034bcfb in _resmgr_detach_id () from C:/QNX650/target/qnx6/x86/lib/libc.so.3 #3 0xb0335a52 in resmgr_detach () from C:/QNX650/target/qnx6/x86/lib/libc.so.3 #4 0x00000000 in ?? () I'm not sure what to make of this info, or if I'm using gdb correctly. Any insight as to the cause of the crash? Core file is attached. Robert Murrell 2016-05-05T18:35:02Z post116206: Re: QNX 6.5.0 io-pkt-v4 crash Robert Murrell http://community.qnx.com/sf/go/post116206 2016-05-03T19:59:46Z 2016-05-03T19:59:46Z Thank you for this very good information. We have the source code to the devn-vortex driver and I'll be able to pin it down. Robert Murrell 2016-05-03T19:59:46Z post116205: Re: QNX 6.5.0 io-pkt-v4 crash Nick Reilly http://community.qnx.com/sf/go/post116205 2016-05-03T19:55:27Z 2016-05-03T19:55:27Z It's a crash in the devn-vortex.so driver when handling a request to add a multicast address. Here's a sanitised backtrace: #0 segv_handler #1 0xb031a32d in ?? () #2 0xb820e370 in ?? () #3 0xb820bbcf in ?? () #4 0xb8205297 in shim_filter #5 0xb8202887 in shim_ioctl #6 0x08072273 in in_addmulti I don't think the devn-vortex.so is a QNX driver so you will have to contact the supplier of it for support with that. To help with decoding, devn-vortex.so is loaded in at 0xb8209000 so you should be able to objdump it and work out where it is crashing. Nick Reilly 2016-05-03T19:55:27Z post116204: Re: QNX 6.5.0 io-pkt-v4 crash Robert Murrell http://community.qnx.com/sf/go/post116204 2016-05-03T19:03:34Z 2016-05-03T19:03:34Z I don't know how to get the backtrace info, but here is the core file. Robert Murrell 2016-05-03T19:03:34Z post116202: Re: QNX 6.5.0 io-pkt-v4 crash Nick Reilly http://community.qnx.com/sf/go/post116202 2016-05-03T17:50:10Z 2016-05-03T17:50:10Z Can you get the backtrace from the corefile? Nick Reilly 2016-05-03T17:50:10Z post116201: QNX 6.5.0 io-pkt-v4 crash Robert Murrell http://community.qnx.com/sf/go/post116201 2016-05-03T17:37:48Z 2016-05-03T17:37:48Z We are using the base 6.5.0 (not SR1) on an x86. Occasionally, io-pkt-v4 will crash. I've managed to capture slogger output and a .core file of the crash. The crash happens after one and three days of operation. We are reluctant to upgrade to SR1 unless it will fix the problem. An upgrade will require a lot of regression testing and revalidation and we would like to avoid this. Here is the details of the crash. If this is a known issue please let me know how to avoid it. Slogger details: Apr 23 18:21:39 5 21 0 run fault pid 20491 tid 2 signal 11 code 1 ip 0x8085844 proc/boot/io-pkt-v4 /qpm/bin/io-pkt-v4.core: processor=X86 num_cpus=1 cpu 1 cpu=586 name=Vortex86 SoC 586 F5M2S2 speed=800 flags=0xc000001f FPU MMU CPUID RDTSC INVLPG WP BSWAP cyc/sec=800223700 tod_adj=1461272031260566669 nsec=163668191934739 inc=999847 boot=2580547226 epoch=1970 intr=0 rate=838095345 scale=-15 load=1193 MACHINE="x86pc" HOSTNAME="localhost" pid=20491 parent=1 child=0 pgrp=20491 sid=1 flags=0x003210 umask=0 base_addr=0x8048000 init_stack=0x8047ea0 ruid=0 euid=0 suid=0 rgid=0 egid=0 sgid=0 ign=0000000006800000 queue=ff00000000010000 pending=0000000000000000 fds=5 threads=2 timers=1 chans=19 canstub=0xb0320680 sigstub=0xb031a30c thread 1 ip=0xb033e262 sp=0x8047dcc stkbase=0x7fc7000 stksize=528384 state=SIGWAITINFO flags=80000000 last_cpu=1 timeout=00000000 pri=21 realpri=21 policy=RR thread 2 SIGNALLED-SIGSEGV code=1 MAPERR refaddr=0 fltno=11 ip=0x8085844 sp=0x7fa1528 stkbase=0x7fa6000 stksize=135168 state=STOPPED flags=84000000 last_cpu=1 timeout=00000000 pri=14 realpri=14 policy=RR Robert Murrell 2016-05-03T17:37:48Z post116111: Examining packet filter in/out chain from within a hook peter graham(deleted) http://community.qnx.com/sf/go/post116111 2016-04-15T17:24:42Z 2016-04-15T17:24:42Z To help diagnose a difficult-to-reproduce issue with an io-pkt filter I've built, I've made a filter that attaches both to the head and tail of the input and output filter queues. It also walks the filter chain when added (via the pfil_entry function), and it seems to list all the filters correctly. For each incoming packet, the filter is called twice: once from the head of the filter chain, and once from the tail. The filter I'm trying to troubleshoot is one that wraps our own IPSec implementation. So, for incoming packets, I expect to see an AH header on one side of the filter chain, but not on the other. And this is what I observe: Apr 15 09:26:13 localhost io-pkt-v4-hc: QUEUE_HEAD:QNX_DEBUG_output_hook BEGIN Apr 15 09:26:12 localhost io-pkt-v4-hc: Src: 192.168.3.54 Dst: 226.0.0.1 If: en0 Proto: IPPROTO_AH Len: 160 ID: 19955 Sum: 50520 Apr 15 09:26:12 localhost io-pkt-v4-hc: QUEUE_HEAD:QNX_DEBUG_input_hook END (IPSec filter is called in here) Apr 15 09:26:12 localhost io-pkt-v4-hc: QUEUE_TAIL:QNX_DEBUG_input_hook BEGIN Apr 15 09:26:12 localhost io-pkt-v4-hc: Src: 192.168.3.54 Dst: 226.0.0.1 If: en0 Proto: IPPROTO_UDP Len: 136 ID: 19955 Sum: 50578 Apr 15 09:26:12 localhost io-pkt-v4-hc: QUEUE_TAIL:QNX_DEBUG_input_hook END You can see the incoming packet has an AH header, and after IPSec handles the packet, it's just the UDP packet that was wrapped by the AH header. So far, so good. But outgoing packets don't seem to behave this way: Apr 15 09:26:13 localhost io-pkt-v4-hc: QUEUE_HEAD:QNX_DEBUG_output_hook BEGIN Apr 15 09:26:13 localhost io-pkt-v4-hc: Src: 192.168.2.21 Dst: 226.0.0.1 If: en0 Proto: IPPROTO_UDP Len: 54 ID: 63543 Sum: 8200 Apr 15 09:26:13 localhost io-pkt-v4-hc: QUEUE_HEAD:QNX_DEBUG_output_hook END (IPSec filter is called in here) Apr 15 09:26:13 localhost io-pkt-v4-hc: QUEUE_TAIL:QNX_DEBUG_output_hook BEGIN Apr 15 09:26:13 localhost io-pkt-v4-hc: Src: 192.168.2.21 Dst: 226.0.0.1 If: en0 Proto: IPPROTO_UDP Len: 54 ID: 63543 Sum: 8200 Apr 15 09:26:13 localhost io-pkt-v4-hc: QUEUE_TAIL:QNX_DEBUG_output_hook END Both the filter on the head and tail of the output hook chain show there's no AH header. However, a tcpdump locally and on a remote computer show the AH header is present. Is outgoing traffic handled fundamentally different than the input? I know the IPSec filter is working, but I don't see the changes it makes from other filters in the output chain. peter graham(deleted) 2016-04-15T17:24:42Z post116109: Re: I want to capture packets. Nick Reilly http://community.qnx.com/sf/go/post116109 2016-04-14T12:40:55Z 2016-04-14T12:40:55Z There is also libpcap in QNX. In QNX libpcap is a wrapper on to the BPF layer so that can be used as well. Nick Reilly 2016-04-14T12:40:55Z post116105: I want to capture packets. i b(deleted) http://community.qnx.com/sf/go/post116105 2016-04-14T03:31:37Z 2016-04-14T03:31:37Z I want to capture packets. There libpcap under Linux, qnx how to achieve? i b(deleted) 2016-04-14T03:31:37Z post116015: How to set write no replay? i b(deleted) http://community.qnx.com/sf/go/post116015 2016-03-24T02:59:00Z 2016-03-24T02:59:00Z My code : wbpffd = open( bbuf, O_WRONLY|O_NONBLOCK); fcntl(wbpffd,F_SETFL,O_NONBLOCK); rc = write( wbpffd, framePtr, frameLen); write will some times Reply,how can I do remove Reply? i b(deleted) 2016-03-24T02:59:00Z post115758: Re: How to access target with ssh Nick Reilly http://community.qnx.com/sf/go/post115758 2016-02-17T14:25:36Z 2016-02-17T14:25:36Z Make a procmgr symbolic link for /etc/ssh to a writeable filesystem, even to /dev/shmem if you have nothing else. Nick Reilly 2016-02-17T14:25:36Z post115751: Re: How to access target with ssh Wenbin Fu http://community.qnx.com/sf/go/post115751 2016-02-17T00:40:25Z 2016-02-17T00:40:25Z sorry, I did not get sshd running successfully in target actually. sshd try to get key from /etc/ssh when i run sshd, but as you know, IFS image is read-only file system, I was not allow to run ssh-keygen to generate key in /etc/ssh by running ssh-keygen. do you have any idea on it? thanks - wenbin Wenbin Fu 2016-02-17T00:40:25Z post115747: RE: How to access target with ssh Roger Maclean http://community.qnx.com/sf/go/post115747 2016-02-16T13:54:42Z 2016-02-16T13:54:42Z I assume you have sshd running on the target and that you are able to connect to it manually. If so the problem is quite likely that the environment is wrong for any command Qt Creator tries to use. To fix it you'll have to ensure that sshd's configuration includes: PermitUserEnvironment yes and then configure /root/.ssh/environment to have the appropriate environment for Qt Creator (most likely missing things like PATH and LD_LIBRARY_PATH). When I ran into this a year or so ago I connected to the target using ssh and ran: env >/root/.ssh/environment ________________________________________ From: Wenbin Fu [community-noreply@qnx.com] Sent: Tuesday, February 16, 2016 3:48 AM To: technology-networking Subject: How to access target with ssh we are using qt-creator to write application based on QT, but qt-creator failed to connect to target via ssh. to support ssh to access target, what configuration should be done in target? thanks - wenbin _______________________________________________ Technology http://community.qnx.com/sf/go/post115741 To cancel your subscription to this discussion, please e-mail technology-networking-unsubscribe@community.qnx.com Roger Maclean 2016-02-16T13:54:42Z post115741: How to access target with ssh Wenbin Fu http://community.qnx.com/sf/go/post115741 2016-02-16T08:48:25Z 2016-02-16T08:48:25Z we are using qt-creator to write application based on QT, but qt-creator failed to connect to target via ssh. to support ssh to access target, what configuration should be done in target? thanks - wenbin Wenbin Fu 2016-02-16T08:48:25Z post115393: Re: I want to send the data link layer packets Nick Reilly http://community.qnx.com/sf/go/post115393 2016-01-04T14:57:33Z 2016-01-04T14:57:33Z You can't send raw Ethernet frames via a socket interface in QNX, only raw IP packets. To send raw Ethernet frames the easiest and best documented method is to use the BPF interface. If a higher performance is required it is possible to write a custom lsm or use lsm-nraw.so, but these are more complicated and should only be considered if BPF doesn't provide what you need. Nick Reilly 2016-01-04T14:57:33Z post115390: Re: Ethernet mutlicast Nick Reilly http://community.qnx.com/sf/go/post115390 2016-01-04T13:28:57Z 2016-01-04T13:28:57Z We do not have support for goose and gsse from IEC61850. You will need to either write your own or engage with a 3rd party. Nick Reilly 2016-01-04T13:28:57Z post115389: Re: Ethernet mutlicast Tim shu(deleted) http://community.qnx.com/sf/go/post115389 2016-01-04T06:07:10Z 2016-01-04T06:07:10Z I alse need in in goose and gsse in IEC61850 protocol stack.Please tell me some demos.Thanks! Tim shu(deleted) 2016-01-04T06:07:10Z post115383: I want to send the data link layer packets Tim shu(deleted) http://community.qnx.com/sf/go/post115383 2015-12-31T01:23:13Z 2015-12-31T01:23:13Z Hi,I want to write an application to run under QNX version 6.5.That application need to send the data link layer packets.I can't find socket (PF_PACKET, SOCK_RAW, htons(ETH_P_ALL)) .I had used PF_LINK instead,but it can't work.How can I send the data link layer packets? Tim shu(deleted) 2015-12-31T01:23:13Z post115332: Profiling an io-pkt filter? peter graham(deleted) http://community.qnx.com/sf/go/post115332 2015-12-16T16:18:19Z 2015-12-16T16:18:19Z So far, we've done all our debugging over serial, since debugging over TCP/IP with qconn has been problematic with a packet filter. I'd really like to take advantage of some of the memory analysis tools, but I can't think of a good workaround. Does anyone have tips for using some of the IDE features over serial? peter graham(deleted) 2015-12-16T16:18:19Z post115138: Re: Troubleshooting changes to packet with io-pkt Sean Boudreau(deleted) http://community.qnx.com/sf/go/post115138 2015-11-27T21:49:04Z 2015-11-27T21:49:04Z Check out 'netstat -pip', 'netstat -p icmp'. Did you update the checksum? Sent from my BlackBerry 10 smartphone on the Rogers network. Original Message From: peter graham Sent: Friday, November 27, 2015 4:22 PM To: technology-networking Reply To: technology-networking@community.qnx.com Subject: Troubleshooting changes to packet with io-pkt I have a packet filter which modifies some incoming packet data, but that packet doesn't seem to then make its way through to lower layers. For example, if I bypass the logic in my input hook, and send a ping, I see the input and output hook triggered correctly. However, once I process the incoming packet, there is no outgoing reply. Is there any way to debug what goes on after my filter is finished, or see what system calls it makes after that to determine where the process seems to go awry? _______________________________________________ Technology http://community.qnx.com/sf/go/post115137 To cancel your subscription to this discussion, please e-mail technology-networking-unsubscribe@community.qnx.com Sean Boudreau(deleted) 2015-11-27T21:49:04Z post115137: Troubleshooting changes to packet with io-pkt peter graham(deleted) http://community.qnx.com/sf/go/post115137 2015-11-27T21:22:34Z 2015-11-27T21:22:34Z I have a packet filter which modifies some incoming packet data, but that packet doesn't seem to then make its way through to lower layers. For example, if I bypass the logic in my input hook, and send a ping, I see the input and output hook triggered correctly. However, once I process the incoming packet, there is no outgoing reply. Is there any way to debug what goes on after my filter is finished, or see what system calls it makes after that to determine where the process seems to go awry? peter graham(deleted) 2015-11-27T21:22:34Z post115104: Re: Multiple LAN cannot work concurrently Nick Reilly http://community.qnx.com/sf/go/post115104 2015-11-24T13:42:46Z 2015-11-24T13:42:46Z That's not going to work. Each network adaptor needs to be attached to a different network. You are receiving the ARP error messages because io-pkt is receiving an ARP response on one interface for a network that it thinks is attached to a different interface. What are you trying to achieve by plugging two network adaptors in to the same interface? If you are looking for redundancy then the correct way to configure this is to create a bridge running STP with both interfaces as members in the bridge, and then connect to a managed switch that also runs STP. The STP will cause traffic to pass over one link and be blocked on the other. If the link passing traffic fails then STP will automatically switch to the other link. If you are instead looking for increased throughput then the correct way would be to use LACP to a managed switch that supports LACP. Unfortunately io-pkt doesn't support LACP at this time although it is a question we occasionally get asked about. Please contact your support representative if you are interested in LACP support. Nick Reilly 2015-11-24T13:42:46Z post115101: Multiple LAN cannot work concurrently Marcus Liang(deleted) http://community.qnx.com/sf/go/post115101 2015-11-24T10:29:02Z 2015-11-24T10:29:02Z Hi I have a device with two LAN ports, LAN1 is Intel 82579LM and LAN2 is Intel 82574. After update the driver(devnp-e1000.so and enum file), both LAN can be found through ifconfig which are wm0 and wm1. However, the LAN ports cannot work concurrently, if both LAN are connected to Ethernet cable with dhcp setting, both LAN can get IP but only LAN1 can be ping by remote device, LAN2 cannot be ping. Meanwhile, the system log would keep showing "d6:fe:7e:f5:d8:db on wm1 tried to write ARP info 176.14.15.254 on wm0". If I change it to static IP with different subnet, both ports can be ping but the "<some MAC> on wm1 tried to write ARP info <some IP> on wm0" still shows up. What should I do to solve this problem? Thanks for help. Marcus Liang(deleted) 2015-11-24T10:29:02Z post114209: Re: Questions about SNMP on QNX6.4.0 io-pkt Naresh Kumar(deleted) http://community.qnx.com/sf/go/post114209 2015-08-05T03:17:36Z 2015-08-05T03:17:36Z Hello David, Now a days I am struggling to configure the SNMP agent on the QNX 6.5. QNX SNMP daemon is not exposing the Host Resource group data. The configuration (/etc/mib.txt) file contains all the required information. The snmpget utility says – There is no such variable name in the MIB. But MIB contains this information. Do you have any experience in SNMP implementation on QNX 6.5? Regards, Naresh Naresh Kumar(deleted) 2015-08-05T03:17:36Z post114055: io-char S/W buffer overrun error Simon Barrett(deleted) http://community.qnx.com/sf/go/post114055 2015-07-02T10:37:55Z 2015-07-02T10:37:55Z Hi, I've been seeing "io-char: S/W buffer overrun error on " in my slog, can anyone tell me where its coming from? I'm using QNX 6.4, I've looked at the source for devc-ser8250 and there are similar format messages i.e. starting with io-char but this exact message. The application is sending data between serial ports. Thanks. Simon Barrett(deleted) 2015-07-02T10:37:55Z post113626: Re: SO_OVERFLOWED option Shinji Inotsume http://community.qnx.com/sf/go/post113626 2015-03-30T10:24:39Z 2015-03-30T10:24:39Z Thanks! Shinji Shinji Inotsume 2015-03-30T10:24:39Z post113622: Re: SO_OVERFLOWED option Nick Reilly http://community.qnx.com/sf/go/post113622 2015-03-27T14:57:59Z 2015-03-27T14:57:59Z Thanks! Nick. On 15-03-27 10:57 AM, Sean Boudreau wrote: > > The send on the AF_LOCAL socket turns it around and > appends it to the connected socket's recv buffer > so it also a drop due to a full recv buffer in that > case as well. > > On Fri, Mar 27, 2015 at 10:38:13AM -0400, Nick Reilly wrote: >> unp_output() increments sb_overflowed as well so isn't it also output >> ENOBUFS? I missed the ones in udp4_sendup() and udp6_sendup() so agree >> it will be drops on Rx but I think it does Tx drops as well. >> >> Regards, >> Nick. >> >> >> On 15-03-27 09:15 AM, Sean Boudreau wrote: >>> >>> it returns the number of packets that were dropped >>> on the socket due to a full recv buffer. >>> >>> On Fri, Mar 27, 2015 at 05:12:37AM -0400, Shinji Inotsume wrote: >>>> Does the SO_OVERFLOWED option of getsockopt() work correctly? >>>> >>>> /usr/include/sys/socket.h defines SO_OVERFLOWED option. >>>> However SO_OVERFLOWED option does not documented in getsockopt() of Library Reference. >>>> Also does not documented in NetBSB man page. >>>> >>>> What does getsockopt() return if work correctly? >>>> >>>> Thanks, >>>> >>>> >>>> >>>> _______________________________________________ >>>> >>>> Technology >>>> http://community.qnx.com/sf/go/post113615 >>>> To cancel your subscription to this discussion, please e-mail technology-networking-unsubscribe@community.qnx.com >>> >>> >>> >>> >>> _______________________________________________ >>> >>> Technology >>> http://community.qnx.com/sf/go/post113618 >>> To cancel your subscription to this discussion, please e-mail technology-networking-unsubscribe@community.qnx.com >>> >> >> >> >> >> _______________________________________________ >> >> Technology >> http://community.qnx.com/sf/go/post113620 >> To cancel your subscription to this discussion, please e-mail technology-networking-unsubscribe@community.qnx.com > > > > > _______________________________________________ > > Technology > http://community.qnx.com/sf/go/post113621 > To cancel your subscription to this discussion, please e-mail technology-networking-unsubscribe@community.qnx.com > Nick Reilly 2015-03-27T14:57:59Z post113621: Re: SO_OVERFLOWED option Sean Boudreau(deleted) http://community.qnx.com/sf/go/post113621 2015-03-27T14:57:07Z 2015-03-27T14:57:07Z The send on the AF_LOCAL socket turns it around and appends it to the connected socket's recv buffer so it also a drop due to a full recv buffer in that case as well. On Fri, Mar 27, 2015 at 10:38:13AM -0400, Nick Reilly wrote: > unp_output() increments sb_overflowed as well so isn't it also output > ENOBUFS? I missed the ones in udp4_sendup() and udp6_sendup() so agree > it will be drops on Rx but I think it does Tx drops as well. > > Regards, > Nick. > > > On 15-03-27 09:15 AM, Sean Boudreau wrote: > > > > it returns the number of packets that were dropped > > on the socket due to a full recv buffer. > > > > On Fri, Mar 27, 2015 at 05:12:37AM -0400, Shinji Inotsume wrote: > >> Does the SO_OVERFLOWED option of getsockopt() work correctly? > >> > >> /usr/include/sys/socket.h defines SO_OVERFLOWED option. > >> However SO_OVERFLOWED option does not documented in getsockopt() of Library Reference. > >> Also does not documented in NetBSB man page. > >> > >> What does getsockopt() return if work correctly? > >> > >> Thanks, > >> > >> > >> > >> _______________________________________________ > >> > >> Technology > >> http://community.qnx.com/sf/go/post113615 > >> To cancel your subscription to this discussion, please e-mail technology-networking-unsubscribe@community.qnx.com > > > > > > > > > > _______________________________________________ > > > > Technology > > http://community.qnx.com/sf/go/post113618 > > To cancel your subscription to this discussion, please e-mail technology-networking-unsubscribe@community.qnx.com > > > > > > > _______________________________________________ > > Technology > http://community.qnx.com/sf/go/post113620 > To cancel your subscription to this discussion, please e-mail technology-networking-unsubscribe@community.qnx.com Sean Boudreau(deleted) 2015-03-27T14:57:07Z post113620: Re: SO_OVERFLOWED option Nick Reilly http://community.qnx.com/sf/go/post113620 2015-03-27T14:38:14Z 2015-03-27T14:38:14Z unp_output() increments sb_overflowed as well so isn't it also output ENOBUFS? I missed the ones in udp4_sendup() and udp6_sendup() so agree it will be drops on Rx but I think it does Tx drops as well. Regards, Nick. On 15-03-27 09:15 AM, Sean Boudreau wrote: > > it returns the number of packets that were dropped > on the socket due to a full recv buffer. > > On Fri, Mar 27, 2015 at 05:12:37AM -0400, Shinji Inotsume wrote: >> Does the SO_OVERFLOWED option of getsockopt() work correctly? >> >> /usr/include/sys/socket.h defines SO_OVERFLOWED option. >> However SO_OVERFLOWED option does not documented in getsockopt() of Library Reference. >> Also does not documented in NetBSB man page. >> >> What does getsockopt() return if work correctly? >> >> Thanks, >> >> >> >> _______________________________________________ >> >> Technology >> http://community.qnx.com/sf/go/post113615 >> To cancel your subscription to this discussion, please e-mail technology-networking-unsubscribe@community.qnx.com > > > > > _______________________________________________ > > Technology > http://community.qnx.com/sf/go/post113618 > To cancel your subscription to this discussion, please e-mail technology-networking-unsubscribe@community.qnx.com > Nick Reilly 2015-03-27T14:38:14Z post113618: Re: SO_OVERFLOWED option Sean Boudreau(deleted) http://community.qnx.com/sf/go/post113618 2015-03-27T13:15:55Z 2015-03-27T13:15:55Z it returns the number of packets that were dropped on the socket due to a full recv buffer. On Fri, Mar 27, 2015 at 05:12:37AM -0400, Shinji Inotsume wrote: > Does the SO_OVERFLOWED option of getsockopt() work correctly? > > /usr/include/sys/socket.h defines SO_OVERFLOWED option. > However SO_OVERFLOWED option does not documented in getsockopt() of Library Reference. > Also does not documented in NetBSB man page. > > What does getsockopt() return if work correctly? > > Thanks, > > > > _______________________________________________ > > Technology > http://community.qnx.com/sf/go/post113615 > To cancel your subscription to this discussion, please e-mail technology-networking-unsubscribe@community.qnx.com Sean Boudreau(deleted) 2015-03-27T13:15:55Z post113617: Re: SO_OVERFLOWED option Nick Reilly http://community.qnx.com/sf/go/post113617 2015-03-27T12:59:26Z 2015-03-27T12:59:26Z It should return the number of packets dropped from the socket during output due to full socket buffers (ENOBUFS would be returned to the application). The code looks good but I haven't verified that it actually works. Nick Reilly 2015-03-27T12:59:26Z post113615: SO_OVERFLOWED option Shinji Inotsume http://community.qnx.com/sf/go/post113615 2015-03-27T09:12:37Z 2015-03-27T09:12:37Z Does the SO_OVERFLOWED option of getsockopt() work correctly? /usr/include/sys/socket.h defines SO_OVERFLOWED option. However SO_OVERFLOWED option does not documented in getsockopt() of Library Reference. Also does not documented in NetBSB man page. What does getsockopt() return if work correctly? Thanks, Shinji Inotsume 2015-03-27T09:12:37Z post113587: Re: SSH mux'd connections don't work Sean Boudreau(deleted) http://community.qnx.com/sf/go/post113587 2015-03-23T13:31:03Z 2015-03-23T13:31:03Z I'll try to look at this shortly and add link support for AF_LOCAL sockets to io-pkt. On Fri, Mar 20, 2015 at 07:13:01PM -0400, David Alessio wrote: > Hello, > > On a QNX machine, logged in as root ($HOME is /root), suppose I have the following file: > /root/.ssh/config > with the following contents: > Host * > ControlPath ~/.ssh/master-%l-%r@%h:%p > ControlMaster auto > > I should be able to establish an initial connection to a remote host such that subsequent connections are mux'd through the existing connection (and don't need to go through the CPU-intensive authentication dance). > > After recompiling and debugging openssh, it seems there are two issues: > 1) OpenSSH temporally creates (in mux.c) a socket file with a random string that's later hard-linked to a persistent fname and the original then unlinked (deleted). This fails with the error message akin to: > ln: xxx and yyy are on different file systems - > Can't create hard link. Use ln -s or make a copy. > > I'm guessing, that the socket file is managed by pipe whereas the ln (in C: link()) is attempting to create a hard link between pipe's pseudo FS and the underlying QNX4/6/NFS FS which fails for obvious reasons. > > 2) Having hacked OpenSSH/mux.c to "fix" the above issue, it seems that there's some inherent pathname length limit to the socket filename of 32. This is strange since sizeof(address.sun_path) is 104 where address is: > struct sockaddr_un address; > > So, my question is two fold: > > 1) why is it that "funky" things happen when socket file pathnames exceed 32 byte? > and > 2) what's the best way to "fix" pipe (is it pipe?) so that it handles hard links? This is IMHO important because several open source packages assume they can create hard links to socket files (and use this method to atomically create the socket file). > > Cheers, > -david > > > > > > > > > _______________________________________________ > > Technology > http://community.qnx.com/sf/go/post113579 > To cancel your subscription to this discussion, please e-mail technology-networking-unsubscribe@community.qnx.com Sean Boudreau(deleted) 2015-03-23T13:31:03Z post113579: SSH mux'd connections don't work David Alessio(deleted) http://community.qnx.com/sf/go/post113579 2015-03-20T23:13:01Z 2015-03-20T23:13:01Z Hello, On a QNX machine, logged in as root ($HOME is /root), suppose I have the following file: /root/.ssh/config with the following contents: Host * ControlPath ~/.ssh/master-%l-%r@%h:%p ControlMaster auto I should be able to establish an initial connection to a remote host such that subsequent connections are mux'd through the existing connection (and don't need to go through the CPU-intensive authentication dance). After recompiling and debugging openssh, it seems there are two issues: 1) OpenSSH temporally creates (in mux.c) a socket file with a random string that's later hard-linked to a persistent fname and the original then unlinked (deleted). This fails with the error message akin to: ln: xxx and yyy are on different file systems - Can't create hard link. Use ln -s or make a copy. I'm guessing, that the socket file is managed by pipe whereas the ln (in C: link()) is attempting to create a hard link between pipe's pseudo FS and the underlying QNX4/6/NFS FS which fails for obvious reasons. 2) Having hacked OpenSSH/mux.c to "fix" the above issue, it seems that there's some inherent pathname length limit to the socket filename of 32. This is strange since sizeof(address.sun_path) is 104 where address is: struct sockaddr_un address; So, my question is two fold: 1) why is it that "funky" things happen when socket file pathnames exceed 32 byte? and 2) what's the best way to "fix" pipe (is it pipe?) so that it handles hard links? This is IMHO important because several open source packages assume they can create hard links to socket files (and use this method to atomically create the socket file). Cheers, -david David Alessio(deleted) 2015-03-20T23:13:01Z post113571: QNX Wireless Framework 1.0 Krishnankutty Plachikkattle(deleted) http://community.qnx.com/sf/go/post113571 2015-03-19T07:18:01Z 2015-03-19T07:18:01Z Hello, I have heard about the QWF 1.0 (QNX wireless framework) expected to release by mid of 2015. How can I get more information about this product ? Is there any way to get a beta version trying out on SDP 6.6? QNX portal description looks nice. I am considering this framework to enable LTE feature in our infotainment product. Any documentation about the devices supported and limitations will help... thanks in advance. Krishnankutty Plachikkattle(deleted) 2015-03-19T07:18:01Z post113514: Re: packet forwarding between 2 network interface Nick Reilly http://community.qnx.com/sf/go/post113514 2015-03-06T16:13:49Z 2015-03-06T16:13:49Z Packets from the QNX machine will use 172.16.1.2 as the source address by default as that is the closest IP. Packets from the 10.10.1.128/25 will not have their source address changed. Nick Reilly 2015-03-06T16:13:49Z post113506: packet forwarding between 2 network interface Guosheng JIN(deleted) http://community.qnx.com/sf/go/post113506 2015-03-06T01:08:48Z 2015-03-06T01:08:48Z I have 2 network interfaces on my QNX target board, one is for ethernet interface with ip 10.10.1.220. The other one is modem interface with iP 172.16.1.2, which is a bridge to remote terminal, with modem interface IP of 172.16.1.1 and ethernet interface ip of 10.10.1.10. So the communicaion is like this 10.10.1.220 -172.16.1.2 ...............bridge.................172.16.1.1-10.10.1.10 And by the way, 10.10.1.220 has subnet mask of 255.255.255.128 so that 10.10.1.10 ip does not fall under the same subnet The remote terminal is a working system and my QNX target board needs to establish socket communication to remote terminal IP 10.10.1.10. So I need to configure in my QNX to allow ethernet packet to be forwarded through modem interface. I know it can be done if I setup routing table like route -add 10.10.1.220 172.16.1.1. But such routing rule causes SOURCE IP in socket packets to be replaced (to modem interface ip). So my question is, how I might configure QNX such that ip packet from it's ethernent interface may be forwarded without having SOURCE IP being replaced? Guosheng JIN(deleted) 2015-03-06T01:08:48Z post113304: Get process state Gervot Olivier(deleted) http://community.qnx.com/sf/go/post113304 2015-02-12T09:50:54Z 2015-02-12T09:50:54Z Hi I would like to get processes states (like pidin) My Momentix version doesn't include sys/psinfo.h so i can't use the psinfo() function I wrote some code : sprintf( buffer, "/proc/%d/as", pid ); fd = open( buffer, O_RDONLY ) ; procfs_status my_status; memset(&my_status, 0x0, sizeof (my_status)); status = devctl( fd, DCMD_PROC_STATUS, &my_status, sizeof(my_status), NULL); For any process my_status.state is 0 which mean STATE_DEAD what is the problem ? Thank Olivier Gervot Olivier(deleted) 2015-02-12T09:50:54Z post113031: Shared memory Gervot Olivier(deleted) http://community.qnx.com/sf/go/post113031 2015-01-22T16:11:30Z 2015-01-22T16:11:30Z I create shared memory with some code like this p->fd = shm_open( p->path, O_CREAT | O_RDWR , (S_IRUSR | S_IWUSR | S_IRGRP | S_IROTH)); p->busData = (BusData *) mmap( NULL, sizeof(BusData), PROT_READ | PROT_WRITE, MAP_SHARED, p->fd, 0) Is it possible to allocate shared memory with an area having the rights read/write and an area having the rights read-only? Thank Olivier Gervot Olivier(deleted) 2015-01-22T16:11:30Z post112859: RE: malloc failure for std::string Joel Pilon(deleted) http://community.qnx.com/sf/go/post112859 2015-01-07T17:48:32Z 2015-01-07T17:48:32Z It's likely heap corruption, you could inspect you code's use of pointers and ensure nothing is witting out of bounds or writing to a freed memory. If it's not reproducible with debug, you can try more light weight instrumentation, perhaps creating malloc/free/calloc wrapper. -Joel ________________________________________ From: atish bhowmick [community-noreply@qnx.com] Sent: Wednesday, January 07, 2015 12:27 PM To: technology-networking Subject: malloc failure for std::string I am getting a random crash with the following error : Malloc Check Failed: :/builds/660_SDP/svn/lib/c/alloc/band.c:492 I am using Momentics 5.0 & Qnx 6.6 . from the core dump (given below ) I can see that malloc is failing is for std::string objects & operations which I am using in my code . I have run the exe in debug mode with memory analysis tooladded from Momentics IDE. I also enabled all the memory error check options in memory analysis tool tab. But in all these debug runs no crash occurs in the scenario .Also the memory analysis view doesnt show any memory problems with the exe after several runs. However when i execute the same code in non debug mode or debug mode without memory analysis tool , I get the same memory allocation crash . It occurs randomly at different places in the code where I am doing std::string operations for which memory allocations are required . Below is a call stack : SignalKill() at 0xb034cf5d raise() at 0xb0336348 __malloc_panic_str() at 0xb033020a __malloc_panic() at 0xb03302ed _band_get_aligned() at 0xb032ea19 _band_get() at 0xb032ebeb __malloc_lock.constprop.2() at 0xb0332c00 malloc() at 0xb033289b operator new() at 0xb825f7ca std::_Allocate<char>() at xmemory0:18 0x8052df4 std::allocator<char>::allocate() at xmemory0:741 0x8052ca9 std::_Wrap_alloc<std::allocator<char> >::allocate() at xmemory0:1,067 0x80529ae std::string::_Copy() at xstring:2,310 0x8051dde std::string::_Grow() at xstring:2,341 0x80515a1 std::string::append() at xstring:1,171 0x8050de7 std::string::append() at xstring:1,182 0x805013b std::string::operator+=() at xstring:1,124 0x8060d16 QNXCommonUtils::readLineBuffered() at QNXCommonUtils.cpp:158 0x806ab4d SystemConfig::readIniFileInMem() at SystemConfig.cpp:461 0x80562cb SystemConfig::mergeNVPData() at SystemConfig.cpp:2,176 0x805d86e SystemConfig::updateIniFile() at SystemConfig.cpp:938 0x8057e73 SystemConfig::UpdateAllIni() at SystemConfig.cpp:866 0x8057b6e CQNXUpgradeManager::processIPSPolicyUpdate() at CQNXUpgradeManager.cpp:501 0x807ae6f CQNXUpgradeManager::applyThePackage() at CQNXUpgradeManager.cpp:896 0x807cc73 CQNXUpgradeManager::run() at CQNXUpgradeManager.cpp:1,377 0x807f258 Thread<CQNXUpgradeManager>::ThreadFunc() at Thread.h:59 0x8051330 Any pointers wud be very helpful to find the root cause of malloc failure . _______________________________________________ Technology http://community.qnx.com/sf/go/post112857 To cancel your subscription to this discussion, please e-mail technology-networking-unsubscribe@community.qnx.com Joel Pilon(deleted) 2015-01-07T17:48:32Z post112857: malloc failure for std::string atish bhowmick(deleted) http://community.qnx.com/sf/go/post112857 2015-01-07T17:27:15Z 2015-01-07T17:27:15Z I am getting a random crash with the following error : Malloc Check Failed: :/builds/660_SDP/svn/lib/c/alloc/band.c:492 I am using Momentics 5.0 & Qnx 6.6 . from the core dump (given below ) I can see that malloc is failing is for std::string objects & operations which I am using in my code . I have run the exe in debug mode with memory analysis tooladded from Momentics IDE. I also enabled all the memory error check options in memory analysis tool tab. But in all these debug runs no crash occurs in the scenario .Also the memory analysis view doesnt show any memory problems with the exe after several runs. However when i execute the same code in non debug mode or debug mode without memory analysis tool , I get the same memory allocation crash . It occurs randomly at different places in the code where I am doing std::string operations for which memory allocations are required . Below is a call stack : SignalKill() at 0xb034cf5d raise() at 0xb0336348 __malloc_panic_str() at 0xb033020a __malloc_panic() at 0xb03302ed _band_get_aligned() at 0xb032ea19 _band_get() at 0xb032ebeb __malloc_lock.constprop.2() at 0xb0332c00 malloc() at 0xb033289b operator new() at 0xb825f7ca std::_Allocate<char>() at xmemory0:18 0x8052df4 std::allocator<char>::allocate() at xmemory0:741 0x8052ca9 std::_Wrap_alloc<std::allocator<char> >::allocate() at xmemory0:1,067 0x80529ae std::string::_Copy() at xstring:2,310 0x8051dde std::string::_Grow() at xstring:2,341 0x80515a1 std::string::append() at xstring:1,171 0x8050de7 std::string::append() at xstring:1,182 0x805013b std::string::operator+=() at xstring:1,124 0x8060d16 QNXCommonUtils::readLineBuffered() at QNXCommonUtils.cpp:158 0x806ab4d SystemConfig::readIniFileInMem() at SystemConfig.cpp:461 0x80562cb SystemConfig::mergeNVPData() at SystemConfig.cpp:2,176 0x805d86e SystemConfig::updateIniFile() at SystemConfig.cpp:938 0x8057e73 SystemConfig::UpdateAllIni() at SystemConfig.cpp:866 0x8057b6e CQNXUpgradeManager::processIPSPolicyUpdate() at CQNXUpgradeManager.cpp:501 0x807ae6f CQNXUpgradeManager::applyThePackage() at CQNXUpgradeManager.cpp:896 0x807cc73 CQNXUpgradeManager::run() at CQNXUpgradeManager.cpp:1,377 0x807f258 Thread<CQNXUpgradeManager>::ThreadFunc() at Thread.h:59 0x8051330 Any pointers wud be very helpful to find the root cause of malloc failure . atish bhowmick(deleted) 2015-01-07T17:27:15Z post112851: Re: Malloc check failed atish bhowmick(deleted) http://community.qnx.com/sf/go/post112851 2015-01-07T11:47:21Z 2015-01-07T11:47:21Z I tried to run the exe in debug mode with memory analysis tool added from Momentics IDE. I also enabled all the memory check options in memory analysis tool tab. But in all these debug runs no crash occurs in the scenario .Also the memory analysis view doesnt show any memory problems with the exe after several runs. When i execute the same code in non debug mode or debug mode without memory analysis tool , I get the same memory allocation crash . It occurs randomly at different places in the code where I am doing std::string operations for which memory allocations are required . Below is a call stack : SignalKill() at 0xb034cf5d raise() at 0xb0336348 __malloc_panic_str() at 0xb033020a __malloc_panic() at 0xb03302ed _band_get_aligned() at 0xb032ea19 _band_get() at 0xb032ebeb __malloc_lock.constprop.2() at 0xb0332c00 malloc() at 0xb033289b operator new() at 0xb825f7ca std::_Allocate<char>() at xmemory0:18 0x8052df4 std::allocator<char>::allocate() at xmemory0:741 0x8052ca9 std::_Wrap_alloc<std::allocator<char> >::allocate() at xmemory0:1,067 0x80529ae std::string::_Copy() at xstring:2,310 0x8051dde std::string::_Grow() at xstring:2,341 0x80515a1 std::string::append() at xstring:1,171 0x8050de7 std::string::append() at xstring:1,182 0x805013b std::string::operator+=() at xstring:1,124 0x8060d16 QNXCommonUtils::readLineBuffered() at QNXCommonUtils.cpp:158 0x806ab4d SystemConfig::readIniFileInMem() at SystemConfig.cpp:461 0x80562cb SystemConfig::mergeNVPData() at SystemConfig.cpp:2,176 0x805d86e SystemConfig::updateIniFile() at SystemConfig.cpp:938 0x8057e73 SystemConfig::UpdateAllIni() at SystemConfig.cpp:866 0x8057b6e CQNXUpgradeManager::processIPSPolicyUpdate() at CQNXUpgradeManager.cpp:501 0x807ae6f CQNXUpgradeManager::applyThePackage() at CQNXUpgradeManager.cpp:896 0x807cc73 CQNXUpgradeManager::run() at CQNXUpgradeManager.cpp:1,377 0x807f258 Thread<CQNXUpgradeManager>::ThreadFunc() at Thread.h:59 0x8051330 Any pointers wud be very helpful to find the root cause of malloc failure . atish bhowmick(deleted) 2015-01-07T11:47:21Z post112839: Re: Malloc check failed atish bhowmick(deleted) http://community.qnx.com/sf/go/post112839 2015-01-06T16:18:08Z 2015-01-06T16:18:08Z > Also when I run the exe in debug mode in Momentics IDE with memory analysis tool added to its > debug configuration , no crash / memory error occurs . What may be the reason > of this ? atish bhowmick(deleted) 2015-01-06T16:18:08Z post112838: Re: Malloc check failed atish bhowmick(deleted) http://community.qnx.com/sf/go/post112838 2015-01-06T16:17:51Z 2015-01-06T16:17:51Z Also when I run the exe in debug mode with memory analysis tool added to its debug configuration , no crash / memory error occurs . What may be the reason of this ? atish bhowmick(deleted) 2015-01-06T16:17:51Z post112836: Re: Malloc check failed Nick Reilly http://community.qnx.com/sf/go/post112836 2015-01-06T14:06:59Z 2015-01-06T14:06:59Z It's not fragmentation, it's that when it got a chunk of memory the memory was corrupt. You will need to check your code carefully, static analysis tools can help. Also take a look at: http://www.qnx.com/developers/docs/660/index.jsp?topic=%2Fcom.qnx.doc.neutrino.prog%2Ftopic%2Fhat.html Nick Reilly 2015-01-06T14:06:59Z post112835: Malloc check failed atish bhowmick(deleted) http://community.qnx.com/sf/go/post112835 2015-01-06T11:23:49Z 2015-01-06T11:23:49Z I am getting a random crash with the following error : Malloc Check Failed: :/builds/660_SDP/svn/lib/c/alloc/band.c:492 I am using Momentics 5.0 & Qnx 6.6 . from the core dump I can see that malloc is failing is for std::string objects & operations which I am using in my code . Is this purely a memory fragmentation which is very unlikely since the application doesn't show any leak & crash occurs also after it has been running for a short time ? or some sort of memory corruption ? Momentics memory analysis tool doesn't show up anything . any pointers wud be helpful ? looking for points to investigate ? atish bhowmick(deleted) 2015-01-06T11:23:49Z post112415: Re: io-pkt pfil hook memory leak atish bhowmick(deleted) http://community.qnx.com/sf/go/post112415 2014-11-24T09:30:13Z 2014-11-24T09:30:13Z thanks a lot Nick . I am able to build the lsm now as a kernel module and I c no more leaks in the io-pkt when the filter blocks traffic . atish bhowmick(deleted) 2014-11-24T09:30:13Z post112405: Re: io-pkt pfil hook memory leak Nick Reilly http://community.qnx.com/sf/go/post112405 2014-11-21T13:58:40Z 2014-11-21T13:58:40Z You should be building an lsm with -D_KERNEL -EL -shared -DVARIANT_dll Make sure you have a proper recursive QNX make file structure setup i.e. lsm-name/x86/dll with common.mk in lsm-name. addvariant should create this structure. Nick Reilly 2014-11-21T13:58:40Z post112400: Re: io-pkt pfil hook memory leak atish bhowmick(deleted) http://community.qnx.com/sf/go/post112400 2014-11-21T06:45:54Z 2014-11-21T06:45:54Z Also at compile time I get implicit declaration for m_freem() although I have included mbuf.h , but I havent defined _KERNEL since that throws up a lot of other errors . I also get similar warnings for the pfil_get_head & pfil_add_hook calls but they still work at runtime unlike this m_freem() call which crashes due to unresolved symbol when the packet drop code gets hit inside the pfil hook. What am I doing wrong ? atish bhowmick(deleted) 2014-11-21T06:45:54Z post112399: Re: io-pkt pfil hook memory leak atish bhowmick(deleted) http://community.qnx.com/sf/go/post112399 2014-11-21T06:07:50Z 2014-11-21T06:07:50Z Hey Nick, Thanks for the reply . I introduced the m_freem(struct mbuf* ) call but I get an unresolved symbol as runtime . I am building my pfil.so and mounting it inside io-pkt . Do I need to link to any other lib/dll/.so to use this api in my pfil hooks . Also there is another similar api m_free(struct mbuf *) , can i use any of the two ? atish bhowmick(deleted) 2014-11-21T06:07:50Z post112389: Re: io-pkt pfil hook memory leak Nick Reilly http://community.qnx.com/sf/go/post112389 2014-11-20T16:10:00Z 2014-11-20T16:10:00Z To avoid a memory leak on egress if dropping the packet you need to: m_freem(packet_buf); *m = NULL; return 1; Nick Reilly 2014-11-20T16:10:00Z post112370: io-pkt pfil hook memory leak atish bhowmick(deleted) http://community.qnx.com/sf/go/post112370 2014-11-19T06:26:39Z 2014-11-19T06:26:39Z I have written a packet filter shared library using the pfil interface which I am mounting inside io-pkt-v4-hc : mount -T io-pkt /home/libPacketfilter.so I have a outbound_hook which registers to the pfil interface and blocks any traffic on outbound port 80 to stop any http traffic . I am testing this with a script which repeatedly does http traffic by using the command : curl www.google.com . I see if my filter keeps on blocking the http traffic by returning value 1 back to io-pkt asking it to drop the packet , io-pkt memory constantly keeps on increasing ( heap memory information shown on the Momentics IDE) . If however packets are allowed , there is no memory leak . I am using the devn-pcnet.so driver to launch io-pkt-v4-hc on a Qnx 6.6 x86 Vm . Here is how my outgoing hook looks like : struct pfil_head *pfh_inet = NULL; pfh_inet = pfil_head_get(PFIL_TYPE_AF, AF_INET); pfil_add_hook(output_hook, NULL, PFIL_OUT | PFIL_WAITOK,pfh_inet); static int output_hook(void *arg, struct mbuf **m, struct ifnet *ifp, int dir) { int block = 0; // don't block by default in_bytes += (*m)->m_len; struct mbuf* packet_buf = (*m); if(parse_mbuf(packet_buf,&outbound)) { if(outbound.portremote == 80) block = 1; } return block; // 0 means allow, 1 means block } I see that if i keep on blocking any tcp traffic such at http , io-pkt heap memory constantly rises . If after processing the packet filter hook returns back 0 to io-pkt to allow the packet , no memory leak occurs. Is there any memory clean up required when I return back any non zero value from the pfil hook to io-pkt since I am asking io-pkt to drop the packet . Any help would be helpful . atish bhowmick(deleted) 2014-11-19T06:26:39Z post112223: Re: tcpip : blown stack handling 0x102 Sean Boudreau(deleted) http://community.qnx.com/sf/go/post112223 2014-10-29T14:49:51Z 2014-10-29T14:49:51Z The stack layout won't be exactly the same on the two architectures. You may also just be lucky on x86 and not flip the majic bits on this particular test. Running with the stackguard option may fault on both. On Wed, Oct 29, 2014 at 10:46:57AM -0400, atish bhowmick wrote: > Thats the strange part ... the same code executes fine with default stacksize=4k on x86 . > But it causes stack blow up on ARM with same default stacksize . > > So I thought may b default stacksize on x86 is bigger than ARM . > > > > _______________________________________________ > > Technology > http://community.qnx.com/sf/go/post112221 > To cancel your subscription to this discussion, please e-mail technology-networking-unsubscribe@community.qnx.com Sean Boudreau(deleted) 2014-10-29T14:49:51Z post112221: Re: tcpip : blown stack handling 0x102 atish bhowmick(deleted) http://community.qnx.com/sf/go/post112221 2014-10-29T14:46:57Z 2014-10-29T14:46:57Z Thats the strange part ... the same code executes fine with default stacksize=4k on x86 . But it causes stack blow up on ARM with same default stacksize . So I thought may b default stacksize on x86 is bigger than ARM . atish bhowmick(deleted) 2014-10-29T14:46:57Z post112220: Re: tcpip : blown stack handling 0x102 Sean Boudreau(deleted) http://community.qnx.com/sf/go/post112220 2014-10-29T13:57:50Z 2014-10-29T13:57:50Z On Wed, Oct 29, 2014 at 09:50:54AM -0400, atish bhowmick wrote: > I get this crash only on ARM platform , no such crash on x86 . Is the default io-pkt stacksize different for these platforms ? No. > > when i launched io-pkt on ARM with stacksize=16k , crash didnt occur . As expected. You're using too much stack. You should try to keep the stacksize option as low as possible since this value gets multiplied by the number of coroutines (pseudo-threads) in use. You should run io-pkt under the debugger and look at stack usage. Look at the 'call __stackavail()' command in gdb. Sean Boudreau(deleted) 2014-10-29T13:57:50Z post112219: Re: tcpip : blown stack handling 0x102 atish bhowmick(deleted) http://community.qnx.com/sf/go/post112219 2014-10-29T13:50:54Z 2014-10-29T13:50:54Z I get this crash only on ARM platform , no such crash on x86 . Is the default io-pkt stacksize different for these platforms ? when i launched io-pkt on ARM with stacksize=16k , crash didnt occur . atish bhowmick(deleted) 2014-10-29T13:50:54Z post112217: Re: tcpip : blown stack handling 0x102 Nick Reilly http://community.qnx.com/sf/go/post112217 2014-10-29T12:50:11Z 2014-10-29T12:50:11Z That's the point at which it is exceeding the stack limit. Take a backtrace of the core file and then look through your functions in that backtrace for what their stack usage is. Nick Reilly 2014-10-29T12:50:11Z post112214: Re: tcpip : blown stack handling 0x102 atish bhowmick(deleted) http://community.qnx.com/sf/go/post112214 2014-10-29T06:26:57Z 2014-10-29T06:26:57Z increasing the stacksize is solving the crash . I also tried by introducing the stackguard option . As expected crash occurs much earlier rather than waiting for the end of hook . I get the following : Process 565260 (io-pkt-v4-hc) terminated SIGSEGV code=2 fltno=11 ip=01077124(/usr/lib/ldqnx.so.2@difftime+0x1ac4) mapaddr=000771 24. ref=07f98fec What can I conclude from this ? atish bhowmick(deleted) 2014-10-29T06:26:57Z post112193: Re: tcpip : blown stack handling 0x102 Nick Reilly http://community.qnx.com/sf/go/post112193 2014-10-28T14:03:24Z 2014-10-28T14:03:24Z Yes, you are using too much stack space. If you are hooked in through the pfil_ether_hook then that thread will have started down in the driver Rx routine as well. I strongly recommend using the stackguard option to get it to fault at the point it overruns the stack. Without that it is overrunning the stack and then only getting caught when that pseudo-thread returns. Nick Reilly 2014-10-28T14:03:24Z post112192: Re: tcpip : blown stack handling 0x102 atish bhowmick(deleted) http://community.qnx.com/sf/go/post112192 2014-10-28T13:57:58Z 2014-10-28T13:57:58Z I have tried increasing the stacksize but no success . I dont understand how this stack blowup is related to blocking / dropping of a packet through pfil hooks. It only happens if I block a response packet to incoming ssh connection request .I dont get any crash for blocking outgoing ssh connections. I have faced similar stack blowup issues before & fixed my code (allocate lesser memory on stack) . Does this crash also mean I am using too much stack space in my pfil hook code? atish bhowmick(deleted) 2014-10-28T13:57:58Z post112191: Re: tcpip : blown stack handling 0x102 Nick Reilly http://community.qnx.com/sf/go/post112191 2014-10-28T12:49:58Z 2014-10-28T12:49:58Z As the message says, you have blown the pseudo-thread stack. See the use message for io-pkt under the -p tcpip option stacksize=X - X is the size of each thread's stack in bytes. - Default is 4096. stackguard - Introduce a guard page between each thread's stack to aid in debugging "blown stack handling" panics. This will cause a SIGSEGV at the point of stack overrun rather than at the end of the operation. - N.B. If stacksize is not a multiple of the system page size then this option will increase the stacksize until it is. A message will be logged to slogger in this case advising of the new size. This increase in stacksize may change the issue being debugged. Nick Reilly 2014-10-28T12:49:58Z post112190: Re: tcpip : blown stack handling 0x102 atish bhowmick(deleted) http://community.qnx.com/sf/go/post112190 2014-10-28T11:58:54Z 2014-10-28T11:58:54Z also crash doesnt occur when i try to ssh out of the box and it gets blocked / dropped since all outgoing is blocked . atish bhowmick(deleted) 2014-10-28T11:58:54Z post112189: tcpip : blown stack handling 0x102 atish bhowmick(deleted) http://community.qnx.com/sf/go/post112189 2014-10-28T11:38:55Z 2014-10-28T11:38:55Z Platform : qnx 6.6 I have written a io-pkt pfil library which can be configured to block some incoming & outgoing connections based on its attribute (source / remote IP & port nos.) I am getting a io-pkt crash(stack blown up) in a specific scenario : Allow incoming ssh on port 22 (local port) , but block all outgoing connections . So in this case sshd on qnx is unable to respond back to the incoming request .In that case the ssh connection wont get established as expected but io-pkt crashes immediately when this packet is dropped . Jan 02 04:34:54 1 14 0 tcpip: blown stack handling 0x102. See "stacks ize" option. What can be the probable cause of this issue ? If sshd is not running or no incoming ssh request is made , crash doesn't occur . If the response is allowed no crash occurs. Any help would be useful . atish bhowmick(deleted) 2014-10-28T11:38:55Z post111503: Re: System hangs with "initSocket -247" message on the console Davide Ancri http://community.qnx.com/sf/go/post111503 2014-08-20T08:26:52Z 2014-08-20T08:26:52Z thanks a lot, Nick! yours are very useful infos, I'll give a deeper view to my driver code. I also suspect there is a potential problem which has not been triggered until now due to different timings. I'm back in the office today after my holidays, so I'll need some time to jump again into this investigation... however I'll be back here for any other doubt, if any. thanks again Davide Davide Ancri 2014-08-20T08:26:52Z post111314: Re: System hangs with "initSocket -247" message on the console Nick Reilly http://community.qnx.com/sf/go/post111314 2014-08-05T13:35:09Z 2014-08-05T13:35:09Z I think the "initSocket -247" message is coming from slinger - do you have slinger running and do you try to restart it if it fails? Errno 247 is EAFNOSUPPORT. Unfortunately slinger does a number of operations in initSocket() so we cannot tell which has gone wrong. I suspect though that this is just a secondary affect of the problem within io-pkt itself caused by the driver. We try to maintain forwards compatibility on the driver API and I don't recall any changes that would break a 6.4.1 devnp driver from working on a 6.5.0 io-pkt. It may be that there was always an underlying problem in the driver and a change in the timing or similar may be causing the issue to get hit more frequently, this could also explain the variance with respect to io-pkt version and driver stripped or with symbols. With io-pkt running at priority 21 by default, if it starts spinning on the CPU then the rest of the system can appear unresponsive. You can try lowering the thread priorities on io-pkt with -P for the main thread and -p tcpip rx_prio= for the receive threads, but note that the driver may register interrupt threads at any priority that is not affected by these parameters. One area we have seen in a lot of drivers is that if callout_init() gets called again (e.g. from the driver's init function which gets called multiple times) after a callout has been started with callout_msec() then that can cause io-pkt to spin. I would set up any callouts through callout_init() in the attach function and then leave it alone apart from scheduling with callout_msec() and stopping it with callout_stop(). Nick Reilly 2014-08-05T13:35:09Z post111286: System hangs with "initSocket -247" message on the console Davide Ancri http://community.qnx.com/sf/go/post111286 2014-08-01T15:49:45Z 2014-08-01T15:49:45Z hello all I have a x86 platform running qnx 6.5.0: $ uname -a QNX myLSU 6.5.0 2012/06/20-13:50:45EDT x86pc x86 and io-pkt-v6-hc variant of io-pkt. I need to mount/unmount several times a custom "devnp_" network driver into io-pkt (not a real hardware device driver, it will register a set of virtual interfaces for intercepting/injecting software-produced packets). This has always worked fine (and still it does) under 6.4.1 qnx version. Under qnx 6.5.0, I often get a system hang when mounting the devnp_ module into io-pkt: platform becomes unreachable via networking (ping does not get responses), and the local USB keyboard/console is not responding. Local monitor reports one or more messages saying: initSocket -247 I noticed that often the same message appears on the console when I want to shutdown the system (shutdown -b), probably when the io-pkt process is killed. The hang is not systematic, but it seems to me that it happens more often with io-pkt-v6-hc than with io-pkt-v4, and also more often with my devnp_ module left symbol-unstripped than when I strips symbols out of it ! (does it make any sense??) So, my first question is: what does "initSocket -247" means and what should I start investigating on? Is there some incompatibilities in network drivers binaries compiled under 6.4.1 devel env, when mounted against qnx 6.5.0 io-pkt targets? thanks Davide Davide Ancri 2014-08-01T15:49:45Z post111033: pf.conf marco spinetti(deleted) http://community.qnx.com/sf/go/post111033 2014-07-11T12:19:50Z 2014-07-11T12:19:50Z Hi all, I have a problem in my system with qnx 6.4. My system has more interfaces: en5 = this is connected to my router (192.168.0.1) which gives it the ip 192.168.0.100 uap0 = wireless interfaces which has ip 192.168.1.X The wireless interface can be work only in ap mode and not client mode. I can connect my phone to uap0 and it gives me the ip 192.168.1.100 I'd like to be able to route wireless traffic to interface en5 to be able to go to internet with my phone. I suppose that I have to work with nat rules but I have a problem because actually it doesn't work. In my system the variable net.inet.ip.forwarding=1 and my pf.conf is the following: [code] int_if = "en5" icmp_types = "echoreq" broadcast_add = "255.255.255.255/32" # scrub scrub in all no-df # outgoing connections on MOST must not exceed 968 segmentsize (MTU 1008 total) scrub out on mam0 max-mss 968 # Skip all PF filtering on lo0 set skip on lo0 ### NAT/redirection rules ### table name has to be used in SW to alter table table <natRangeTable> { 192.168.1.0/24, 10.0.0.101 } nat on ppp0 from <natRangeTable> to any -> (ppp0) nat on en5 from <natRangeTable> to any -> (en5) nat on uap0 from 192.168.1.0/24 to any -> (en5) # DNS redirect rules rdr-anchor dnsRedirect1 rdr-anchor dnsRedirect2 rdr-anchor dnsRedirect3 rdr-anchor dnsRedirect4 ### filter rules pass out keep state pass in quick on mam0 keep state pass in quick on mep0 keep state pass in quick on mhp0 keep state pass quick on uap0 from 192.168.1.0/24 to 192.168.1.1 pass in quick on uap0 keep state pass in quick on $int_if keep state #block in on uap0 block in quick on uap0 from any to (mam0:network) block in quick on uap0 from any to (mhp0:network) block in quick on uap0 from any to (ppp0) #block in quick on uap0 from any to (en5:network) # pass through DHCP from WLAN to DHCP server pass in quick on uap0 proto udp from any port bootpc to $broadcast_add port bootps keep state pass in quick on uap0 to $broadcast_add keep state # pass in SSDP messages (out is not blocked) pass in quick on uap0 proto udp from any to 239.255.255.250 port 1900 keep state # let our http server on 8100 for UPnP be reachable pass in quick on uap0 proto tcp from any to any port 8100 keep state pass in quick on uap0 from any to 224.0.0.0/4 keep state pass in quick on uap0 proto udp to (uap0) port 49152:65535 # use external traffic from WLAN as trigger for dial-up anchor dialUpTrigger pass in quick inet proto icmp all icmp-type $icmp_types keep state [/code] and my ifconfid is the following: [code] lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> mtu 33192 inet 127.0.0.1 netmask 0xff000000 pflog0: flags=100<PROMISC> mtu 33192 mam0: flags=843<UP,BROADCAST,RUNNING,SIMPLEX> mtu 1008 address: 00:00:00:00:01:00 inet 10.0.0.100 netmask 0xffffff00 broadcast 10.0.0.255 mhp0: flags=842<BROADCAST,RUNNING,SIMPLEX> mtu 1500 address: 00:00:00:00:01:00 en5: flags=80008a43<UP,BROADCAST,RUNNING,ALLMULTI,SIMPLEX,MULTICAST,SHIM> mtu 1500 address: 00:80:c8:3c:77:7e media: Ethernet 10baseT full-duplex status: active inet 192.168.0.100 netmask 0xffffff00 broadcast 192.168.0.255 uap0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500 address: 00:1c:d7:25:20:89 media: <unknown type> autoselect inet 192.168.1.1 netmask 0xffffff00 broadcast 192.168.1.255 link 00:00:00:00:00:00 [/code] The output of pfctls -s all is: [code] TRANSLATION RULES: nat on ppp0 from <natRangeTable> to any -> (ppp0) round-robin nat on en5 from <natRangeTable> to any -> (en5) round-robin rdr-anchor "dnsRedirect1" all rdr-anchor "dnsRedirect2" all rdr-anchor "dnsRedirect3" all rdr-anchor "dnsRedirect4" all FILTER RULES: scrub in all no-df fragment reassemble scrub out on mam0 all max-mss 968 fragment reassemble pass out all keep state pass in quick on mam0 all keep state pass in quick on mep0 all keep state pass in quick on mhp0 all keep state pass in quick on en5 all keep state block drop in on uap0 all block drop in quick on uap0 from any to (mam0:network) block drop in quick on uap0 from any to (mhp0:network) block drop in quick on uap0 from any to (ppp0) block drop in quick on uap0 from any to (en5:network) pass in quick on uap0 inet proto udp from any port = bootpc to 255.255.255.255 port = bootp keep state pass in quick on uap0 inet from any to 255.255.255.255 keep state pass in quick on uap0 inet proto udp from any to 239.255.255.250 port = 1900 keep state pass in quick on uap0 proto tcp from any to any port = 8100 keep state pass in quick on uap0 inet from any to 224.0.0.0/4 keep state pass in quick on uap0 proto udp from any to (uap0) port 49152:65535 anchor "dialUpTrigger" all pass in quick inet proto icmp all icmp-type echoreq keep state No queue in use STATES: self tcp 127.0.0.1:65515 -> 127.0.0.1:4444 ESTABLISHED:ESTABLISHED self tcp 192.168.0.100:65486 -> 173.194.35.7:80 TIME_WAIT:TIME_WAIT INFO: Status: Enabled for 0 days 00:19:48 Debug: Urgent Hostid: 0xc7e39f50 State Table Total Rate current entries 2 searches 15019 12.6/s inserts 169 0.1/s removals 167 0.1/s Counters match 213 0.2/s bad-offset 0 0.0/s fragment 0 0.0/s short 0 0.0/s normalize 0 0.0/s memory 0 0.0/s bad-timestamp 0 0.0/s congestion 0 0.0/s ip-option 0 0.0/s proto-cksum 0 0.0/s state-mismatch 0 0.0/s state-insert 0 0.0/s state-limit 0 0.0/s src-limit 0 0.0/s synproxy 0 0.0/s TIMEOUTS: tcp.first 120s tcp.opening 30s tcp.established 86400s tcp.closing 900s tcp.finwait 45s tcp.closed 90s tcp.tsdiff 30s udp.first 60s udp.single 30s udp.multiple 60s icmp.first 20s icmp.error 10s other.first 60s other.single 30s other.multiple 60s frag 30s interval 10s adaptive.start 0 states adaptive.end 0 states src.track 0s LIMITS: states hard limit 10000 src-nodes hard limit 10000 frags hard limit 5000 TABLES: natRangeTable OS FINGERPRINTS: 345 fingerprints loaded [/code] Can someone help me and tell me how to solve the problem? Thanks marco spinetti(deleted) 2014-07-11T12:19:50Z post110962: Re: QNX network buffer size Alex Murray(deleted) http://community.qnx.com/sf/go/post110962 2014-07-08T01:09:55Z 2014-07-08T01:09:55Z Did you ever resolve this? I am having a similar issue trying to use pcap_inject or pcap_sendpacket under QNX 6.6.0? Alex Murray(deleted) 2014-07-08T01:09:55Z post110921: Re: net.cfg in 6.6.0 Garry Bleasdale http://community.qnx.com/sf/go/post110921 2014-07-03T08:31:50Z 2014-07-03T08:31:50Z Cheers Nick! - Garry Garry Bleasdale 2014-07-03T08:31:50Z post110912: Re: net.cfg in 6.6.0 Nick Reilly http://community.qnx.com/sf/go/post110912 2014-07-02T18:04:14Z 2014-07-02T18:04:14Z Hi Garry, I think that net.cfg.sample file is just a left over. netmanager is not just deprecated in 6.6.0, it is obsolete and removed from 6.6.0. In the removal I believe we missed the net.cfg.sample file. Regards, Nick. Nick Reilly 2014-07-02T18:04:14Z post110911: net.cfg in 6.6.0 Garry Bleasdale http://community.qnx.com/sf/go/post110911 2014-07-02T15:46:52Z 2014-07-02T15:46:52Z Hi, We have deprecated netmanager in 6.6.0, but we still provide a 'sample' net.cfg in /etc. We have a customer asking if it is still possible to work with net.cfg in 6.6.0, and if so how? Thanks, Garry Garry Bleasdale 2014-07-02T15:46:52Z post110795: Re: OS tick granularity affecting outgoing TCP messages? Sean Boudreau(deleted) http://community.qnx.com/sf/go/post110795 2014-06-20T17:57:00Z 2014-06-20T17:57:00Z The internal tick isn't 7.5 ms. You should take a pcap and ensure the tcp window isn't closed. If so you're limited by acks from the other end. On Fri, Jun 20, 2014 at 01:41:38PM -0400, J Sinton wrote: > Hi Nick, > > Thank you for confirming there is something else at play. That makes sense. > > I have to simulate GPS devices that provide TCP data at 200Hz, and the spacing of messages is significant (they cannot be clumped). I may have to send up to three or four TCP messages within one 5mS window. The control of the individual message position within the window ideally would also be controllable down to say 50uS or so, but that may not be critical in this instance. > > I guess while TCP makes no timing guarantees, in practice if the rest of the environment is controlled then most of the time people can get away with assuming there will be an 'acceptable' amount of delay and jitter. I think in this case the vendor expects both to be under 100uS. > > What options do I have to work around the tick time? > > I had wondered about bypassing the stack and using pcap or bpf. I already use pcap for UDP, and whatever the io tick time is must be at a higher level than the pcap UDP goes in, since it is not affected, so I could send and receive raw TCP frames too and manage the TCP session from the application, but that is a huge pain. Much easier would be something I could reconfigure in the driver. And maybe second to that would be a custom driver, but I'm guessing that the tick is in the IP stack rather than the driver, so that might not help. > > What would you recommend? > > Many thanks, > > John > > > > _______________________________________________ > > Technology > http://community.qnx.com/sf/go/post110794 > To cancel your subscription to this discussion, please e-mail technology-networking-unsubscribe@community.qnx.com Sean Boudreau(deleted) 2014-06-20T17:57:00Z post110794: Re: OS tick granularity affecting outgoing TCP messages? J Sinton(deleted) http://community.qnx.com/sf/go/post110794 2014-06-20T17:41:38Z 2014-06-20T17:41:38Z Hi Nick, Thank you for confirming there is something else at play. That makes sense. I have to simulate GPS devices that provide TCP data at 200Hz, and the spacing of messages is significant (they cannot be clumped). I may have to send up to three or four TCP messages within one 5mS window. The control of the individual message position within the window ideally would also be controllable down to say 50uS or so, but that may not be critical in this instance. I guess while TCP makes no timing guarantees, in practice if the rest of the environment is controlled then most of the time people can get away with assuming there will be an 'acceptable' amount of delay and jitter. I think in this case the vendor expects both to be under 100uS. What options do I have to work around the tick time? I had wondered about bypassing the stack and using pcap or bpf. I already use pcap for UDP, and whatever the io tick time is must be at a higher level than the pcap UDP goes in, since it is not affected, so I could send and receive raw TCP frames too and manage the TCP session from the application, but that is a huge pain. Much easier would be something I could reconfigure in the driver. And maybe second to that would be a custom driver, but I'm guessing that the tick is in the IP stack rather than the driver, so that might not help. What would you recommend? Many thanks, John J Sinton(deleted) 2014-06-20T17:41:38Z post110793: Re: OS tick granularity affecting outgoing TCP messages? Nick Reilly http://community.qnx.com/sf/go/post110793 2014-06-20T17:02:54Z 2014-06-20T17:02:54Z Yes, there is an internal timer tick in io-pkt that is not affected by ClockPeriod. I don't understand the need for TCP to be sent at a particular time, TCP says nothing about when the data hits the wire, it is all about transferring the data reliably. Nick Reilly 2014-06-20T17:02:54Z post110792: OS tick granularity affecting outgoing TCP messages? J Sinton(deleted) http://community.qnx.com/sf/go/post110792 2014-06-20T16:29:56Z 2014-06-20T16:29:56Z Hi, I am developing some test code that needs to send a single TCP message from a thread every 5mS. Even in a tight while loop with no nanosleep, I am currently only able to send one TCP message from the test thread every 7.5mS. I have seen this time crop up before. When the OS tick time was set to the default, timers and similar events had this granularity. I can already send UDP messages with fine-grain timing control down to hundreds or tens of microseconds, having used ClockPeriod to set 10uS. The hogs utility shows utilization less than 10% with everything else running on the box. I have disabled Nagle with TCP_NODELAY (that did make a difference, since previously messages could be clustered around 7.5mS - now I get exactly one message per 7.5mS). I have tried both 'write' and 'send' functions (no difference). I have elevated (doubled from default) the priority of the thread, used ClockPeriod within the thread itself (that should not be necessary as far as I understand it). Nothing else I do seems to have any impact on the minimum time. My theory is that there is a 'tick' inside the TCP stack that is not reduced by a low value for ClockPeriod, but I have not found any additional TCP options that appear to control something like that. Any ideas on what might be happening, and how to avoid it? Many thanks for any ideas, or additional questions that might help narrow down the possibilities. Best regards, John Code === The sending code in the thread is pretty straightforward, as shown below. Note that even when nanosleep is used, no times below 7.5mS are possible. Two successive calls in the same loop also produce two messages 7.5mS apart, i.e. each call to 'send' or 'write' appears to block for 7.5mS. signal(SIGPIPE, SIG_IGN); // If we don't choose to ignore the SIGPIPE error signal, we will never get the return fail from the write function (the whole program, not just the thread, will exit) while( 1 != iShutdown ) { struct sockaddr_in saddrServer; memset( &saddrServer, 0, sizeof( saddrServer )); saddrServer.sin_family = AF_INET; saddrServer.sin_port = htons( APPLANIX_SERVER_PORT ); saddrServer.sin_addr.s_addr = INADDR_ANY; int sktServer = -1; sktServer = socket(AF_INET, SOCK_STREAM, 0); if( 0 > sktServer ) { printf("ERROR opening socket\n"); } int iOptval = 1; setsockopt( sktServer, SOL_SOCKET, SO_REUSEPORT, &iOptval, sizeof( iOptval )); // Allow port re-use so we don't get hung up waiting for ports to be released setsockopt( sktServer, IPPROTO_TCP, TCP_NODELAY, &iOptval, sizeof( iOptval )); // Disable Nagle algorithm on output, otherwise messages will be delayed with spacing other than as specified if( 0 > bind( sktServer, (struct sockaddr *) &saddrServer, sizeof( saddrServer )) ) { fprintf( stderr, "Warning: %.40s: %d: Error on binding\n", __func__, __LINE__ ); } listen( sktServer, 5 ); struct sockaddr_in saddrClient; memset( &saddrClient, 0, sizeof( saddrClient )); int sktClient = -1; unsigned int uiClientAddrLength = sizeof(saddrClient); fprintf( stdout, "Info: %.40s: %d: Attempting socket accept\n", __func__, __LINE__ ); sktClient = accept( sktServer, (struct sockaddr *) &saddrClient, &uiClientAddrLength); if( sktClient < 0) { fprintf( stderr, "Warning: %.40s: %d: Error on accept\n", __func__, __LINE__ ); } while( 1 != iShutdown ) { int n = send( sktClient, &sTotalMsg, sizeof( sTotalMsg ), MSG_DONTROUTE );//MSG_DONTROUTE //n = send( sktClient, &sTotalMsg, sizeof( sTotalMsg ), MSG_DONTROUTE );//MSG_DONTROUTE //int n = write( sktClient, &sTotalMsg, sizeof( sTotalMsg ) );//MSG_DONTROUTE if( 0 > n ) { fprintf( stderr, "Warning: %.40s: %d: Could not write to socket any more, automatically restarting server\n", __func__, __LINE__ ); close( sktClient ); break; } sTime_t sTimeWait = { 0, 1000000 }; // This controls the sending interval for messages, normally 5mS for full speed, but often better to slow down for simulation. //nanosleep( &sTimeWait, 0 ); // Note Nagle algorithm has to be disabled on socket for this to work at short time intervals. } } Configuration ======== The version on the test box is QNX localhost 6.5.0 2010/07/09-14:44:03EDT x86pc x86 /home/swdev/SCU_CSCI/Communicator #nicinfo fxp0: INTEL 82558 Ethernet Controller Physical Node ID ........................... 0019DB BB621E Current Physical Node ID ................... 0019DB BB621E Current Operation Rate ..................... 100.00 Mb/s full-duplex Active Interface Type ...................... MII Active PHY address ....................... 1 Maximum Transmittable data Unit ............ 1514 Maximum Receivable data Unit ............... 1514 Hardware Interrupt ......................... 0x5 I/O Aperture ............................... 0xef00 - 0xef3f Memory Aperture ............................ 0xfdcff000 - 0xfdcfffff ROM Aperture ............................... 0x80dbf6b07fa5a04 Promiscuous Mode ........................... On Multicast Support .......................... Enabled Packets Transmitted OK ..................... 240427 Bytes Transmitted OK ....................... 1057642863152 Broadcast Packets Transmitted OK ........... 1474 Multicast Packets Transmitted OK ........... 0 Memory Allocation Failures on Transmit ..... 0 Packets Received OK ........................ 1577 Bytes Received OK .......................... 16466284388 Broadcast Packets Received OK .............. 6017203 Multicast Packets Received OK .............. 3643479 Memory Allocation Failures on Receive ...... 0 Single Collisions on Transmit .............. 0 Multiple Collisions on Transmit ............ 0 Deferred Transmits ......................... 0 Late Collision on Transmit errors .......... 0 Transmits aborted (excessive collisions) ... 0 Transmit Underruns ......................... 0 No Carrier on Transmit ..................... 0 Receive Alignment errors ................... 0 Received packets with CRC errors ........... 0 Packets Dropped on receive ................. 0 Short packets .............................. 0 Total Frames experiencing Collison(s) ...... 0 /home/swdev/SCU_CSCI/Communicator #ifconfig -v lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> mtu 33192 input: 21793713 packets, 18102059063 bytes output: 21793713 packets, 18102059063 bytes inet 127.0.0.1 netmask 0xff000000 fxp0: flags=8943<UP,BROADCAST,RUNNING,PROMISC,SIMPLEX,MULTICAST> mtu 1500 address: 00:19:db:bb:62:1e media: Ethernet autoselect (100baseTX full-duplex) status: active input: 199438745 packets, 16466567049 bytes, 9661145 multicasts output: 7898758806 packets, 1061757361338 bytes inet 192.168.1.6 netmask 0xffffff00 broadcast 192.168.1.255 J Sinton(deleted) 2014-06-20T16:29:56Z post110625: Re: ipnat format documentation Olivier Robert(deleted) http://community.qnx.com/sf/go/post110625 2014-06-06T18:58:58Z 2014-06-06T18:58:58Z I finally found a definite answer in the following document : Core Networking with io-pkt User’s Guide www.qnx.com/download/download/23598/core_networking.pdf It clearly invites the user to read the NetBSD documentation. The exact version is not told, but it is said in numerous other QNX articles that the Networking Stack was taken from NetBSD 4.0 So here it is : http://netbsd.gw.com/cgi-bin/man-cgi?ipnat.conf+5+NetBSD-4.0 Olivier Robert(deleted) 2014-06-06T18:58:58Z post110548: ipnat format documentation Olivier Robert(deleted) http://community.qnx.com/sf/go/post110548 2014-05-31T09:55:38Z 2014-05-31T09:55:38Z I need to set up ipnat on QNX 6.3.2 I'm looking for the QNX documentation on the "ipnat format file". Do you know where I could find it ? I think it should be quite similar to this FreeBSD documentation : http://www.freebsd.org/cgi/man.cgi?query=ipnat&sektion=5 Here is the documentation all I was able to find at this point : - Tutorial on Firewall setting (http://www.qnx.com/developers/docs/6.3.2/neutrino/user_guide/security.html#Firewall) - Configuration examples (http://www.qnx.com/developers/docs/6.3.2/neutrino/user_guide/examples.html#Firewalls) - Manual page of the IPNat command line utility (http://www.qnx.com/developers/docs/6.3.2/neutrino/utilities/i/ipnat.html) Olivier Robert(deleted) 2014-05-31T09:55:38Z post110522: Re: Debugging io-pkt pfil library using Momentics IDE atish bhowmick(deleted) http://community.qnx.com/sf/go/post110522 2014-05-29T09:38:54Z 2014-05-29T09:38:54Z sorry i didn't comprehend what u said .For debugging an exe or library which that exe may load I have the source code of the program & library which I have coded and running on Qnx , in this case I dont have the source code of io-pkt , I only have the code of the pfil.so which I have written and mounting it into the io-pkt process . Now how do I attach the debugger to io-pkt process from the IDE and how do i hit the breakpoints in my pfil.so when i mount it inside io-pkt . atish bhowmick(deleted) 2014-05-29T09:38:54Z post110520: Re: Debugging io-pkt pfil library using Momentics IDE atish bhowmick(deleted) http://community.qnx.com/sf/go/post110520 2014-05-29T08:29:33Z 2014-05-29T08:29:33Z sorry i didn't comprehend what u said .For debugging an exe or library which that exe may load I have the source code of the program & library which I have coded and running on Qnx , in this case I dont have the source code of io-pkt , I only have the code of the pfil.so which I have written and mounting it into the io-pkt process . Now how do I attach the debugger to already running io-pkt process from the IDE , also how do i hit the breakpoints in my pfil.so when i mount it inside io-pkt . atish bhowmick(deleted) 2014-05-29T08:29:33Z post110506: Re: Debugging io-pkt pfil library using Momentics IDE Nick Reilly http://community.qnx.com/sf/go/post110506 2014-05-28T13:34:30Z 2014-05-28T13:34:30Z One thing that may help would be to run 2 copies of io-pkt on two different interfaces. The first copy is started normally and qconn is run. This is your debugging connection. The second copy is started with additional options "-i 1 -p tcpip prefix=/alt". You then need to mount your driver and lsm with "-Tio-pkt1", and any other commands to talk to this io-pkt need to have "SOCK=/alt" in the environment. This is now your copy of io-pkt being debugged. Nick Reilly 2014-05-28T13:34:30Z post110505: Re: Debugging io-pkt pfil library using Momentics IDE Sean Boudreau(deleted) http://community.qnx.com/sf/go/post110505 2014-05-28T13:29:46Z 2014-05-28T13:29:46Z There's nothing specific to io-pkt in this scenario. It's just like debugging any other process remotely; however you normally do that with the IDE. -seanb On Wed, May 28, 2014 at 04:53:59AM -0400, atish bhowmick wrote: > I am developing a io-pkt pfil library . I am mounting the .so into the io-pkt stack using "mount -T io-pkt /home/libpacketfilter.so" . > > I am developing on Momentics IDE in a windows VM and it linked to a target QNX VM . > I need to know how do I debug this library mounted in the io-pkt stack of the target Qnx Vm using Momentics IDE . > > If remote debugging using IDE isnt possible , do I need to use gdb on the target Qnx Vm directly , if so how ? > > Any pointers would be helpful . > > Thanks > > > > _______________________________________________ > > Technology > http://community.qnx.com/sf/go/post110501 > To cancel your subscription to this discussion, please e-mail technology-networking-unsubscribe@community.qnx.com Sean Boudreau(deleted) 2014-05-28T13:29:46Z post110501: Debugging io-pkt pfil library using Momentics IDE atish bhowmick(deleted) http://community.qnx.com/sf/go/post110501 2014-05-28T08:53:59Z 2014-05-28T08:53:59Z I am developing a io-pkt pfil library . I am mounting the .so into the io-pkt stack using "mount -T io-pkt /home/libpacketfilter.so" . I am developing on Momentics IDE in a windows VM and it linked to a target QNX VM . I need to know how do I debug this library mounted in the io-pkt stack of the target Qnx Vm using Momentics IDE . If remote debugging using IDE isnt possible , do I need to use gdb on the target Qnx Vm directly , if so how ? Any pointers would be helpful . Thanks atish bhowmick(deleted) 2014-05-28T08:53:59Z post110291: Re: routing wireless traffic to lan marco spinetti(deleted) http://community.qnx.com/sf/go/post110291 2014-05-13T09:25:41Z 2014-05-13T09:25:41Z Unfortunately the problem is still there. Adding the nat rules seems not to solve the problem. Any help will be very appreciated. Thanks marco spinetti(deleted) 2014-05-13T09:25:41Z post110158: Process termination atish bhowmick(deleted) http://community.qnx.com/sf/go/post110158 2014-05-06T08:53:00Z 2014-05-06T08:53:00Z How can i detect the termination of any process ? Using procmgr_event_notify I am only able to detect daemon process termination using PROCMGR_EVENT_DAEMON_DEATH flag , but I am interested in getting notifications for termination of all processes on QNX system . Any pointers would be helpful . atish bhowmick(deleted) 2014-05-06T08:53:00Z post110096: Re: Get absolute fulll path of running process Colin Burgess(deleted) http://community.qnx.com/sf/go/post110096 2014-04-30T12:57:54Z 2014-04-30T12:57:54Z 6.6 exposes /proc/<pid>/exename and /proc/<pid>/cmdline to simplify this. On 2014-04-29 11:39 PM, atish bhowmick wrote: > Ok thanks for your help , i made some progress with the info u provided . > One more thing does 6.6 version contain more/added proc filesystem functionality where information such as cmdline arguments & full path ca be readiily extracted from /proc/pid/as file thru some devctl cmds or other api s like we do for pid & stack address on 6.5 . > > Pls let me know , in that case I wud go for 6.6 version . > > > > > _______________________________________________ > > Technology > http://community.qnx.com/sf/go/post110088 > To cancel your subscription to this discussion, please e-mail technology-networking-unsubscribe@community.qnx.com Colin Burgess(deleted) 2014-04-30T12:57:54Z post110088: Re: Get absolute fulll path of running process atish bhowmick(deleted) http://community.qnx.com/sf/go/post110088 2014-04-30T03:39:14Z 2014-04-30T03:39:14Z Ok thanks for your help , i made some progress with the info u provided . One more thing does 6.6 version contain more/added proc filesystem functionality where information such as cmdline arguments & full path ca be readiily extracted from /proc/pid/as file thru some devctl cmds or other api s like we do for pid & stack address on 6.5 . Pls let me know , in that case I wud go for 6.6 version . atish bhowmick(deleted) 2014-04-30T03:39:14Z post110080: Re: Get absolute fulll path of running process Colin Burgess(deleted) http://community.qnx.com/sf/go/post110080 2014-04-29T12:43:02Z 2014-04-29T12:43:02Z On 2014-04-29 8:22 AM, atish bhowmick wrote: > I wanted to clarify one more thing , the initial_stack which i read from the procfs_info structure using the devctl call , is that the value which needs to be used as offset during lseek . Yes. > > lseek(fd,initial_stack,SEEK_SET); // OFFSET AS FILE TO initial stack > > // now read the as file > read(fd,buf,stack size); > > now does buffer contain all the stack data which can be parsed for auxv ? > Also how much size should i read to get the stack ? The amount you must read will depend on the number of arguments, and the number of environment variables on the stack. You should be prepared to demand read more as you scan for the aux vector. > > > > _______________________________________________ > > Technology > http://community.qnx.com/sf/go/post110079 > To cancel your subscription to this discussion, please e-mail technology-networking-unsubscribe@community.qnx.com Colin Burgess(deleted) 2014-04-29T12:43:02Z post110079: Re: Get absolute fulll path of running process atish bhowmick(deleted) http://community.qnx.com/sf/go/post110079 2014-04-29T12:22:06Z 2014-04-29T12:22:06Z I wanted to clarify one more thing , the initial_stack which i read from the procfs_info structure using the devctl call , is that the value which needs to be used as offset during lseek . lseek(fd,initial_stack,SEEK_SET); // OFFSET AS FILE TO initial stack // now read the as file read(fd,buf,stack size); now does buffer contain all the stack data which can be parsed for auxv ? Also how much size should i read to get the stack ? atish bhowmick(deleted) 2014-04-29T12:22:06Z post110076: Re: routing wireless traffic to lan marco spinetti(deleted) http://community.qnx.com/sf/go/post110076 2014-04-29T08:44:39Z 2014-04-29T08:44:39Z Nick, can you help me? I have some problems to write what you suggested me. I try to execute the command pfctl -s all I get this output: TRANSLATION RULES: nat on ppp0 from <natRangeTable> to any -> (ppp0) round-robin nat on en5 from <natRangeTable> to any -> (en5) round-robin rdr-anchor "dnsRedirect1" all rdr-anchor "dnsRedirect2" all rdr-anchor "dnsRedirect3" all rdr-anchor "dnsRedirect4" all FILTER RULES: scrub in all no-df fragment reassemble scrub out on mam0 all max-mss 968 fragment reassemble pass out all keep state pass in quick on mam0 all keep state pass in quick on mep0 all keep state pass in quick on mhp0 all keep state pass in quick on en5 all keep state block drop in on uap0 all block drop in quick on uap0 from any to (mam0:network) block drop in quick on uap0 from any to (mhp0:network) block drop in quick on uap0 from any to (ppp0) block drop in quick on uap0 from any to (en5:network) pass in quick on uap0 inet proto udp from any port = bootpc to 255.255.255.255 port = bootp keep state pass in quick on uap0 inet from any to 255.255.255.255 keep state pass in quick on uap0 inet proto udp from any to 239.255.255.250 port = 1900 keep state pass in quick on uap0 proto tcp from any to any port = 8100 keep state pass in quick on uap0 inet from any to 224.0.0.0/4 keep state pass in quick on uap0 proto udp from any to (uap0) port 49152:65535 anchor "dialUpTrigger" all pass in quick inet proto icmp all icmp-type echoreq keep state No queue in use STATES: self tcp 127.0.0.1:65515 -> 127.0.0.1:4444 ESTABLISHED:ESTABLISHED self tcp 192.168.0.100:65486 -> 173.194.35.7:80 TIME_WAIT:TIME_WAIT ............... As I write you I have internet connection on en5 (192.168.0.100) and I'd like to nat the traffic from wireless uap0 to en5 (so wireless clients with ip 192.168.1.X can go to internet). You suggested me to add this rule: nat on uap0 from 192.168.1.0/24 to any -> (en5) There are two problems: 1. I don't know which is the configuration file for pfctl (the file /etc/pf.conf) contains only comments). ho can I discover the current configuration file? 2. Where do I have to insert the new nat rule? It seems to me that there is some rules which are in conflit con the new nat rule. Thanks marco spinetti(deleted) 2014-04-29T08:44:39Z post110064: Re: Get absolute fulll path of running process Colin Burgess(deleted) http://community.qnx.com/sf/go/post110064 2014-04-28T13:54:01Z 2014-04-28T13:54:01Z Just read the stack using read() on /proc/<pid>/as, once past argc then they are all char pointers until you hit the auxv array. It may be useful to find it in a local process first, either in gdb or printing out the values. On 2014-04-28 9:32 AM, atish bhowmick wrote: > yeah i m using 6.5 , when u say scan thru starting from initial_stack address , are the subsequent members contiguous memory locations , if not how do i parse them since they r not accessible via any devctl structures such as debug_process_info > > > > _______________________________________________ > > Technology > http://community.qnx.com/sf/go/post110062 > To cancel your subscription to this discussion, please e-mail technology-networking-unsubscribe@community.qnx.com Colin Burgess(deleted) 2014-04-28T13:54:01Z post110063: Re: io-pkt-v6-hc.core maurice gibbs(deleted) http://community.qnx.com/sf/go/post110063 2014-04-28T13:42:58Z 2014-04-28T13:42:58Z Thanks for the analysis. maurice gibbs(deleted) 2014-04-28T13:42:58Z post110062: Re: Get absolute fulll path of running process atish bhowmick(deleted) http://community.qnx.com/sf/go/post110062 2014-04-28T13:32:38Z 2014-04-28T13:32:38Z yeah i m using 6.5 , when u say scan thru starting from initial_stack address , are the subsequent members contiguous memory locations , if not how do i parse them since they r not accessible via any devctl structures such as debug_process_info atish bhowmick(deleted) 2014-04-28T13:32:38Z post110059: Re: Get absolute fulll path of running process Colin Burgess(deleted) http://community.qnx.com/sf/go/post110059 2014-04-28T12:59:53Z 2014-04-28T12:59:53Z Is this on 6.5? The fullpath of the executable is stored on the auxv array on the stack. Basically if you start with the initial_stack value from the process info, then you can scan through... argc argv0 ... argvn NULL envp1 ... envpn NULL auxv Then look for auxv[AT_EXEFILE] On 2014-04-28 6:43 AM, atish bhowmick wrote: > I am trying to extract the absolute full path of executing processes from the proc file system by reading the file the /proc/pid/as using devctl. > > struct dinfo_s { > procfs_debuginfo info; > char pathbuffer[PATH_MAX]; > }; > struct dinfo_s dinfo; > sprintf( buffer, "/proc/%d/as", pid ); > if ((fd = open( buffer, O_RDONLY )) != NULL) > { > status = devctl( fd, DCMD_PROC_MAPDEBUG_BASE, &dinfo, sizeof(dinfo), NULL ); > printf("path %s \n", dinfo.info.path); > } > > But the path info I get is the relative path which is dependent on the launchpoint of the process i.e if an exe is launched as ./app1 , its full path shows as ./app1 instead of its absolute path . > > How do I extract the absolute path of a running process ? > > > > > > _______________________________________________ > > Technology > http://community.qnx.com/sf/go/post110057 > To cancel your subscription to this discussion, please e-mail technology-networking-unsubscribe@community.qnx.com Colin Burgess(deleted) 2014-04-28T12:59:53Z post110057: Get absolute fulll path of running process atish bhowmick(deleted) http://community.qnx.com/sf/go/post110057 2014-04-28T10:43:48Z 2014-04-28T10:43:48Z I am trying to extract the absolute full path of executing processes from the proc file system by reading the file the /proc/pid/as using devctl. struct dinfo_s { procfs_debuginfo info; char pathbuffer[PATH_MAX]; }; struct dinfo_s dinfo; sprintf( buffer, "/proc/%d/as", pid ); if ((fd = open( buffer, O_RDONLY )) != NULL) { status = devctl( fd, DCMD_PROC_MAPDEBUG_BASE, &dinfo, sizeof(dinfo), NULL ); printf("path %s \n", dinfo.info.path); } But the path info I get is the relative path which is dependent on the launchpoint of the process i.e if an exe is launched as ./app1 , its full path shows as ./app1 instead of its absolute path . How do I extract the absolute path of a running process ? atish bhowmick(deleted) 2014-04-28T10:43:48Z post110056: Re: routing wireless traffic to lan marco spinetti(deleted) http://community.qnx.com/sf/go/post110056 2014-04-28T07:50:56Z 2014-04-28T07:50:56Z Nick, what happens if a wifi ip want to talk with one other wifi ip? Does it make sense to add in pf.conf, before nat rule: pass quick on wlan0 from 192.168.1.0/24 to 192.168.1.1 where 192.168.1.1 is the ip of wlan0? Thanks marco spinetti(deleted) 2014-04-28T07:50:56Z post110038: Re: routing wireless traffic to lan marco spinetti(deleted) http://community.qnx.com/sf/go/post110038 2014-04-24T20:59:00Z 2014-04-24T20:59:00Z Last question: my pf.conf under /etc is actually empty. If I insert the rule inside it, is it in the right position given my routing table (first post)? Thanks very much marco spinetti(deleted) 2014-04-24T20:59:00Z post110036: Re: routing wireless traffic to lan Nick Reilly http://community.qnx.com/sf/go/post110036 2014-04-24T17:04:51Z 2014-04-24T17:04:51Z Yes: nat on wlan0 from 192.168.1.0/24 to any -> (en0) Nick Reilly 2014-04-24T17:04:51Z post110034: Re: routing wireless traffic to lan marco spinetti(deleted) http://community.qnx.com/sf/go/post110034 2014-04-24T16:25:40Z 2014-04-24T16:25:40Z > It should be your actual IP address on the LAN and not the gateway IP address > but the rest is correct. Ok my actual ip. Can I insert en0 (lan) instead of my actual ip? marco spinetti(deleted) 2014-04-24T16:25:40Z post110031: Re: routing wireless traffic to lan Nick Reilly http://community.qnx.com/sf/go/post110031 2014-04-24T14:48:18Z 2014-04-24T14:48:18Z It should be your actual IP address on the LAN and not the gateway IP address but the rest is correct. Nick Reilly 2014-04-24T14:48:18Z post110030: Re: routing wireless traffic to lan marco spinetti(deleted) http://community.qnx.com/sf/go/post110030 2014-04-24T14:46:12Z 2014-04-24T14:46:12Z Then I should insert in /etc/pf.conf the following rule: nat on wlan0 from 192.168.1.0/24 to any -> 192.168.0.1 Is it correct? My wifi clients has addresses 192.168.1.X and my gateway 8connected to internet is 192.168.0.1). Thanks marco spinetti(deleted) 2014-04-24T14:46:12Z post110029: Re: routing wireless traffic to lan Nick Reilly http://community.qnx.com/sf/go/post110029 2014-04-24T14:27:45Z 2014-04-24T14:27:45Z You are going to need to setup NAT. This is done in QNX through PF, see http://www.qnx.com/developers/docs/660/index.jsp?topic=%2Fcom.qnx.doc.neutrino.utilities%2Ftopic%2Fp%2Fpf.conf.html especially the section beginning "Translation examples". Nick Reilly 2014-04-24T14:27:45Z post110028: Re: routing wireless traffic to lan marco spinetti(deleted) http://community.qnx.com/sf/go/post110028 2014-04-24T14:10:39Z 2014-04-24T14:10:39Z Today I checked the variable net.inet.ip.forwarding and its value is 1: net.inet.ip.forwarding=1 What else do I have to do to be my wifi clients able to browse internet (gateway 192.168.0.1)? Thanks marco spinetti(deleted) 2014-04-24T14:10:39Z post110009: Re: io-pkt-v6-hc.core Nick Reilly http://community.qnx.com/sf/go/post110009 2014-04-23T20:24:32Z 2014-04-23T20:24:32Z This isn't an init time issue, it's whilst running data. There was a TCP packet received that triggered the output of a TCP packet (e.g. received an ACK and send outstanding data, received data and sending a delayed ACK etc.). When going to send the packet the devn driver has requested memory from the shim layer and it crashed when trying to give that memory to the devn driver. The memory it is handing back is something that has been previously freed, I would be suspicious that maybe what was put on the free list wasn't actually what was allocated before and maybe check the devn driver in detail. Nick Reilly 2014-04-23T20:24:32Z post110007: io-pkt-v6-hc.core maurice gibbs(deleted) http://community.qnx.com/sf/go/post110007 2014-04-23T20:06:07Z 2014-04-23T20:06:07Z I am running io-pkt-v6-hc on a PPC460. A memory fault (core dump) was detected by my verification engineer on our board. I have run gdb on the corefile (no symbols). Can someone tell me if the trace information: a. iis ndicative of a problem that happened while initializing io-pkt or the shim layer. b. is a known problem with a knonw work-around or fix. I'd also like to know the root cause of the problem if possible. Thanks. Here is the gdb output: moman@cesium:~/workspace/debug$ moman@cesium:~/workspace/debug$ ./ntoppc-gdb ./io-pkt-v6-hc ./io-pkt-v6-hc.core GNU gdb 6.8 qnx-nto (rev. 347) Copyright (C) 2008 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html> This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. Type "show copying" and "show warranty" for details. This GDB was configured as "--host=i686-pc-linux-gnu --target=powerpc-unknown-nto-qnx6.4.0"... (no debugging symbols found) Reading symbols from /mnt/workspace/debug/libc.so.3...(no debugging symbols found)...done. Loaded symbols for libc.so.3 Reading symbols from /mnt/workspace/debug/devnp-shim.so...(no debugging symbols found)...done. Loaded symbols for devnp-shim.so Reading symbols from /mnt/workspace/debug/devn-comm300-ep460c.so...(no debugging symbols found)...done. Loaded symbols for devn-comm300-ep460c.so Program terminated with signal 11, Segmentation fault. [New process 458782 thread 1] [New process 458782 thread 2] #0 0x480f4e9c in segv_handler () (gdb) bt #0 0x480f4e9c in segv_handler () #1 <signal handler called> #2 0xfe388ac8 in UseFreeEntry () from devnp-shim.so #3 0xfe388d44 in MemchunkMalloc () from devnp-shim.so #4 0xfe3883fc in ex_alloc () from devnp-shim.so #5 0xfe3950a4 in ppc405_alloc_npkt () from devn-comm300-ep460c.so #6 0xfe396820 in ppc405_send_packets () from devn-comm300-ep460c.so #7 0xfe389f70 in shim_start () from devnp-shim.so #8 0x4808cea8 in ifq_enqueue_wtp () #9 0x48097ffc in ether_output () #10 0x480da0dc in ip_output () #11 0x48127274 in tcp_output () #12 0x481255a0 in tcp_input () #13 0x480d32fc in ip_input () #14 0x480d339c in ip_intr () #15 0x4810ff44 in process_pkts () #16 0x4811086c in receive_loop_uni () #17 0x48102294 in thread_init () #18 0xfe3206b4 in timer_settime () from libc.so.3 Backtrace stopped: previous frame inner to this frame (corrupt stack?) (gdb) maurice gibbs(deleted) 2014-04-23T20:06:07Z post110006: Re: routing wireless traffic to lan marco spinetti(deleted) http://community.qnx.com/sf/go/post110006 2014-04-23T19:37:48Z 2014-04-23T19:37:48Z > Are you sure you want to route or do you actually want to NAT? > > For routing you simply need to enable the sysctl for forwarding. For NAT you > will need to load the PF lsm and setup the PF rules. I'd like that my wireless clients (with ip 192.168.1.) went redirected to my link#5 which is connected to internet. Should I do that with route or nat? What exaclty do I have to set? marco spinetti(deleted) 2014-04-23T19:37:48Z post109998: Re: process identification inside io-pkt pfil hook Nick Reilly http://community.qnx.com/sf/go/post109998 2014-04-23T16:20:55Z 2014-04-23T16:20:55Z The short answer is that you cannot. None of the utilities like tcpdump or pf provide this capability. About the only thing you can do is see who has file descriptors open to io-pkt (like the output of "pidin fds"), but that doesn't stop someone from hand crafting a packet, writing it to io-pkt and closing before you go and look. You would have to do kernel tracing and catch who is writing to io-pkt. Nick Reilly 2014-04-23T16:20:55Z post109989: Re: routing wireless traffic to lan Nick Reilly http://community.qnx.com/sf/go/post109989 2014-04-23T15:34:54Z 2014-04-23T15:34:54Z Are you sure you want to route or do you actually want to NAT? For routing you simply need to enable the sysctl for forwarding. For NAT you will need to load the PF lsm and setup the PF rules. Nick Reilly 2014-04-23T15:34:54Z post109974: Re: routing wireless traffic to lan marco spinetti(deleted) http://community.qnx.com/sf/go/post109974 2014-04-22T16:52:55Z 2014-04-22T16:52:55Z can someone help me? marco spinetti(deleted) 2014-04-22T16:52:55Z post109968: routing wireless traffic to lan marco spinetti(deleted) http://community.qnx.com/sf/go/post109968 2014-04-18T21:25:58Z 2014-04-18T21:25:58Z Hi have qnx 6.3.2 and I'd like to route the traffic from wlan to lan where I'm connected to internet. Wlan range address is 192.168.1.X while lan is 192.168.0.X. Gateway lan is 192.168.0.1. Now I can the following routing table: default 192.168.0.1 UG 10.0.0.0/24 link#3 U 10.0.0.255 link#3 UHL 127.0.0.1 127.0.0.1 UH 192.168.0.0/24 #ink#5 U 192.168.0.0/16 192.168.0.1 U 192.168.0.1 XX:xx:xx:xx:xx:xx UHL 192.168.1.0/24 link#6 U 192.168.1.1 yy:yy:yy:yy:yy:yy UHL 239:255:255:250/32 192.168.1.1 UG Thanks verymuch marco spinetti(deleted) 2014-04-18T21:25:58Z post109938: Re: Open TCP ports on termination Robert Murrell http://community.qnx.com/sf/go/post109938 2014-04-16T17:26:52Z 2014-04-16T17:26:52Z An Internet search on CLOSE_WAIT shows that there is no remedy for this condition. When QNX cleans up an abnormally-terminated process, it would be nice if it called shutdown() on any open sockets on behalf of the process. Robert Murrell 2014-04-16T17:26:52Z post109937: Re: Open TCP ports on termination Robert Murrell http://community.qnx.com/sf/go/post109937 2014-04-16T16:36:56Z 2014-04-16T16:36:56Z I just noticed this. The ports are in CLOSE_WAIT, not TIME_WAIT, so SO_REUSEADDR does not apply. I did notice that the connections from the Ethernet cards do eventually time out, but the localhost ones are still present. Robert Murrell 2014-04-16T16:36:56Z post109936: Re: Open TCP ports on termination Robert Murrell http://community.qnx.com/sf/go/post109936 2014-04-16T15:11:43Z 2014-04-16T15:11:43Z Thanks for the quick reply. The setsockopt() function succeeds but does not help. netstat does show the port in the CLOSE_WAIT state. Robert Murrell 2014-04-16T15:11:43Z post109935: Re: Open TCP ports on termination Mate Szarvas http://community.qnx.com/sf/go/post109935 2014-04-16T12:53:40Z 2014-04-16T12:53:40Z The implementation returning EADDRINUSE is by design, you can learn about it by searching for TCP TIME_WAIT state; random hits: http://hea-www.harvard.edu/~fine/Tech/addrinuse.html http://www.microhowto.info/howto/listen_on_a_tcp_port_with_connections_in_the_time_wait_state.html Code similar to the following may stop getting EADDRINUSE: int yes = 1; setsockopt(sock, SOL_SOCKET, SO_REUSEADDR, &yes, sizeof(yes)); On Apr 16, 2014, at 9:36 PM, Robert Murrell <community-noreply@qnx.com<mailto:community-noreply@qnx.com>> wrote: I am developing under QNX 6.5.0 an embedded system with a minimal QNX install. Our application has a built in web server listening on port 80 (its in a blocking accept() call). If the program terminates, either by a SIGTERM or crash, a boot program will restart the program. When the program restarts, the bind() fails with EADDRINUSE. Whats more, when dhcp.client gets an IP address, it call a custom dhcp-up program I wrote. This program opens a socket, connects to http://localhost:80, and sends a specially crafted HTTP GET command to signal our application that it has an IP address. If this happens when the TCP port is in this busy condition. the connect() is successful and so is the send(). But the call to recv() blocks forever, locking up dhcp-up. I know I can make dhcp-up a little more robust to time out in this condition, but I did not expect the connect() to pass. I was under the impression that QNX automatically cleans up after a terminated program by releasing all its allocated resources. Apparently this does not include in-use TCP ports. An internet search shows this to be a fairly common problem with TCP/IP stacks and there are various tools available to reset the stack. So my question is, does QNX have a mechanism to remedy this situation? I have tested killing io-pkt-v4, restarting it, and then remounting the Ethernet drivers. This works, but I would like to know if there is something a little more elegant to fix this. _______________________________________________ Technology http://community.qnx.com/sf/go/post109933 To cancel your subscription to this discussion, please e-mail technology-networking-unsubscribe@community.qnx.com Mate Szarvas 2014-04-16T12:53:40Z post109933: Open TCP ports on termination Robert Murrell http://community.qnx.com/sf/go/post109933 2014-04-16T12:36:16Z 2014-04-16T12:36:16Z I am developing under QNX 6.5.0 an embedded system with a minimal QNX install. Our application has a built in web server listening on port 80 (its in a blocking accept() call). If the program terminates, either by a SIGTERM or crash, a boot program will restart the program. When the program restarts, the bind() fails with EADDRINUSE. Whats more, when dhcp.client gets an IP address, it call a custom dhcp-up program I wrote. This program opens a socket, connects to http://localhost:80, and sends a specially crafted HTTP GET command to signal our application that it has an IP address. If this happens when the TCP port is in this busy condition. the connect() is successful and so is the send(). But the call to recv() blocks forever, locking up dhcp-up. I know I can make dhcp-up a little more robust to time out in this condition, but I did not expect the connect() to pass. I was under the impression that QNX automatically cleans up after a terminated program by releasing all its allocated resources. Apparently this does not include in-use TCP ports. An internet search shows this to be a fairly common problem with TCP/IP stacks and there are various tools available to reset the stack. So my question is, does QNX have a mechanism to remedy this situation? I have tested killing io-pkt-v4, restarting it, and then remounting the Ethernet drivers. This works, but I would like to know if there is something a little more elegant to fix this. Robert Murrell 2014-04-16T12:36:16Z post109865: Re: process identification inside io-pkt pfil hook atish bhowmick(deleted) http://community.qnx.com/sf/go/post109865 2014-04-09T10:12:50Z 2014-04-09T10:12:50Z Does any of the native utilities on QNX such as tcpdump or the Packet Filter (pf) module (which acts like an ipfilter , firewall & NAT) capture and display the process id information with respect to a specific packet captured ? If they do how ? Basically now that I have captured all the tcp/ip header info from the packet mbuf such as ip , port , I am trying to find a way to trace back this packet to the process/application who initiated the request . TIA Atish atish bhowmick(deleted) 2014-04-09T10:12:50Z post109844: Re: process identification inside io-pkt pfil hook Nick Reilly http://community.qnx.com/sf/go/post109844 2014-04-08T12:33:56Z 2014-04-08T12:33:56Z You can't tell which process is associated with the packet. The hooks are right down at a low layer in the network stack, way below where the socket and process mapping is available. Nick Reilly 2014-04-08T12:33:56Z post109839: process identification inside io-pkt pfil hook atish bhowmick(deleted) http://community.qnx.com/sf/go/post109839 2014-04-08T08:47:56Z 2014-04-08T08:47:56Z I have a packet filter implemented using the pfil interface which I am mounting into the io-pkt . In both the input and output hooks , how do I extract information with regards to process identification whoever is making this connection request ? the hooks have signature : hook(void *arg, struct mbuf **m, struct ifnet *ifp, int dir) how can i get the pid or any relevant process information about the process who is making the network calls which results in transmission of packet ? Any information / sample code would be useful . TIA Atish atish bhowmick(deleted) 2014-04-08T08:47:56Z post109747: Re: VLAN frames transmission using packet filters Muralidhar Duvvuri http://community.qnx.com/sf/go/post109747 2014-04-02T08:41:23Z 2014-04-02T08:41:23Z Can you please post a template as to how I can add the VLAN tag as part of the payload? Or if there is some documentation which you can point to, that would be great. Muralidhar Duvvuri 2014-04-02T08:41:23Z post109692: how to intercept http packet using io-pkt pfil atish bhowmick(deleted) http://community.qnx.com/sf/go/post109692 2014-03-31T09:41:43Z 2014-03-31T09:41:43Z I am trying to implement a pfil so which taps into any outgoing http packet . I have registered the outgoing hook to IP layer . In the out hook I am able to extract data (source & destination ip addr & port nos. using mtod from IP & TCP headers present in mbuf . I am able to intercept all the phrelay/qconn packets being exchanged . But I am not able to intercept any http packet when I invoke the browser and open any webpage . I dont get any trace in sloginfo with destination port as 80 which http uses . Please provide any pointers as to whats required to intercept a http request packet in pfil . Below is a code snippet for reference : struct pfil_head *pfh_inet = pfil_head_get(PFIL_TYPE_AF, AF_INET); pfil_add_hook(output_hook, NULL, PFIL_OUT | PFIL_WAITOK,pfh_inet); static int output_hook(void *arg, struct mbuf **m, struct ifnet *ifp, int dir) { out_bytes += (*m)->m_len; struct mbuf* trav = (*m); do{ short mbuf_type = trav->m_type; int mbuf_length = 0; mbuf_length = trav->m_len; int mbuf_flags = trav->m_flags; slogf( _SLOG_SETCODE(_SLOGC_TEST, 2), _SLOG_ERROR, "in our output_hook() mbuf len:%d type:%d flags:%d", mbuf_length,mbuf_type,mbuf_flags); // found a packet header mbuf if(M_PKTHDR == mbuf_flags && MT_HEADER == mbuf_type ) { struct pkthdr pkthdr_data = trav->m_pkthdr; slogf( _SLOG_SETCODE(_SLOGC_TEST, 2), _SLOG_ERROR, "in our output_hook() packet hdr len:%d csumflags:%d csumdata:%u segsize:%u", pkthdr_data.len,pkthdr_data.csum_flags,pkthdr_data.csum_data,pkthdr_data.segsz); } // found a data packet mbuf but where is it ??? if(mbuf_length > 0 ) { struct ip *ipheader = NULL; ipheader = mtod(trav,struct ip *); // lookout for TCP packets if(ipheader && (IPPROTO_TCP == ipheader->ip_p)) { slogf( _SLOG_SETCODE(_SLOGC_TEST, 2),_SLOG_ERROR, "in our output_hook() source ip : %d:%d:%d:%d", (int)(ipheader->ip_src.s_addr&0xFF), (int)((ipheader->ip_src.s_addr&0xFF00)>>8), (int)((ipheader->ip_src.s_addr&0xFF0000)>>16), (int)((ipheader->ip_src.s_addr&0xFF000000)>>24)); slogf( _SLOG_SETCODE(_SLOGC_TEST, 2),_SLOG_ERROR, "in our output_hook() dest ip : %d:%d:%d:%d", (int)(ipheader->ip_dst.s_addr&0xFF), (int)((ipheader->ip_dst.s_addr&0xFF00)>>8), (int)((ipheader->ip_dst.s_addr&0xFF0000)>>16), (int)((ipheader->ip_dst.s_addr&0xFF000000)>>24)); slogf( _SLOG_SETCODE(_SLOGC_TEST, 2),_SLOG_ERROR, "in our output_hook() version : %d hdrl : %d length : %d", ipheader->ip_v,ipheader->ip_hl,ipheader->ip_len); // offset to the tcp header which follows the ip header struct tcphdr *tcpheader = NULL; int iphdrsize = sizeof(struct ip); tcpheader= (struct tcphdr *)((void *)ipheader + iphdrsize); if(tcpheader) { slogf( _SLOG_SETCODE(_SLOGC_TEST, 2),_SLOG_ERROR, "in our output_hook() source port : %d dest port : %d", ntohs(tcpheader->th_sport),ntohs(tcpheader->th_dport)); } } } // go to next buf in chain trav=trav->m_next; }while(NULL != trav); TIA Atish atish bhowmick(deleted) 2014-03-31T09:41:43Z post109691: Re: io-pkt pfil hook atish bhowmick(deleted) http://community.qnx.com/sf/go/post109691 2014-03-31T06:49:58Z 2014-03-31T06:49:58Z Hi Nick , I am able to extract data from IP & TCP headers .I am able to intercept all the phrelay/qconn packets being exchanged . But I am not able to intercept any http packet when I invoke the browser and open any webpage . Please provide any pointers as to whats required to intercept a http request packet . Regards Atish atish bhowmick(deleted) 2014-03-31T06:49:58Z post109664: Re: io-pkt pfil hook atish bhowmick(deleted) http://community.qnx.com/sf/go/post109664 2014-03-28T11:26:54Z 2014-03-28T11:26:54Z Hey Nick , with the help of ur info now I am able to read the port nos. inside the tcp header . I am getting the port nos for qconn & phrelay Qnx services which are running but I am not getting the port no 80 corresponding to http request when I invoke the browser . Can u pls help if anything else needs to be done for http packets . Below is the code snippet which reads ip header & tcp header from mbuf in the outgoing hook : if(mbuf_length > 0 ) { slogf( _SLOG_SETCODE(_SLOGC_TEST, 2),_SLOG_ERROR, "in our output_hook() i m databuffer"); struct ip *ipheader = NULL; ipheader = mtod(trav,struct ip *); // lookout for TCP packets if(ipheader && (6 == ipheader->ip_p)) { slogf( _SLOG_SETCODE(_SLOGC_TEST, 2),_SLOG_ERROR, "in our output_hook() source ip : %d:%d:%d:%d", (int)(ipheader->ip_src.s_addr&0xFF), (int)((ipheader->ip_src.s_addr&0xFF00)>>8), (int)((ipheader->ip_src.s_addr&0xFF0000)>>16), (int)((ipheader->ip_src.s_addr&0xFF000000)>>24)); slogf( _SLOG_SETCODE(_SLOGC_TEST, 2),_SLOG_ERROR, "in our output_hook() dest ip : %d:%d:%d:%d", (int)(ipheader->ip_dst.s_addr&0xFF), (int)((ipheader->ip_dst.s_addr&0xFF00)>>8), (int)((ipheader->ip_dst.s_addr&0xFF0000)>>16), (int)((ipheader->ip_dst.s_addr&0xFF000000)>>24)); slogf( _SLOG_SETCODE(_SLOGC_TEST, 2),_SLOG_ERROR, "in our output_hook() version : %d hdrl : %d length : %d", ipheader->ip_v,ipheader->ip_hl,ipheader->ip_len); // offset to the tcp header which follows the ip header struct tcphdr *tcpheader = NULL; //tcpheader = mtod(trav,struct tcphdr *); int iphdrsize = sizeof(struct ip); tcpheader= (struct tcphdr *)((void *)ipheader + iphdrsize); slogf( _SLOG_SETCODE(_SLOGC_TEST, 2),_SLOG_ERROR, "in our output_hook() ip header size : %d",iphdrsize); slogf( _SLOG_SETCODE(_SLOGC_TEST, 2),_SLOG_ERROR, "in our output_hook() ip header location : %p",(void *)ipheader); slogf( _SLOG_SETCODE(_SLOGC_TEST, 2),_SLOG_ERROR, "in our output_hook() tcp header location : %p",(void *)tcpheader); if(tcpheader) { slogf( _SLOG_SETCODE(_SLOGC_TEST, 2),_SLOG_ERROR, "in our output_hook() source port : %04x dest port : %04x", tcpheader->th_sport,tcpheader->th_dport); } } } TIA Atish atish bhowmick(deleted) 2014-03-28T11:26:54Z post109629: Re: io-pkt pfil hook atish bhowmick(deleted) http://community.qnx.com/sf/go/post109629 2014-03-27T11:48:42Z 2014-03-27T11:48:42Z Hey Nick , ur info helped a lot ... now I am able to read the IP header from mbuf & extract source & dest ip address from the structure . I also need to read the TCp header & read port numbers . I tried offesetting to TCp header from the IP header if the IP protocol value is 6 (TCP) & read port nos . but I am not sure I am getting proper values . I want to filter out any http requests by detecting the destination port no = 80 , but right now I am mever getting the value 80 after I invoke a http request using the browser . Below is the code snippet I have used ... any pointers as to what might be wrong wud b immensely helpful . struct ip *ipheader = NULL; ipheader = mtod(trav,struct ip *); slogf( _SLOG_SETCODE(_SLOGC_TEST, 2),_SLOG_ERROR, "in our output_hook() mtod done for ip"); // lookout for TCP packets if(ipheader && (6 == ipheader->ip_p)) { slogf( _SLOG_SETCODE(_SLOGC_TEST, 2),_SLOG_ERROR, "in our output_hook() source ip : %d:%d:%d:%d", (int)(ipheader->ip_src.s_addr&0xFF), (int)((ipheader->ip_src.s_addr&0xFF00)>>8), (int)((ipheader->ip_src.s_addr&0xFF0000)>>16), (int)((ipheader->ip_src.s_addr&0xFF000000)>>24)); slogf( _SLOG_SETCODE(_SLOGC_TEST, 2),_SLOG_ERROR, "in our output_hook() dest ip : %d:%d:%d:%d", (int)(ipheader->ip_dst.s_addr&0xFF), (int)((ipheader->ip_dst.s_addr&0xFF00)>>8), (int)((ipheader->ip_dst.s_addr&0xFF0000)>>16), (int)((ipheader->ip_dst.s_addr&0xFF000000)>>24)); slogf( _SLOG_SETCODE(_SLOGC_TEST, 2),_SLOG_ERROR, "in our output_hook() version : %d hdrl : %d length : %d", ipheader->ip_v,ipheader->ip_hl,ipheader->ip_len); struct tcphdr *tcpheader = NULL; tcpheader= (struct tcphdr *)(ipheader + (ipheader->ip_hl*4)); slogf( _SLOG_SETCODE(_SLOGC_TEST, 2),_SLOG_ERROR, "in our output_hook() mtod done for tcp"); if(tcpheader) { slogf( _SLOG_SETCODE(_SLOGC_TEST, 2),_SLOG_ERROR, "in our output_hook() source port : %04x dest port : %04x", tcpheader->th_sport, tcpheader->th_dport); } } TIA Atish atish bhowmick(deleted) 2014-03-27T11:48:42Z post109619: Re: io-pkt pfil hook Nick Reilly http://community.qnx.com/sf/go/post109619 2014-03-26T18:15:15Z 2014-03-26T18:15:15Z Forgot to mention, watch out that on output you may have a chain, always check (*m)->m_len before doing the mtod() to make sure you have enough data there. Nick Reilly 2014-03-26T18:15:15Z post109618: Re: io-pkt pfil hook Nick Reilly http://community.qnx.com/sf/go/post109618 2014-03-26T18:13:36Z 2014-03-26T18:13:36Z The mbuf contains the data on the wire, nothing to do with sockaddr. You need to do something like: #include <netinet/ip.h> struct ip *ip; ip = mtod(*m, struct ip *); Then you have the addresses in ip->ip_src, ip->ip_dst. The protocol in ip->ip_p will tell you what to cast the next bunch of bytes to in order to decode them. Nick Reilly 2014-03-26T18:13:36Z post109612: Re: io-pkt pfil hook atish bhowmick(deleted) http://community.qnx.com/sf/go/post109612 2014-03-26T13:42:03Z 2014-03-26T13:42:03Z I had some success in walking thru the mbufs constituting the packet with some code modifications . The 1st mbuf is the header foloowed by the data mbufs . I am able to traverse thru the mbufs and extract some info related to length of data & packet . But I cant figure out the location of the ip layer information inside the data mbufs . when I access some of the char sequence members of the mbuf such as MH_databuf & M_databuf using mtod I get some sequence of chars . Am I looking in the wrong place ? Pls give me some pointers . Below is the code of the hook for reference : static int output_hook(void *arg, struct mbuf **m, struct ifnet *ifp, int dir) { out_bytes += (*m)->m_len; struct mbuf* trav = (*m); do{ short mbuf_type = trav->m_type; int mbuf_length = trav->m_len; int mbuf_flags = trav->m_flags; //char * mbuf_hdrdata = (*m)->m_data; //struct mowner * mbuf_owner = (*m)->m_owner; //char * mbuf_data = (*m)->m_dat; //char *mdata = (char *)malloc(mbuf_length+1); //strncpy(mdata,mbuf_hdrdata,mbuf_length); //mdata[mbuf_length]='\0'; slogf( _SLOG_SETCODE(_SLOGC_TEST, 2), _SLOG_ERROR, "in our output_hook() mbuf len:%d type:%d flags:%d", mbuf_length,mbuf_type,mbuf_flags); // found a packet header mbuf if(M_PKTHDR == mbuf_flags) { struct pkthdr pkthdr_data = trav->m_pkthdr; slogf( _SLOG_SETCODE(_SLOGC_TEST, 2), _SLOG_ERROR, "in our output_hook() packet hdr len:%d csumflags:%d csumdata:%u segsize:%u", pkthdr_data.len,pkthdr_data.csum_flags,pkthdr_data.csum_data,pkthdr_data.segsz); struct ifnet *if_data = NULL; if_data = pkthdr_data.rcvif; if(if_data) { struct sockaddr *dest_sa = NULL; int fam = -1; int port = -1; if(if_data->if_dl && if_data->if_dl->ifa_dstaddr) { dest_sa = if_data->if_dl->ifa_dstaddr; if(dest_sa){ port = ntohs(((struct sockaddr_in*)dest_sa)->sin_port); fam = ((struct sockaddr_in*)dest_sa)->sin_family; } } slogf( _SLOG_SETCODE(_SLOGC_TEST, 2), _SLOG_ERROR, "in our output_hook() socket info:%d %d",port,fam); } } // found a data packet mbuf but where is it ??? else if(MT_DATA == mbuf_type ) { //char databuffer[MLEN]= {0}; //strcpy(databuffer,trav->m_dat); //char * databuffer = trav->m_dat; //char *pdata = (char *)malloc(mbuf_length+1); //strncpy(pdata,databuffer,mbuf_length); //pdata[mbuf_length]='\0'; slogf( _SLOG_SETCODE(_SLOGC_TEST, 2),_SLOG_ERROR, "in our output_hook() i m databuffer"); } // go to next buf in chain trav=trav->m_next; }while(NULL != trav); return 0; // 0 means allow, 1 means block } atish bhowmick(deleted) 2014-03-26T13:42:03Z post109603: Re: io-pkt pfil hook atish bhowmick(deleted) http://community.qnx.com/sf/go/post109603 2014-03-25T12:44:59Z 2014-03-25T12:44:59Z Hey Nick , thnx for ur reply ... i tried few things on mbuf today but without any success . I have registered my output_hook as : pfh_inet = pfil_head_get(PFIL_TYPE_AF, AF_INET); pfil_add_hook(output_hook, NULL, PFIL_OUT | PFIL_WAITOK,pfh_inet); So I am expecting IP layer data in my mbuf . The only data structure containing struct sock_addr inside struct mbuf is pkthdr_data.rcvif of struct ifnet type . So i was trying to access this member to get port & ip information but its empty . Also in my traversal i follow the next packet link but if i follow the next buffer link of same chain I get segmentation issues . Below is a code snippet of the hook function . Any pointers as to what I am doing wrong wud be very useful . static int output_hook(void *arg, struct mbuf **m, struct ifnet *ifp, int dir) { out_bytes += (*m)->m_len; struct mbuf* trav = (*m); do{ short mbuf_type = trav->m_type; int mbuf_length = trav->m_len; int mbuf_flags = trav->m_flags; struct pkthdr pkthdr_data = trav->m_pkthdr; struct ifnet *if_data = NULL; slogf( _SLOG_SETCODE(_SLOGC_TEST, 2), _SLOG_ERROR, "in our output_hook() mbuf len:%d type:%d flags:%d", mbuf_length,mbuf_type,mbuf_flags); slogf( _SLOG_SETCODE(_SLOGC_TEST, 2), _SLOG_ERROR, "in our output_hook() packet hdr len:%d csumflags:%d csumdata:%u segsize:%u", pkthdr_data.len,pkthdr_data.csum_flags,pkthdr_data.csum_data,pkthdr_data.segsz); if_data = pkthdr_data.rcvif; if(if_data) { struct sockaddr *dest_sa = NULL; int fam = -1; int port = -1; if(if_data->if_dl && if_data->if_dl->ifa_dstaddr) { dest_sa = if_data->if_dl->ifa_dstaddr; if(dest_sa){ port = ntohs(((struct sockaddr_in*)dest_sa)->sin_port); fam = ((struct sockaddr_in*)dest_sa)->sin_family; } } slogf( _SLOG_SETCODE(_SLOGC_TEST, 2), _SLOG_ERROR, "in our output_hook() socket info:%d %d",port,fam); } // go to next packet trav=trav->m_nextpkt; }while(NULL != trav); return 0; // 0 means allow, 1 means block } TIA Atish atish bhowmick(deleted) 2014-03-25T12:44:59Z post109587: Re: io-pkt pfil hook Nick Reilly http://community.qnx.com/sf/go/post109587 2014-03-24T13:50:56Z 2014-03-24T13:50:56Z The packet is a struct mbuf * located in *m. It is going to depend on the parameters you passed to pfil_add_hook() on whether you just have the IP layer or a full layer 2 packet (e.g. Ethernet layer). Also you need to watch out for whether you have the full packet in one mbuf or whether it is distributed along a chain of mbufs requiring you to walk the chain whilst traversing the packet. Once you've got these things sorted out, you can just mtod() it and extract the fields directly. Nick Reilly 2014-03-24T13:50:56Z post109577: io-pkt pfil hook atish bhowmick(deleted) http://community.qnx.com/sf/go/post109577 2014-03-24T11:49:01Z 2014-03-24T11:49:01Z I have a packet filter implemented using the pfil interface which I am mounting into the io-pkt . In both the input and output hooks , how do I extract information such as source & destination ip-address , port no of the packets ? the hooks have signature : hook(void *arg, struct mbuf **m, struct ifnet *ifp, int dir) how can I get all the relevant packet data coming in / going out inside these hooks functions which are getting called ? Any information / sample code would be useful . atish bhowmick(deleted) 2014-03-24T11:49:01Z post109003: Re: subscribing to Multicast ethernet addresses Nick Reilly http://community.qnx.com/sf/go/post109003 2014-02-24T14:16:55Z 2014-02-24T14:16:55Z Please see SIOCADDMULTI / SIOCDELMULTI Nick Reilly 2014-02-24T14:16:55Z post109002: subscribing to Multicast ethernet addresses Muralidhar Duvvuri http://community.qnx.com/sf/go/post109002 2014-02-24T14:09:33Z 2014-02-24T14:09:33Z Is there some API where in I can subscribe to multicast ethernet addresses? I do not have mutlicast IP address and so cant do it using the IP_ADDMEMBERSHIP method. Muralidhar Duvvuri 2014-02-24T14:09:33Z post108939: RE: unable to mount packet filter LSM into io-pkt-v4-hc Mario Charest http://community.qnx.com/sf/go/post108939 2014-02-20T16:11:00Z 2014-02-20T16:11:00Z The boot process detects and mount the proper network driver. You can find out which one it is by doing pidin -P io-pkt-v4-hc mem. You`ll see the dll. -----Message d'origine----- De : Manoj Sati [mailto:community-noreply@qnx.com] Envoyé : Thursday, February 20, 2014 11:03 AM À : technology-networking Objet : Re: unable to mount packet filter LSM into io-pkt-v4-hc Ok, i did a "slay io-pkt-v4-hc" and then a /sbin/io-pkt-v4-hc -ptcpip, several things happen: a) i lose connectivity with the Momentics IDE machine b) i/f wm0 is again missing when i do a ifconfig c) the browser on the QNX VM is unable to open any web site... do i need to restart the VM? ps: I did this - /sbin/io-pkt-v4-hc -ptcpip - because when the QNX boots up and i do a ps -ef | grep io-pkt-v4-hc, it shows me the argument for io-pkt-v4-hc as -ptcpip _______________________________________________ Technology http://community.qnx.com/sf/go/post108938 To cancel your subscription to this discussion, please e-mail technology-networking-unsubscribe@community.qnx.com Mario Charest 2014-02-20T16:11:00Z post108938: Re: unable to mount packet filter LSM into io-pkt-v4-hc Manoj Sati(deleted) http://community.qnx.com/sf/go/post108938 2014-02-20T16:02:32Z 2014-02-20T16:02:32Z Ok, i did a "slay io-pkt-v4-hc" and then a /sbin/io-pkt-v4-hc -ptcpip, several things happen: a) i lose connectivity with the Momentics IDE machine b) i/f wm0 is again missing when i do a ifconfig c) the browser on the QNX VM is unable to open any web site... do i need to restart the VM? ps: I did this - /sbin/io-pkt-v4-hc -ptcpip - because when the QNX boots up and i do a ps -ef | grep io-pkt-v4-hc, it shows me the argument for io-pkt-v4-hc as -ptcpip Manoj Sati(deleted) 2014-02-20T16:02:32Z post108937: Re: unable to mount packet filter LSM into io-pkt-v4-hc Nick Reilly http://community.qnx.com/sf/go/post108937 2014-02-20T15:50:09Z 2014-02-20T15:50:09Z There is no way to unmount an lsm from io-pkt, you will need to slay and restart. Nick Reilly 2014-02-20T15:50:09Z post108936: Re: unable to mount packet filter LSM into io-pkt-v4-hc Manoj Sati(deleted) http://community.qnx.com/sf/go/post108936 2014-02-20T15:48:00Z 2014-02-20T15:48:00Z Wow, that seems to have worked....thanks! Any way to unmount my packet filter? do i have do a "slay io-pkt-v4-hc"? Manoj Sati(deleted) 2014-02-20T15:48:00Z post108931: Re: unable to mount packet filter LSM into io-pkt-v4-hc Nick Reilly http://community.qnx.com/sf/go/post108931 2014-02-20T14:39:55Z 2014-02-20T14:39:55Z If you already have an instance of io-pkt running, don't start another one without specifying the prefix option otherwise they will stomp on each other. Your mount command should be mount -T io-pkt /path/to/file/lsm-libSISIPSNetFilter.so The examples of other lsm's that omit the path are where the lsm is already in /lib/dll. Also the type needs to be io-pkt regardless of which variant of io-pkt you are actually running. Keep an eye on slog messages by using sloginfo, io-pkt will report if it has problems with mounts there in more detail than the simple errno that it returns to mount. Nick Reilly 2014-02-20T14:39:55Z post108919: unable to mount packet filter LSM into io-pkt-v4-hc Manoj Sati(deleted) http://community.qnx.com/sf/go/post108919 2014-02-20T07:23:22Z 2014-02-20T07:23:22Z Setup: QNX running on a VM (x86), Momentics IDE 4.7 intent: develop a packet filter that can let us inspect all in/out traffic and potentially reject some. I have read the Packet Filtering chapter from the "Core Networking with io-pkt User's Guide for Neutrino 6.3.2 or later".pdf. I have taken the sample code provided in there and have written a LSM by creating a QNX C Project from Momentics with Type set to "Shared library". There is only one source file with the entry point defined as: struct _iopkt_lsm_entry IOPKT_LSM_ENTRY_SYM(pfil) = IOPKT_LSM_ENTRY_SYM_INIT(pfil_entry); int pfil_entry(void *dll_hdl, struct _iopkt_self *iopkt, char *options) { struct pfil_head *pfh_inet; printf("in the entry point of the packet filter module\n"); // saw this is another posting on Foundry 27, but this did not work for me //pfh_inet = pfil_head_get(PFIL_TYPE_IFT, IFT_ETHER); pfh_inet = pfil_head_get(PFIL_TYPE_AF, AF_INET); if (pfh_inet == NULL) { printf("could not get pfil_head_get()\n"); return ENOENT; } int ret = 0; ret = pfil_add_hook(input_hook, NULL, PFIL_IN | PFIL_WAITOK, pfh_inet); ret = pfil_add_hook(output_hook, NULL, PFIL_OUT | PFIL_WAITOK, pfh_inet); pfh_inet = pfil_head_get(PFIL_TYPE_IFNET,0); if (pfh_inet == NULL) { return ESRCH; } pfil_add_hook(iface_hook, NULL, PFIL_IFNET, pfh_inet); pfil_add_hook(ifacecfg_hook, NULL, PFIL_IFADDR, pfh_inet); printf("Loaded pfil hooks - this time returning 1(one) from the hook function\n" ); return 0; } static int output_hook(void *arg, struct mbuf **m, struct ifnet *ifp, int dir) { out_bytes += (*m)->m_len; return 1; // 0 means allow, 1 means block } functions input_hook(), iface_hook(), ifacecfg_hook(), deinit_module() omitted for brevity. When I compile this, I get the following lines on the Console of the IDE: make.exe[2]: Entering directory `C:/ide-4.7-workspace/SISIPSNetFilter/x86/so' C:/QNX650/host/win32/x86/usr/bin/qcc -Vgcc_ntox86 -c -Wc,-Wall -O -DNDEBUG -I. -IC:/ide-4.7-workspace/SISIPSNetFilter/x86/so -IC:/ide-4.7-workspace/SISIPSNetFilter/x86 -IC:/ide-4.7-workspace/SISIPSNetFilter -IC:/QNX650/target/qnx6/usr/include/io-pkt -IC:/QNX650/target/qnx6/usr/include -shared -DVARIANT_so -DBUILDENV_qss C:/ide-4.7-workspace/SISIPSNetFilter/SISIPSNetFilter.c C:/QNX650/host/win32/x86/usr/bin/rm -f C:/ide-4.7-workspace/SISIPSNetFiler/x86/so/lsm-libSISIPSNetFilter.so C:/QNX650/host/win32/x86/usr/bin/qcc -Vgcc_ntox86 -shared -Wl,-hlsm-libSISIPSNetFilter.so.1 -oC:/ide-4.7-workspace/SISIPSNetFilter/x86/so/lsm-libSISIPSNetFilter.so SISIPSNetFilter.o -L . -L C:/QNX650/target/qnx6/x86/lib -L C:/QNX650/target/qnx6/x86/usr/lib -Wl,--rpath-link . -Wl,--rpath-link C:/QNX650/target/qnx6/x86/lib -Wl,--rpath-link C:/QNX650/target/qnx6/x86/usr/lib C:/QNX650/host/win32/x86/usr/bin/rm -f C:/ide-4.7-workspace/SISIPSNetFilter/x86/so/lsm-libSISIPSNetFilterS.a C:/QNX650/host/win32/x86/usr/bin/qcc -Vgcc_ntox86 -a C:/ide-4.7-workspace/SISIPSNetFiler/x86/so/lsm-libSISIPSNetFilterS.a SISIPSNetFilter.o C:\QNX650\host\win32\x86\usr\bin\ntox86-ar: creating C:/ide-4.7-workspace/SISIPSNetFilter/x86/so/lsm-libSISIPSNetFilterS.a make.exe[2]: Leaving directory `C:/ide-4.7-workspace/SISIPSNetFiler/x86/so' Once the LSM is ready, I copy it to the QNX target, and attempt to mount it to the io-pkt* stack # mount -v -T io-pkt lsm-libSISIPSNetFilter.so Parsed: mount from [lsm-libSISIPSNetFilter.so] mount on [NULL] type [io-pkt] mount: Can't mount / (type io-pkt) mount: Possible reason: No such device or address # mount -v -T io-pkt-v4-hc lsm-libSISIPSNetFilter.so Parsed: mount from [lsm-libSISIPSNetFilter.so] mount on [NULL] type [io-pkt-v4-hc] mount: Can't mount / (type io-pkt-v4-hc) mount: Possible reason: Invalid argument When I launch an instance of io-pkt-v4-hc as below: /sbin/io-pkt-v4-hc -p libSISIPSNetFilter my prints() from the code get printed out: In the entry point of the packet filter module Loaded pfil hooks - this time returning 1(one) from the hook function However, the outbound traffic is not always stopped. It works maybe 1 out of 10 times. Besides, when I do this, I also lose the wm0 interface because when I do an ifconfig, I do not see it any more: lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> mtu 33192 inet 127.0.0.1 netmask 0xff000000 Only when I kill the newly started instance of io-pkt-v4-hc, do I see the wm0 interface back: wm0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500 capabilities rx=7<IP4CSUM,TCP4CSUM,UDP4CSUM> capabilities tx=3f<IP4CSUM,TCP4CSUM,UDP4CSUM,TCP6CSUM,UDP6CSUM,TSO4> enabled=0 address: 00:50:56:91:1b:e2 media: Ethernet autoselect (1000baseT full-duplex) status: active inet 10.211.204.206 netmask 0xfffffe00 broadcast 10.211.205.255 Why does not my mount work? Is the sample code given in the Core Networking Guide incorrect? There was a posting (http://community.qnx.com/sf/discussion/do/listPosts/projects.networking/discussion.technology.topc24644?pageSize=-1#post_post107768) that talked about the docs for packet filtering to be a bit on the lighter side - when will these docs get better? Thanks, ms Manoj Sati(deleted) 2014-02-20T07:23:22Z post108867: Re: TCP_QUICKACK Equivalent? Nick Reilly http://community.qnx.com/sf/go/post108867 2014-02-18T18:40:18Z 2014-02-18T18:40:18Z If you get in touch with your QNX sales or support people they should be able to provide you with the PSP. Nick Reilly 2014-02-18T18:40:18Z post108866: Re: TCP_QUICKACK Equivalent? Mark Dowdy(deleted) http://community.qnx.com/sf/go/post108866 2014-02-18T18:36:30Z 2014-02-18T18:36:30Z Where would I find networking PSP 119. I've looked through the downloads and Googled it without success. Also, is it an official patch release? Thanks. Mark Dowdy(deleted) 2014-02-18T18:36:30Z post108856: Re: TCP_QUICKACK Equivalent? Nick Reilly http://community.qnx.com/sf/go/post108856 2014-02-18T13:48:34Z 2014-02-18T13:48:34Z Unfortunately we don't currently have anything on a per-socket basis, just those system wide sysctls. Setting either of these shouldn't really affect the far end, the delayed ACK is more an optimisation for the data receiver. I've seen some transfers perform significantly better with ack on push - Windows XP sending over a lossy wireless link in particular. Nick Reilly 2014-02-18T13:48:34Z post108817: Re: TCP_QUICKACK Equivalent? Mark Dowdy(deleted) http://community.qnx.com/sf/go/post108817 2014-02-14T22:48:30Z 2014-02-14T22:48:30Z Thanks. As tempted as I am to set net.inet.tcp.ack_on_push or clear qnx.net.inet.tcp.qnx_delack, I really only need this behavior on a couple of sockets connected to one particular device. I'd don't know what we'd be the "friendliest" device if I enabled this behavior system wide. Mark Dowdy(deleted) 2014-02-14T22:48:30Z post108801: Re: TCP_QUICKACK Equivalent? Nick Reilly http://community.qnx.com/sf/go/post108801 2014-02-14T13:52:01Z 2014-02-14T13:52:01Z By default io-pkt does TCP delayed ACKs. If you are running 6.5.0 SP1 with networking PSP 119 or later then there is a new sysctl: qnx.net.inet.tcp.qnx_delack = 1 Clearing this to 0 will disable all delayed ACK behaviour. Alternatively if the data being sent has the PUSH flag set then you can enable the following sysctl: net.inet.tcp.ack_on_push = 0 Setting this to 1 will result in an ACK on every packet received with PUSH set. Nick Reilly 2014-02-14T13:52:01Z post108792: TCP_QUICKACK Equivalent? Mark Dowdy(deleted) http://community.qnx.com/sf/go/post108792 2014-02-13T22:04:30Z 2014-02-13T22:04:30Z Does io-pkt have a TCP_QUICKACK equivalent to force ACKs to be sent immediately rather than delayed in normal TCP operation? I'm seeing delayed ACKs from a QNX box's communication with a small peripheral connected to our system. Thanks. Mark Dowdy(deleted) 2014-02-13T22:04:30Z post108716: Re: my io-pkt-v4 driver overwrites the en0 interface in ifconfig Nick Reilly http://community.qnx.com/sf/go/post108716 2014-02-11T13:45:53Z 2014-02-11T13:45:53Z Ah sorry for the misunderstanding. When it locks up, CTRL-Z the ifconfig and use dumper to grab a core of io-pkt. The backtrace usually has a good clue as to what is going on. Nick Reilly 2014-02-11T13:45:53Z post108715: Re: my io-pkt-v4 driver overwrites the en0 interface in ifconfig Clemens Fischer http://community.qnx.com/sf/go/post108715 2014-02-11T13:43:41Z 2014-02-11T13:43:41Z No, I am loading a driver for a smsc chip which comes up as en0. In addition I am loading a second self written driver via mount which comes up with a user defined three character string which I have defined. The problem now is that when I load the self written driver via mount, assigning an ip with ifconfig fails. Ifconfig just does not return. If I load my driver with io-pkt-v4, i.e. not mounting it, assigning an ip with ifconfig works fine. > You say this is an io-pkt driver and yet it is coming up as en0, are you > actually passing in "en" on the dev_attach() call? You need to pass in a > string that is unique for your driver, typically a 2 or 3 letter abbreviation > for the type of hardware your driver controls. The string "en" is used by the > shim driver for io-net drivers running within io-pkt. Clemens Fischer 2014-02-11T13:43:41Z post108714: Re: my io-pkt-v4 driver overwrites the en0 interface in ifconfig Nick Reilly http://community.qnx.com/sf/go/post108714 2014-02-11T13:31:57Z 2014-02-11T13:31:57Z You say this is an io-pkt driver and yet it is coming up as en0, are you actually passing in "en" on the dev_attach() call? You need to pass in a string that is unique for your driver, typically a 2 or 3 letter abbreviation for the type of hardware your driver controls. The string "en" is used by the shim driver for io-net drivers running within io-pkt. Nick Reilly 2014-02-11T13:31:57Z post108712: Re: my io-pkt-v4 driver overwrites the en0 interface in ifconfig Clemens Fischer http://community.qnx.com/sf/go/post108712 2014-02-11T10:50:37Z 2014-02-11T10:50:37Z I am still facing an issue with the mount version. Mounting the driver works fine and the interface is visible with ifconfig. As soon as I try to associate an IP-Address with the device, ifconfig hangs and does not return. It also seems as if the other active ethernet connections are disconnected, as I can't connect to the target through qconn anymore. I have tracked down the issue to the init function of the driver and this instruction: ifp->if_flags_tx |= IFF_RUNNING; I took this instruction from the speedo implementation. I assume it enables transmission? When I remove this, mount works and I can assign an IP-address just fine, but I can't transmit any data. When using a second io-pkt-v4 instance I don't face this issue. Any ideas? Regards, Clemens > I have chosen the mount version and it works fine. > Thanks guys for the fast and helpful resonse. > > Regards, > Clemens > > > > > If you want them in the same io-pkt: > > > > # mount -T io-pkt /fullpath/to/your_driver.so > > > > Running two instances may be easier for debugging initially. > > > > On Wed, Feb 05, 2014 at 04:54:17PM +0000, Hugh Brown wrote: > > > Are you running 2 instances of io-pkt? If so, then the second instance > > > should be started with ³-ptcpip prefix=/alt² command line argument. To > > > interact with the second instance of io-pkt, you need to prefix all > > > commands with ³SOCK=/alt ifconfig Š² etc. > > > > > > > > > > > > > > > On 2014/2/5, 11:47 AM, "Clemens Fischer" <community-noreply@qnx.com> wrote: > > > > > > >Hi, > > > > > > > >I am currently writing an ethernet driver which basically works fine. > > > >Before loading my driver, I already have an smsc9500 ethernet driver > > > >loaded which is displayed as en0 in ifconfig. > > > >The problem is that as soon as I load my driver via io-pkt-v4, en0 > > > >disappears from ifconfig and my interface is shown instead. > > > >The smsc driver is still working, but I just can't see it in ifconfig > > > >anymore. > > > >As soon as I kill io-pkt-v4 for the new driver, en0 appears again. > > > > > > > >Is there a kind of index or something else I am missing? > > > > > > > >Thanks, > > > >Clemens > > > > > > > > > > > > > > > >_______________________________________________ > > > > > > > >Technology > > > >http://community.qnx.com/sf/go/post108616 > > > >To cancel your subscription to this discussion, please e-mail > > > >technology-networking-unsubscribe@community.qnx.com > > > > > > > > > > > > > > > > > > _______________________________________________ > > > > > > Technology > > > http://community.qnx.com/sf/go/post108618 > > > To cancel your subscription to this discussion, please e-mail technology- > > networking-unsubscribe@community.qnx.com > > Clemens Fischer 2014-02-11T10:50:37Z post108698: Re: VLAN frames transmission using packet filters Nick Reilly http://community.qnx.com/sf/go/post108698 2014-02-10T15:02:19Z 2014-02-10T15:02:19Z It's something I haven't looked in to, but if you want to go that way then I think you will need to have the VLAN stuff as part of the data payload rather than in the sockaddr. Nick Reilly 2014-02-10T15:02:19Z post108696: Re: VLAN frames transmission using packet filters Muralidhar Duvvuri http://community.qnx.com/sf/go/post108696 2014-02-10T14:43:57Z 2014-02-10T14:43:57Z I did not create a vlan pseudo interface. I'll try that now. However, from the QNX help, it seems to mention that creating the VLAN pseudo interface would fill in the VLAN header and insert it into the packet that is going out. Now, my application is itself creating the VLAN header and the Ethernet header and trying to pass the packet directly to the driver using the if_output call on a specific interface. In this sceanrio, is it still required to create a vlan pseudo interface and map it to the actual interface? Muralidhar Duvvuri 2014-02-10T14:43:57Z post108693: Re: VLAN frames transmission using packet filters Nick Reilly http://community.qnx.com/sf/go/post108693 2014-02-10T13:23:49Z 2014-02-10T13:23:49Z Have you tried actually creating a VLAN interface and configuring the VLAN ID field on it, and then doing a transmit on that? Nick Reilly 2014-02-10T13:23:49Z post108692: VLAN frames transmission using packet filters Muralidhar Duvvuri http://community.qnx.com/sf/go/post108692 2014-02-10T10:00:47Z 2014-02-10T10:00:47Z I am trying to transmit Ethernet frames with VLAN headers using the packet filter's if_output method. I set the sockaddr structure sa_data arguments to hold the destination ethernet address, source address, VLAN tag, VLAN flags and the next header type arguments. However, I do not see any packet being transmitted on the wire. If I transmit a frame without the VLAN fields, the transmission happens properly. Does it have to do to with the QNX stack not supporting VLAN frame transmission or the Ethernet driver? Any insight would be helpful. Muralidhar Duvvuri 2014-02-10T10:00:47Z post108660: Re: my io-pkt-v4 driver overwrites the en0 interface in ifconfig Clemens Fischer http://community.qnx.com/sf/go/post108660 2014-02-07T09:54:55Z 2014-02-07T09:54:55Z I have chosen the mount version and it works fine. Thanks guys for the fast and helpful resonse. Regards, Clemens > > If you want them in the same io-pkt: > > # mount -T io-pkt /fullpath/to/your_driver.so > > Running two instances may be easier for debugging initially. > > On Wed, Feb 05, 2014 at 04:54:17PM +0000, Hugh Brown wrote: > > Are you running 2 instances of io-pkt? If so, then the second instance > > should be started with ³-ptcpip prefix=/alt² command line argument. To > > interact with the second instance of io-pkt, you need to prefix all > > commands with ³SOCK=/alt ifconfig Š² etc. > > > > > > > > > > On 2014/2/5, 11:47 AM, "Clemens Fischer" <community-noreply@qnx.com> wrote: > > > > >Hi, > > > > > >I am currently writing an ethernet driver which basically works fine. > > >Before loading my driver, I already have an smsc9500 ethernet driver > > >loaded which is displayed as en0 in ifconfig. > > >The problem is that as soon as I load my driver via io-pkt-v4, en0 > > >disappears from ifconfig and my interface is shown instead. > > >The smsc driver is still working, but I just can't see it in ifconfig > > >anymore. > > >As soon as I kill io-pkt-v4 for the new driver, en0 appears again. > > > > > >Is there a kind of index or something else I am missing? > > > > > >Thanks, > > >Clemens > > > > > > > > > > > >_______________________________________________ > > > > > >Technology > > >http://community.qnx.com/sf/go/post108616 > > >To cancel your subscription to this discussion, please e-mail > > >technology-networking-unsubscribe@community.qnx.com > > > > > > > > > > > > _______________________________________________ > > > > Technology > > http://community.qnx.com/sf/go/post108618 > > To cancel your subscription to this discussion, please e-mail technology- > networking-unsubscribe@community.qnx.com Clemens Fischer 2014-02-07T09:54:55Z post108626: Re: my io-pkt-v4 driver overwrites the en0 interface in ifconfig Sean Boudreau(deleted) http://community.qnx.com/sf/go/post108626 2014-02-05T19:58:47Z 2014-02-05T19:58:47Z If you want them in the same io-pkt: # mount -T io-pkt /fullpath/to/your_driver.so Running two instances may be easier for debugging initially. On Wed, Feb 05, 2014 at 04:54:17PM +0000, Hugh Brown wrote: > Are you running 2 instances of io-pkt? If so, then the second instance > should be started with ³-ptcpip prefix=/alt² command line argument. To > interact with the second instance of io-pkt, you need to prefix all > commands with ³SOCK=/alt ifconfig Š² etc. > > > > > On 2014/2/5, 11:47 AM, "Clemens Fischer" <community-noreply@qnx.com> wrote: > > >Hi, > > > >I am currently writing an ethernet driver which basically works fine. > >Before loading my driver, I already have an smsc9500 ethernet driver > >loaded which is displayed as en0 in ifconfig. > >The problem is that as soon as I load my driver via io-pkt-v4, en0 > >disappears from ifconfig and my interface is shown instead. > >The smsc driver is still working, but I just can't see it in ifconfig > >anymore. > >As soon as I kill io-pkt-v4 for the new driver, en0 appears again. > > > >Is there a kind of index or something else I am missing? > > > >Thanks, > >Clemens > > > > > > > >_______________________________________________ > > > >Technology > >http://community.qnx.com/sf/go/post108616 > >To cancel your subscription to this discussion, please e-mail > >technology-networking-unsubscribe@community.qnx.com > > > > > > _______________________________________________ > > Technology > http://community.qnx.com/sf/go/post108618 > To cancel your subscription to this discussion, please e-mail technology-networking-unsubscribe@community.qnx.com Sean Boudreau(deleted) 2014-02-05T19:58:47Z post108621: Re: Ethernet mutlicast Veniamin Afanasev(deleted) http://community.qnx.com/sf/go/post108621 2014-02-05T18:09:49Z 2014-02-05T18:09:49Z I need in in goose and gsse in IEC61850 protocol stack > > Why are you interested in the mac layer? Is the usual rfc > ipv[46] <-> ethernet conversion sufficient? > > On Wed, Feb 05, 2014 at 02:46:26AM -0500, Veniamin Afanasev wrote: > > Hello! How can i take and send packets with ethernet multicast mac adress > and send them to my programm or send them from my programm. packet format is: > dst multicast mac adress+ src multicast mac adress + data + crc. > > Thanks. > > > > > > > > _______________________________________________ > > > > Technology > > http://community.qnx.com/sf/go/post108604 > > To cancel your subscription to this discussion, please e-mail technology- > networking-unsubscribe@community.qnx.com Veniamin Afanasev(deleted) 2014-02-05T18:09:49Z post108619: Re: Ethernet mutlicast Sean Boudreau(deleted) http://community.qnx.com/sf/go/post108619 2014-02-05T17:36:17Z 2014-02-05T17:36:17Z Why are you interested in the mac layer? Is the usual rfc ipv[46] <-> ethernet conversion sufficient? On Wed, Feb 05, 2014 at 02:46:26AM -0500, Veniamin Afanasev wrote: > Hello! How can i take and send packets with ethernet multicast mac adress and send them to my programm or send them from my programm. packet format is: dst multicast mac adress+ src multicast mac adress + data + crc. > Thanks. > > > > _______________________________________________ > > Technology > http://community.qnx.com/sf/go/post108604 > To cancel your subscription to this discussion, please e-mail technology-networking-unsubscribe@community.qnx.com Sean Boudreau(deleted) 2014-02-05T17:36:17Z post108618: Re: my io-pkt-v4 driver overwrites the en0 interface in ifconfig Hugh Brown http://community.qnx.com/sf/go/post108618 2014-02-05T16:54:37Z 2014-02-05T16:54:37Z Are you running 2 instances of io-pkt? If so, then the second instance should be started with ³-ptcpip prefix=/alt² command line argument. To interact with the second instance of io-pkt, you need to prefix all commands with ³SOCK=/alt ifconfig Š² etc. On 2014/2/5, 11:47 AM, "Clemens Fischer" <community-noreply@qnx.com> wrote: >Hi, > >I am currently writing an ethernet driver which basically works fine. >Before loading my driver, I already have an smsc9500 ethernet driver >loaded which is displayed as en0 in ifconfig. >The problem is that as soon as I load my driver via io-pkt-v4, en0 >disappears from ifconfig and my interface is shown instead. >The smsc driver is still working, but I just can't see it in ifconfig >anymore. >As soon as I kill io-pkt-v4 for the new driver, en0 appears again. > >Is there a kind of index or something else I am missing? > >Thanks, >Clemens > > > >_______________________________________________ > >Technology >http://community.qnx.com/sf/go/post108616 >To cancel your subscription to this discussion, please e-mail >technology-networking-unsubscribe@community.qnx.com Hugh Brown 2014-02-05T16:54:37Z post108617: Re: Ethernet mutlicast Veniamin Afanasev(deleted) http://community.qnx.com/sf/go/post108617 2014-02-05T16:49:40Z 2014-02-05T16:49:40Z Thank Dennis for source code Veniamin Afanasev(deleted) 2014-02-05T16:49:40Z post108616: my io-pkt-v4 driver overwrites the en0 interface in ifconfig Clemens Fischer http://community.qnx.com/sf/go/post108616 2014-02-05T16:47:43Z 2014-02-05T16:47:43Z Hi, I am currently writing an ethernet driver which basically works fine. Before loading my driver, I already have an smsc9500 ethernet driver loaded which is displayed as en0 in ifconfig. The problem is that as soon as I load my driver via io-pkt-v4, en0 disappears from ifconfig and my interface is shown instead. The smsc driver is still working, but I just can't see it in ifconfig anymore. As soon as I kill io-pkt-v4 for the new driver, en0 appears again. Is there a kind of index or something else I am missing? Thanks, Clemens Clemens Fischer 2014-02-05T16:47:43Z post108615: Re: Ethernet mutlicast Veniamin Afanasev(deleted) http://community.qnx.com/sf/go/post108615 2014-02-05T16:41:52Z 2014-02-05T16:41:52Z Thanks Nick. You are rigth about Ethertype. I will read about BFP Veniamin Afanasev(deleted) 2014-02-05T16:41:52Z post108612: Re: Ethernet mutlicast Dennis Kellly http://community.qnx.com/sf/go/post108612 2014-02-05T15:03:50Z 2014-02-05T15:03:50Z This source shows how to send/receive arbitrary ethernet frames via bpf - also how to receive frames in promiscuous mode (when supported by driver). Perhaps it may help. Dennis Kellly 2014-02-05T15:03:50Z post108611: Re: Ethernet mutlicast Nick Reilly http://community.qnx.com/sf/go/post108611 2014-02-05T13:31:13Z 2014-02-05T13:31:13Z Probably the easiest and best documented way is to use BPF to send and receive the packets. There is a little overhead with this method so if you are looking for higher performance there are other methods including writing your own protocol lsm, but this is more complicated and not recommended unless you need the performance. Don't forget that the NIC will usually filter out the Ethernet multicast on Rx until you open a socket and do an SIOCADDMULTI ioctl. Also in your description of the packet you left out the Ethertype. You will need to use one that identifies your traffic to avoid it being mis-identified by other devices on the network. Please see http://standards.ieee.org/develop/regauth/ethertype/public.html Regards, Nick. Nick Reilly 2014-02-05T13:31:13Z post108604: Ethernet mutlicast Veniamin Afanasev(deleted) http://community.qnx.com/sf/go/post108604 2014-02-05T07:46:26Z 2014-02-05T07:46:26Z Hello! How can i take and send packets with ethernet multicast mac adress and send them to my programm or send them from my programm. packet format is: dst multicast mac adress+ src multicast mac adress + data + crc. Thanks. Veniamin Afanasev(deleted) 2014-02-05T07:46:26Z post107777: Re: Sample protocol LSM access and/or documentation Nick Reilly http://community.qnx.com/sf/go/post107777 2014-01-06T15:39:30Z 2014-01-06T15:39:30Z Hi Girish, The complete networking source code is not available, but if you contact your sales representative they should be able to give you access to the lsm-nraw.so source code. Also note that one alternative would be to use the BPF api. Unfortunately we don't have too much documentation available for writing lsms, it is on our list of things to improve. In your lsm you can use pfil to receive Ethernet frames. The init would be something like: { struct pfil_head *ether_pfil_hook; ether_pfil_hook = pfil_head_get(PFIL_TYPE_IFT, IFT_ETHER); if (ether_pfil_hook == NULL) { return ENOENT; } rc = pfil_add_hook(your_input_fn, your_input_arg, PFIL_IN, ether_pfil_hook); return rc; } Now this will get called on every Ethernet packet received. int your_input_fn (void *your_input_arg, struct mbuf **mp, struct ifnet *ifp, int dir) { struct mbuf *m; m = *mp; if (packet of interest) { handle_it(); m_freem(m); *mp = NULL; return 1; } else { /* Let io-pkt handle it */ return 0; } } For transmit you can also do: ifp->if_output(ifp, m, &edst, 0); This has an mbuf in m and edst is a struct sockaddr with edst.sa_family = AF_UNSPEC; edst.sa_data = struct ether_header data m should just be the data in the frame, no header. Nick Reilly 2014-01-06T15:39:30Z post107768: Sample protocol LSM access and/or documentation Girish Rayas(deleted) http://community.qnx.com/sf/go/post107768 2014-01-03T07:06:42Z 2014-01-03T07:06:42Z We are working on an implementation where in a specific ether type packet 0x88DC (WSMP) needs to be handled on both transmit and receive path of network. These packets are delivered/originate directly from an application bypassing IP stack. In order to do this we are looking into developing a protocol LSM (loadable shared module - a proto.so) and an associated resource manager. This protocol will link directly in to Ethernet layer of the stack. We need help with sample LSM code and/or any documentation on writing LSM. Access to nraw sample source specified in source guide would be helpful. When I tried to access source using following link, it is failing with permission denied error. Please let me know how to proceed on this. http://community.qnx.com/sf/scm/do/listRepositories/projects.networking/scm Thanks Girish Girish Rayas(deleted) 2014-01-03T07:06:42Z post107636: Re: UNKNOWN COMMAND as reply from wpa_ctrl_request(cntrl,"SCAN") Darshan Chivate http://community.qnx.com/sf/go/post107636 2013-12-18T20:51:29Z 2013-12-18T20:51:29Z Hi Chris, I tried with below command with g removed,it did not create wpa_supplicant in /var/run folder. Program failed to open interface, wpa_ctrl_open() returned NULL. Cmd : wpa_supplicant_xxxxx /var/run/wpa_supplicant -Dxxxx -ista0 -ddt -C/var/run/wpa_supplicant & Below command did create wpa_supplicant in var/run/ folder but now i am not able to open control interface. wpa_ctrl_open(“/var/run/wpa_supplicant”) returned NULL!!!!!!! Cmd : wpa_supplicant_xxxxx -Dxxxx -ista0 -ddt -C/var/run/wpa_supplicant & I tried to start command line tool (Wpa_cli_xxxxx) with above non global wpa_supplicant I got error: Failed to connect to Non-global ctrl-ifname Wpa_cli_xxxxx works with global interface that I created previously. I was able to scan as well as connect to AP through commands. NOTE: xxxxx is third party name who supplied wpa_suppicant. Thanks Darshan Chivate 2013-12-18T20:51:29Z post107632: Re: UNKNOWN COMMAND as reply from wpa_ctrl_request(cntrl,"SCAN") Chris Eltervoog http://community.qnx.com/sf/go/post107632 2013-12-18T17:53:35Z 2013-12-18T17:53:35Z yes remove the -g I generally specify -D -i -c along with -ddt for debugging The only time I have used -g is for specifying a new p2p interface. Chris Eltervoog 2013-12-18T17:53:35Z post107631: Re: UNKNOWN COMMAND as reply from wpa_ctrl_request(cntrl,"SCAN") Darshan Chivate http://community.qnx.com/sf/go/post107631 2013-12-18T16:56:58Z 2013-12-18T16:56:58Z Thanks Chris for reply, I am opening global interface. command i use to start supplicant: wpa_supplicant_xxxxx -g/var/run/wpa_supplicant-global & How to open a regular Interface?when i remove -g from above command it does not work(Help menu opens) I don't see any option to open regular interface. Thanks Darshan Chivate 2013-12-18T16:56:58Z post107627: Re: UNKNOWN COMMAND as reply from wpa_ctrl_request(cntrl,"SCAN") Chris Eltervoog http://community.qnx.com/sf/go/post107627 2013-12-18T16:37:00Z 2013-12-18T16:37:00Z Which interface you opened against? UNKNOWN_COMMAND means just that, but there are two parsing contexts, the regular control interface (which contains scan) and the global interface (which doesn't contain scan). Have you tried just running with the command line tools? Chris Eltervoog 2013-12-18T16:37:00Z post107621: UNKNOWN COMMAND as reply from wpa_ctrl_request(cntrl,"SCAN") Darshan Chivate http://community.qnx.com/sf/go/post107621 2013-12-17T21:46:32Z 2013-12-17T21:46:32Z Hi All, I am new to QNX and WIFI. I am trying to open interface for wpa_supplicant and SCAN for APs. I am able to open interface with wpa supplicant through wpa_ctrl_open("/var/run/wpa_supplicant") successfully. I sent "PING" command to WPA supplicant using wpa_ctrl_request() I got PONG as reply(I assume WPA supplicant is up and parsing commands). But when I sent "SCAN" command reply was "UNKNOWN COMMAND". can any one suggest what might be the problem? Thanks in advance Darshan Darshan Chivate 2013-12-17T21:46:32Z post107094: RE: Problem using qnet over IP Mario Charest http://community.qnx.com/sf/go/post107094 2013-11-27T17:03:19Z 2013-11-27T17:03:19Z Check if the switch supports vlan, you could use that to isolate the networks -----Message d'origine----- De : Matthias Grafmueller [mailto:community-noreply@qnx.com] Envoyé : Wednesday, November 27, 2013 6:51 AM À : technology-networking Objet : Problem using qnet over IP Hi all, I'm trying to gain qnet performance benefits regarding bandwidth, by using load balancing over two network interfaces per node but just one switch. Our setup is two nodes with two network interfaces each. The four network interfaces are all connected to one switch. OS: QNX6.5.0. If initializing qnet in default mode everything works fine, except for qnet recognizing that both links are connected to the same switch (as mentioned in the documentation). I think this is shown in qnetstats: lr_inbound(): ignoring resolve packet on redundant l4 0. Somewhere I read that this is not the case using qnet over IP. However, when starting qnet over IP the whole system crashes. What I'm doing is: 1. qnet default mode: # io-pkt-v4-hc -p tcpip # mount -T io-pkt -o mac=${NODEMAC} /proc/boot/devnp-mpc85xx.so # mount -T io-pkt -o bind=tsec0,bind=tsec2 /lib/dll/lsm-qnet.so 2. qnet over IP: # io-pkt-v4-hc -p tcpip # mount -T io-pkt -o mac=${NODEMAC} /proc/boot/devnp-mpc85xx.so # mount -T io-pkt -o bind=ip,resolve=dns /lib/dll/lsm-qnet.so Name resolving seems to be working if testing with gethostbyname(). I am using etc/hosts. Am I doing anything wrong here? Thanks, Matthias _______________________________________________ Technology http://community.qnx.com/sf/go/post107078 To cancel your subscription to this discussion, please e-mail technology-networking-unsubscribe@community.qnx.com Mario Charest 2013-11-27T17:03:19Z post107078: Problem using qnet over IP Matthias Grafmueller http://community.qnx.com/sf/go/post107078 2013-11-27T14:50:47Z 2013-11-27T14:50:47Z Hi all, I'm trying to gain qnet performance benefits regarding bandwidth, by using load balancing over two network interfaces per node but just one switch. Our setup is two nodes with two network interfaces each. The four network interfaces are all connected to one switch. OS: QNX6.5.0. If initializing qnet in default mode everything works fine, except for qnet recognizing that both links are connected to the same switch (as mentioned in the documentation). I think this is shown in qnetstats: lr_inbound(): ignoring resolve packet on redundant l4 0. Somewhere I read that this is not the case using qnet over IP. However, when starting qnet over IP the whole system crashes. What I'm doing is: 1. qnet default mode: # io-pkt-v4-hc -p tcpip # mount -T io-pkt -o mac=${NODEMAC} /proc/boot/devnp-mpc85xx.so # mount -T io-pkt -o bind=tsec0,bind=tsec2 /lib/dll/lsm-qnet.so 2. qnet over IP: # io-pkt-v4-hc -p tcpip # mount -T io-pkt -o mac=${NODEMAC} /proc/boot/devnp-mpc85xx.so # mount -T io-pkt -o bind=ip,resolve=dns /lib/dll/lsm-qnet.so Name resolving seems to be working if testing with gethostbyname(). I am using etc/hosts. Am I doing anything wrong here? Thanks, Matthias Matthias Grafmueller 2013-11-27T14:50:47Z post106680: How to Become a British Voice Over Artist. Sophia Brain http://community.qnx.com/sf/go/post106680 2013-11-12T08:00:17Z 2013-11-12T08:00:17Z Commercial voice over has to be convincing. This is again a different set of skills. Your voice should sound genuine and have some amount of believability in order for the viewers to watch the full commercial, let alone buy the product. Vanan Voice is a company providing voice over services and also transcription and translation service. For more details visit: http://vananvoice.com/Voice-Over-Services.php Sophia Brain 2013-11-12T08:00:17Z post106633: View PIDs and Ports Craig Freyman(deleted) http://community.qnx.com/sf/go/post106633 2013-11-08T17:10:02Z 2013-11-08T17:10:02Z Can anyone tell me how to view the PID running on a port? QNX 6.5 Thanks! Craig Freyman(deleted) 2013-11-08T17:10:02Z post106317: Re: Setting up a device as Router Nick Reilly http://community.qnx.com/sf/go/post106317 2013-10-28T15:08:40Z 2013-10-28T15:08:40Z You need to bring up en0 with "ifconfig en0 up". Interface en1 was brought up by the dhcp.client, but en0 is still down. Nick Reilly 2013-10-28T15:08:40Z post106316: Re: Setting up a device as Router Praveen Jambur(deleted) http://community.qnx.com/sf/go/post106316 2013-10-28T14:36:59Z 2013-10-28T14:36:59Z yes acting as a bridge is what I am looking at and have tried too. That is why the promiscous mode is on. But I am not sure why the packets are not getting through?! %%%%%%%%%%%%%%% START io-pkt %%%%%%%%%%%%%%% # io-pkt-v4-hc -v -d ep93xx -d asix -t2 & %%%%%%%%%%%%%%% configure bridge %%%%%%%%%%%%%%% # ifconfig bridge0 create # brconfig bridge0 add en1 add en0 up # brconfig -a bridge0: flags=41<UP,RUNNING> Configuration: priority 32768 hellotime 2 fwddelay 15 maxage 20 ipfilter disabled flags 0x0 Interfaces: en0 flags=3<LEARNING,DISCOVER> port 3 priority 128 en1 flags=3<LEARNING,DISCOVER> port 2 priority 128 Address cache (max cache: 100, timeout: 1200): %%%%%%%%%%%%%%% start dhcp client for en1 %%%%%%%%%%%%%%% # dhcp.client -i en1 & # ifconfig lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> mtu 33192 inet 127.0.0.1 netmask 0xff000000 en1: flags=8b43<UP,BROADCAST,RUNNING,PROMISC,ALLMULTI,SIMPLEX,MULTICAST> mtu 1500 address: 00:16:80:00:7a:d3 media: Ethernet autoselect (100baseTX full-duplex) status: active inet 10.11.148.225 netmask 0xfffffe00 broadcast 10.11.149.255 en0: flags=80008902<BROADCAST,PROMISC,SIMPLEX,MULTICAST,SHIM> mtu 1500 address: 48:f8:b3:2b:20:d5 media: Ethernet 100baseTX full-duplex status: active bridge0: flags=41<UP,RUNNING> mtu 1500 # Praveen Jambur(deleted) 2013-10-28T14:36:59Z post106314: Re: Setting up a device as Router Nick Reilly http://community.qnx.com/sf/go/post106314 2013-10-28T14:23:30Z 2013-10-28T14:23:30Z There are three different solutions and I'm not sure on which you need based on your post. 1) Act as a bridge. This means that the DHCP client on devices connected to en0 will get the configuration from the DHCP server on a device on en1. This is what I think you are looking for based on your comments. In this case you would "ifconfig bridge0 create" and then add in the two interfaces to the bridge and configure the bridge with "brconfig" commands. 2) Act as a router. In this case you would have two separate subnets on en0 and en1 and would forward IP packets between them. You would have to run your own DHCP server for devices on en0 and ensure that your en1 is known as the route to access the en0 subnet. In this case you would need to use "sysctl" to set "net.inet.ip.forwarding" to 1. 3) Act as a NAT router. This would require again setting up as a DHCP server for devices on en0, but by loading the pf module and configuring pf rules you would make the packets received on en0 look as if they were coming from you on en1 so the rest of the world doesn't need to know that en1 is the route to access the en0 subnet. Nick Reilly 2013-10-28T14:23:30Z post106312: Setting up a device as Router Praveen Jambur(deleted) http://community.qnx.com/sf/go/post106312 2013-10-28T14:06:32Z 2013-10-28T14:06:32Z I have a device. This has 2 NIC on it. I have named them en0 and en1. en1 is connected to network and I have a dhcp client running that can fetch address for this interface. en0 is connected another device that has a dhcp client. Sample output from ifconfig: # ifconfig lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> mtu 33192 inet 127.0.0.1 netmask 0xff000000 en1: flags=8b43<UP,BROADCAST,RUNNING,PROMISC,ALLMULTI,SIMPLEX,MULTICAST> mtu 1500 address: 00:16:80:00:7a:d3 media: Ethernet autoselect (100baseTX full-duplex) status: active inet 10.11.148.225 netmask 0xfffffe00 broadcast 10.11.149.255 en0: flags=80008902<BROADCAST,PROMISC,SIMPLEX,MULTICAST,SHIM> mtu 1500 address: 48:f8:b3:2b:20:d5 media: Ethernet 100baseTX full-duplex status: active What I want to do is make this device that has 2 interfaces to act as a router and route all the packets arrivinf at en0 to en1 and vice vers, so that for the device connected to en0 it should seem as if it is on the network on en1. Note that the dhcp server is somewhere on the network connected to en1. I also went through the concept of hub/switch. Is there a way to configure my device as a hub so that all the packets received on en0 are echoed on en1 and vice versa? Am I missing anything concept wise? Praveen Jambur(deleted) 2013-10-28T14:06:32Z post106254: Re: pf.conf and NAT Dennis Kellly http://community.qnx.com/sf/go/post106254 2013-10-25T11:30:32Z 2013-10-25T11:30:32Z Have you enabled with "pfctl -e" ? I believe this forwards all traffic between two interfaces... io-pkt-v4-hc -d speedo -d tigon3 -p tcpip forward -p pf-v4 sysctl -w net.inet.ip.forwarding=1 pfctl -A -f /etc/pf.conf pfctl -e with /etc/pf.conf as... pass in quick all pass out quick all Of course you will want to adjust the rules... Dennis Kellly 2013-10-25T11:30:32Z post106239: Re: pf.conf and NAT David Hillyard http://community.qnx.com/sf/go/post106239 2013-10-24T22:14:50Z 2013-10-24T22:14:50Z One quick update. I did find a way to set IP fowarding with sysctl: sysctl -w net.inet.ip.forwarding=1 However, I am still not getting packing to redirect out of the box. > Mitchell, > > Can you post your solution for getting the packet forwarding resolved? I am > trying a similar thing using pf to redirect a port to another machine. My > redirect logic is working fine. I tested by redirecting a high port (4000) to > localhost port 21 and verifying I could telnet to the box on port 4000. > > rdr pass on @int_if inet proto tcp from any to any port 4000 -? 127.0.0.1 port > 21 > > The problem I am running into is getting PF to forward my packet. I have tried > to put a line in /etc/sysctl.conf > net.inet.ip.forwarding=1 > > But, like you, that does not work. > > When I enter the forward option through io-pkt-v4 (below) all of my interfaces > disappear when I do an "ifconfig -a". > > # io-pkt-v4-hc -ptcpip forward > > Can someone please explain how to turn packet forwarding on correctly with QNX > 6.5 and have it persist on reboot? Thanks! David Hillyard 2013-10-24T22:14:50Z post106238: Re: pf.conf and NAT David Hillyard http://community.qnx.com/sf/go/post106238 2013-10-24T21:48:55Z 2013-10-24T21:48:55Z Mitchell, Can you post your solution for getting the packet forwarding resolved? I am trying a similar thing using pf to redirect a port to another machine. My redirect logic is working fine. I tested by redirecting a high port (4000) to localhost port 21 and verifying I could telnet to the box on port 4000. rdr pass on @int_if inet proto tcp from any to any port 4000 -? 127.0.0.1 port 21 The problem I am running into is getting PF to forward my packet. I have tried to put a line in /etc/sysctl.conf net.inet.ip.forwarding=1 But, like you, that does not work. When I enter the forward option through io-pkt-v4 (below) all of my interfaces disappear when I do an "ifconfig -a". # io-pkt-v4-hc -ptcpip forward Can someone please explain how to turn packet forwarding on correctly with QNX 6.5 and have it persist on reboot? Thanks! David Hillyard 2013-10-24T21:48:55Z post105421: Re: Peer-to-peer connection (WiFi Direct) Sesh http://community.qnx.com/sf/go/post105421 2013-09-25T22:12:00Z 2013-09-25T22:12:00Z Hello all, We are currently on the lookout for QNX drivers for WL127x/WL128x series of WiFi Modules. Based on you discussions it seems QNX already supplied these. I'd appreciate if you can direct me to the right person within QNX's WiFi Direct group. Thanks, Sesh Sesh 2013-09-25T22:12:00Z post103199: Re: ipv6 support Sean Boudreau(deleted) http://community.qnx.com/sf/go/post103199 2013-07-15T21:49:33Z 2013-07-15T21:49:33Z You're probably using the wrong ping6 for your target platform: eg X86 on arm. Sent from my BlackBerry 10 smartphone on the Rogers network. From: N U Sent: Monday, July 15, 2013 5:37 PM To: technology-networking Reply To: technology-networking@community.qnx.com Subject: Re: ipv6 support Thanks. You were right. the ethernet driver works with io-pkt-v6-hc as well e.g. 323594 io-pkt-v6-hc -d mpc85xx pci=0,phy_addr=1,mac=008074001736 -d mpc85xx pci=2,phy_addr=17,mac=008074001737 I did some ifconfig and below the current configurations: # ifconfig lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> mtu 33192 inet 127.0.0.1 netmask 0xff000000 inet6 ::1 prefixlen 128 inet6 fe80::1%lo0 prefixlen 64 scopeid 0x1 tsec0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500 capabilities rx=7<IP4CSUM,TCP4CSUM,UDP4CSUM> capabilities tx=0 enabled=0 address: 00:80:74:00:17:36 media: Ethernet autoselect (100baseTX full-duplex) status: active inet 10.5.255.254 netmask 0xff000000 broadcast 10.255.255.255 inet6 fe80::280:74ff:fe00:1736%tsec0 prefixlen 64 scopeid 0x2 From a windows box on the same network as tsec0, I can "ping -6 " tsec0's ipv6 address with no problem. e.g. ########## window 7 box ######### C:\>ipconfig Windows IP Configuration Ethernet adapter primary: Connection-specific DNS Suffix . : Link-local IPv6 Address . . . . . : fe80::44b:3298:d5a:20d6%12 IPv4 Address. . . . . . . . . . . : 10.4.0.6 Subnet Mask . . . . . . . . . . . : 255.254.0.0 Default Gateway . . . . . . . . . : Tunnel adapter isatap.{F3F0BBA8-7676-4D16-859F-B82561836552}: Media State . . . . . . . . . . . : Media disconnected Connection-specific DNS Suffix . : C:\>ping -6 fe80::280:74ff:fe00:1736 Pinging fe80::280:74ff:fe00:1736 with 32 bytes of data: Reply from fe80::280:74ff:fe00:1736: time=1ms Reply from fe80::280:74ff:fe00:1736: time=1ms Reply from fe80::280:74ff:fe00:1736: time=1ms Reply from fe80::280:74ff:fe00:1736: time=1ms Ping statistics for fe80::280:74ff:fe00:1736: Packets: Sent = 4, Received = 4, Lost = 0 (0% loss), Approximate round trip times in milli-seconds: Minimum = 1ms, Maximum = 1ms, Average = 1ms ############################################ Then I download the utility "ping6" (dated on 7/9/2010). However it does not work even I ping6 any local ipv6 address of this QNX box, alway complaining of syntax error e.g. # ifconfig lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> mtu 33192 inet 127.0.0.1 netmask 0xff000000 inet6 ::1 prefixlen 128 inet6 fe80::1%lo0 prefixlen 64 scopeid 0x1 tsec0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500 capabilities rx=7<IP4CSUM,TCP4CSUM,UDP4CSUM> capabilities tx=0 enabled=0 address: 00:80:74:00:17:36 media: Ethernet autoselect (100baseTX full-duplex) status: active inet 10.5.255.254 netmask 0xff000000 broadcast 10.255.255.255 inet6 fe80::280:74ff:fe00:1736%tsec0 prefixlen 64 scopeid 0x2 # ping6 ::1 ping6[1]: syntax error: `$V^D^H4$RÖ^A4' unexpected # ping6 fe80::1 ping6[1]: syntax error: `$V^D^H4$RÖ^A4' unexpected # ping6 fe80::280:74ff:fe00:1736 ping6[1]: syntax error: `$V^D^H4$RÖ^A4' unexpected # use ping6 ping6 -- Send ICMPv6 ECHO_REQUEST packets to network hosts ping6 [-dfHnNqRvw] [-a addrtype] [-b bufsize] [-c count] [-h hoplimit] [-I interface] [-i wait] [-l preload] [-p pattern] [-P policy] [-S sourceaddr] [-s packetsize] [hops...] host Options: -a addrtype Generate ICMPv6 Node Information Node Address query. The 'addrtype' string is constructed from the following characters: a - requests all of responder's unicast addresses c - requests responder's IPv4 addresses g - requests responder's global-scope addresses s - requests responder's site-local addresses l - requests responder's link-local addresses A - requests responder's anycast addresses -b bufsiz Set socket buffer size. -c count Stop after sending (and receiving) 'count' ECHO_RESPONSE packets . -d Set the SO_DEBUG option on the socket being used. -f Flood ping. More (Y/n)? ############# Any clue on it? How to use the ping6? _______________________________________________ Technology http://community.qnx.com/sf/go/post103198 To cancel your subscription to this discussion, please e-mail technology-networking-unsubscribe@community.qnx.com Sean Boudreau(deleted) 2013-07-15T21:49:33Z post103198: Re: ipv6 support N U http://community.qnx.com/sf/go/post103198 2013-07-15T21:37:01Z 2013-07-15T21:37:01Z Thanks. You were right. the ethernet driver works with io-pkt-v6-hc as well e.g. 323594 io-pkt-v6-hc -d mpc85xx pci=0,phy_addr=1,mac=008074001736 -d mpc85xx pci=2,phy_addr=17,mac=008074001737 I did some ifconfig and below the current configurations: # ifconfig lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> mtu 33192 inet 127.0.0.1 netmask 0xff000000 inet6 ::1 prefixlen 128 inet6 fe80::1%lo0 prefixlen 64 scopeid 0x1 tsec0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500 capabilities rx=7<IP4CSUM,TCP4CSUM,UDP4CSUM> capabilities tx=0 enabled=0 address: 00:80:74:00:17:36 media: Ethernet autoselect (100baseTX full-duplex) status: active inet 10.5.255.254 netmask 0xff000000 broadcast 10.255.255.255 inet6 fe80::280:74ff:fe00:1736%tsec0 prefixlen 64 scopeid 0x2 From a windows box on the same network as tsec0, I can "ping -6 " tsec0's ipv6 address with no problem. e.g. ########## window 7 box ######### C:\>ipconfig Windows IP Configuration Ethernet adapter primary: Connection-specific DNS Suffix . : Link-local IPv6 Address . . . . . : fe80::44b:3298:d5a:20d6%12 IPv4 Address. . . . . . . . . . . : 10.4.0.6 Subnet Mask . . . . . . . . . . . : 255.254.0.0 Default Gateway . . . . . . . . . : Tunnel adapter isatap.{F3F0BBA8-7676-4D16-859F-B82561836552}: Media State . . . . . . . . . . . : Media disconnected Connection-specific DNS Suffix . : C:\>ping -6 fe80::280:74ff:fe00:1736 Pinging fe80::280:74ff:fe00:1736 with 32 bytes of data: Reply from fe80::280:74ff:fe00:1736: time=1ms Reply from fe80::280:74ff:fe00:1736: time=1ms Reply from fe80::280:74ff:fe00:1736: time=1ms Reply from fe80::280:74ff:fe00:1736: time=1ms Ping statistics for fe80::280:74ff:fe00:1736: Packets: Sent = 4, Received = 4, Lost = 0 (0% loss), Approximate round trip times in milli-seconds: Minimum = 1ms, Maximum = 1ms, Average = 1ms ############################################ Then I download the utility "ping6" (dated on 7/9/2010). However it does not work even I ping6 any local ipv6 address of this QNX box, alway complaining of syntax error e.g. # ifconfig lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> mtu 33192 inet 127.0.0.1 netmask 0xff000000 inet6 ::1 prefixlen 128 inet6 fe80::1%lo0 prefixlen 64 scopeid 0x1 tsec0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500 capabilities rx=7<IP4CSUM,TCP4CSUM,UDP4CSUM> capabilities tx=0 enabled=0 address: 00:80:74:00:17:36 media: Ethernet autoselect (100baseTX full-duplex) status: active inet 10.5.255.254 netmask 0xff000000 broadcast 10.255.255.255 inet6 fe80::280:74ff:fe00:1736%tsec0 prefixlen 64 scopeid 0x2 # ping6 ::1 ping6[1]: syntax error: `$V^D^H4$RÖ^A4' unexpected # ping6 fe80::1 ping6[1]: syntax error: `$V^D^H4$RÖ^A4' unexpected # ping6 fe80::280:74ff:fe00:1736 ping6[1]: syntax error: `$V^D^H4$RÖ^A4' unexpected # use ping6 ping6 -- Send ICMPv6 ECHO_REQUEST packets to network hosts ping6 [-dfHnNqRvw] [-a addrtype] [-b bufsize] [-c count] [-h hoplimit] [-I interface] [-i wait] [-l preload] [-p pattern] [-P policy] [-S sourceaddr] [-s packetsize] [hops...] host Options: -a addrtype Generate ICMPv6 Node Information Node Address query. The 'addrtype' string is constructed from the following characters: a - requests all of responder's unicast addresses c - requests responder's IPv4 addresses g - requests responder's global-scope addresses s - requests responder's site-local addresses l - requests responder's link-local addresses A - requests responder's anycast addresses -b bufsiz Set socket buffer size. -c count Stop after sending (and receiving) 'count' ECHO_RESPONSE packets . -d Set the SO_DEBUG option on the socket being used. -f Flood ping. More (Y/n)? ############# Any clue on it? How to use the ping6? N U 2013-07-15T21:37:01Z post103081: Re: ipv6 support Sean Boudreau(deleted) http://community.qnx.com/sf/go/post103081 2013-07-10T22:29:21Z 2013-07-10T22:29:21Z The same driver ‎ works. Regards, -seanb Sent from my BlackBerry 10 smartphone on the Rogers network. From: N U Sent: Wednesday, July 10, 2013 5:46 PM To: technology-networking Reply To: technology-networking@community.qnx.com Subject: ipv6 support We are trying to provide ipv6 support on our device. Currently io-pkt-v4 is running on our device. mpc85xx is the driver provided by QNX. e.g. io-pkt-v4 -d mpc85xx pci=0,phy_addr=1,mac=008074001736 -d mpc85xx pci=2,phy_addr=17,mac=008074001737 We have the binary io-pkt-v6-hc (dated on 7/9/2010) that can be downloaded to the device. Would you please give some instructions about how to run and configure io-pkt-v6-hc? (1) Does the same driver mpc85xx work with io-pkt-v6-hc? E.g. Can we issue the same command such as " io-pkt-v6-hc -d mpc85xx pci=0,phy_addr=1,mac=008074001736 -d mpc85xx pci=2,phy_addr=17,mac=008074001737" (2) if not, anything else need to be downloaded and configured/linked? Thanks in advance. _______________________________________________ Technology http://community.qnx.com/sf/go/post103080 To cancel your subscription to this discussion, please e-mail technology-networking-unsubscribe@community.qnx.com Sean Boudreau(deleted) 2013-07-10T22:29:21Z post103080: ipv6 support N U http://community.qnx.com/sf/go/post103080 2013-07-10T21:46:32Z 2013-07-10T21:46:32Z We are trying to provide ipv6 support on our device. Currently io-pkt-v4 is running on our device. mpc85xx is the driver provided by QNX. e.g. io-pkt-v4 -d mpc85xx pci=0,phy_addr=1,mac=008074001736 -d mpc85xx pci=2,phy_addr=17,mac=008074001737 We have the binary io-pkt-v6-hc (dated on 7/9/2010) that can be downloaded to the device. Would you please give some instructions about how to run and configure io-pkt-v6-hc? (1) Does the same driver mpc85xx work with io-pkt-v6-hc? E.g. Can we issue the same command such as " io-pkt-v6-hc -d mpc85xx pci=0,phy_addr=1,mac=008074001736 -d mpc85xx pci=2,phy_addr=17,mac=008074001737" (2) if not, anything else need to be downloaded and configured/linked? Thanks in advance. N U 2013-07-10T21:46:32Z post102451: Bottleneck Mario Charest http://community.qnx.com/sf/go/post102451 2013-06-19T18:04:47Z 2013-06-19T18:04:47Z Good day, Assume 5 slave computers, all doing a MsgSend, at exactly the same time. to a single application running on a server. Let`s says the messages are 1Meg. How much simultaneous data will be seen by the network switch? Given the destination is a single thread will io-pkt handle the 5 transfers simultaneously, buffering the incoming data, or will it serialize it. Mario Charest 2013-06-19T18:04:47Z post102126: Re: RE: vlan tag Nick Reilly http://community.qnx.com/sf/go/post102126 2013-06-10T17:02:44Z 2013-06-10T17:02:44Z Yes, this was added post 6.5.0 SP1. A PSP is a Priority Support Package, and this capability was added in PSP3078 (io-pkt) and PSP3079 (ifconfig). Later PSPs containing these binaries will also support this functionality so you should use the latest version. Nick Reilly 2013-06-10T17:02:44Z post102125: RE: vlan tag Mario Charest http://community.qnx.com/sf/go/post102125 2013-06-10T16:51:53Z 2013-06-10T16:51:53Z > -----Message d'origine----- > De : Nick Reilly [mailto:community-noreply@qnx.com] > Envoyé : 10 juin 2013 12:46 > À : technology-networking > Objet : Re: vlan tag > > Support for setting the PCP field was added in after the initial release of 6.5.0. > If you are up to date on your PSPs, the use message on ifconfig should > mention: > > vlanprio priority > If the interface is a vlan(4) pseudo-interface, set the > VLAN priority to priority. This is a number 0-7, used > to create an 802.1Q VLAN header for packets sent from the > vlan(4) interface. Doesn`t seems to be in SP1. What`s PSP? Thanks! > > > > > > _______________________________________________ > > Technology > http://community.qnx.com/sf/go/post102123 > To cancel your subscription to this discussion, please e-mail technology- > networking-unsubscribe@community.qnx.com Mario Charest 2013-06-10T16:51:53Z post102123: Re: vlan tag Nick Reilly http://community.qnx.com/sf/go/post102123 2013-06-10T16:46:02Z 2013-06-10T16:46:02Z Support for setting the PCP field was added in after the initial release of 6.5.0. If you are up to date on your PSPs, the use message on ifconfig should mention: vlanprio priority If the interface is a vlan(4) pseudo-interface, set the VLAN priority to priority. This is a number 0-7, used to create an 802.1Q VLAN header for packets sent from the vlan(4) interface. Nick Reilly 2013-06-10T16:46:02Z post102121: vlan tag Mario Charest http://community.qnx.com/sf/go/post102121 2013-06-10T16:39:40Z 2013-06-10T16:39:40Z The QNX 6.4.0 doc says that the argument for ifconfig vlan is a 16 bit number but the 6.5.0 says it's a 12 bit number. Does that mean that with 6.5.0 it's not possible to set the PCP ( Priority Code Point ) Mario Charest 2013-06-10T16:39:40Z post98532: Re: HTML form with SSI commands Raymond Flach(deleted) http://community.qnx.com/sf/go/post98532 2013-01-12T21:32:39Z 2013-01-12T21:32:39Z Has anyone ever figured this out? I am having the same issues. How do I set/get form values with SSI and qnxvar? Raymond Flach(deleted) 2013-01-12T21:32:39Z post97004: Re: dhcp.client IP request problem Boangoat Jarupan http://community.qnx.com/sf/go/post97004 2012-11-08T17:26:50Z 2012-11-08T17:26:50Z Please find the dump in the attachment. I filter out only DHCP packets due to the size of the original dump file. Also, please note that we use f8:7b:7a:40:89:c4 as the mac address for testing. The first DISCOVER packet starts at packet #11 and it is from our board. In this dump, there is no response from the server. We have tried many times; unfortunately, we can not get any response from the server. I am also wondering whether this problem is related to relay agent for DHCP server. What do we need to do to check that possibility? Thank you. Boangoat Jarupan 2012-11-08T17:26:50Z post97003: Re: dhcp.client IP request problem Hugh Brown http://community.qnx.com/sf/go/post97003 2012-11-08T16:47:31Z 2012-11-08T16:47:31Z Yes, Wireshark traces will be fine. On 2012-11-08 11:09 AM, "Boangoat Jarupan" <community-noreply@qnx.com> wrote: >We use io-pkt-v4-hc on TI WL1283 chip. Below is the command we use to >load the driver > ># io-pkt-v4-hc -dti1283-sdc4430 >sdio=2,dmatx=47,dmarx=48,irq=1003,gpio=90,irq_gpio=3 > >The dhcp.client does have a back-off timer and I see that the DHCP >DISCOVER packet get rebroadcast. We have been running dhcp.client for >multiple times. Unfortunately we are not be able to get the IP address. >Most of the time, DISCOVER packets got ignore. We rarely received the >OFFER packets back. On the other hand, other devices such as cell phone >and laptop are able to obtain the IP addresses easily from our server. > >Unfortunately, we have trouble getting the trace result from tcpdump. >This happens after we upgrade to CAR 2.0 alpha 5 platform. I posted the >questions on CAR 2.0, but I received no response yet. >http://community.qnx.com/sf/discussion/do/listPosts/projects.qnx_car_2/dis >cussion.garmin_qnx_car_2.topc22641 > >We currently capture packets from Wireshark. Would you be able to help us >to get tcpdump to work? Or should I send you packet traces results from >Wireshark? Thank you. > > > >_______________________________________________ > >Technology >http://community.qnx.com/sf/go/post96998 >To cancel your subscription to this discussion, please e-mail >technology-networking-unsubscribe@community.qnx.com Hugh Brown 2012-11-08T16:47:31Z post96998: Re: dhcp.client IP request problem Boangoat Jarupan http://community.qnx.com/sf/go/post96998 2012-11-08T16:09:48Z 2012-11-08T16:09:48Z We use io-pkt-v4-hc on TI WL1283 chip. Below is the command we use to load the driver # io-pkt-v4-hc -dti1283-sdc4430 sdio=2,dmatx=47,dmarx=48,irq=1003,gpio=90,irq_gpio=3 The dhcp.client does have a back-off timer and I see that the DHCP DISCOVER packet get rebroadcast. We have been running dhcp.client for multiple times. Unfortunately we are not be able to get the IP address. Most of the time, DISCOVER packets got ignore. We rarely received the OFFER packets back. On the other hand, other devices such as cell phone and laptop are able to obtain the IP addresses easily from our server. Unfortunately, we have trouble getting the trace result from tcpdump. This happens after we upgrade to CAR 2.0 alpha 5 platform. I posted the questions on CAR 2.0, but I received no response yet. http://community.qnx.com/sf/discussion/do/listPosts/projects.qnx_car_2/discussion.garmin_qnx_car_2.topc22641 We currently capture packets from Wireshark. Would you be able to help us to get tcpdump to work? Or should I send you packet traces results from Wireshark? Thank you. Boangoat Jarupan 2012-11-08T16:09:48Z post96994: Re: dhcp.client IP request problem Hugh Brown http://community.qnx.com/sf/go/post96994 2012-11-08T15:24:04Z 2012-11-08T15:24:04Z Further to my last e-mail, we need to know what version of io-pkt you are running as the old io-pkt sets the TTL to 1 but the 6.5.0 SP1 io-pkt sets the TTL to 64. On 2012-11-07 4:47 PM, "Boangoat Jarupan" <community-noreply@qnx.com> wrote: >It seems like the server does not response to the DHCP DISCOVER packet >from the client in "far" case. I have tried to capture the packets and >found that the TTL in IP header is set to 1. Should we set this to higher >value so that the DISCOVER packet could forward by relay agent? Are there >anyway we can change this value using command line? Something like >sysctl. Unfortunately, I tried net.inet.ip.ttl, but it returns 64. > ># sysctl net.inet.ip.ttl >net.inet.ip.ttl = 64 > > > > > > >_______________________________________________ > >Technology >http://community.qnx.com/sf/go/post96970 >To cancel your subscription to this discussion, please e-mail >technology-networking-unsubscribe@community.qnx.com Hugh Brown 2012-11-08T15:24:04Z post96992: Re: dhcp.client IP request problem Hugh Brown http://community.qnx.com/sf/go/post96992 2012-11-08T15:21:22Z 2012-11-08T15:21:22Z Apparently we do set the TTL to 1 as it is a broadcast packet. The fact that you get a response to the first packet indicates that you are communicating. Are you in a noisy WiFi environment? The dhcp.client does have a back-off timer, so if you leave it running for a while, do you eventually get an IP address? On 2012-11-07 4:47 PM, "Boangoat Jarupan" <community-noreply@qnx.com> wrote: >It seems like the server does not response to the DHCP DISCOVER packet >from the client in "far" case. I have tried to capture the packets and >found that the TTL in IP header is set to 1. Should we set this to higher >value so that the DISCOVER packet could forward by relay agent? Are there >anyway we can change this value using command line? Something like >sysctl. Unfortunately, I tried net.inet.ip.ttl, but it returns 64. > ># sysctl net.inet.ip.ttl >net.inet.ip.ttl = 64 > > > > > > >_______________________________________________ > >Technology >http://community.qnx.com/sf/go/post96970 >To cancel your subscription to this discussion, please e-mail >technology-networking-unsubscribe@community.qnx.com Hugh Brown 2012-11-08T15:21:22Z post96990: Re: dhcp.client IP request problem Hugh Brown http://community.qnx.com/sf/go/post96990 2012-11-08T14:59:13Z 2012-11-08T14:59:13Z We would have to check versions, it should be going out as 64. That said, if we are still dealing with a range issue, The TTL should be treated the same in either case, unless we are talking about two different network setups that are being connected to. It would still be good to see complete packet traces as well, as it seemed like the DHCP discover was not being ignored, it was just the 4 way handshake did not complete. The complete packet trace would confirm this. On 2012-11-07 4:47 PM, "Boangoat Jarupan" <community-noreply@qnx.com> wrote: >It seems like the server does not response to the DHCP DISCOVER packet >from the client in "far" case. I have tried to capture the packets and >found that the TTL in IP header is set to 1. Should we set this to higher >value so that the DISCOVER packet could forward by relay agent? Are there >anyway we can change this value using command line? Something like >sysctl. Unfortunately, I tried net.inet.ip.ttl, but it returns 64. > ># sysctl net.inet.ip.ttl >net.inet.ip.ttl = 64 > > > > > > >_______________________________________________ > >Technology >http://community.qnx.com/sf/go/post96970 >To cancel your subscription to this discussion, please e-mail >technology-networking-unsubscribe@community.qnx.com Hugh Brown 2012-11-08T14:59:13Z post96970: Re: dhcp.client IP request problem Boangoat Jarupan http://community.qnx.com/sf/go/post96970 2012-11-07T21:47:04Z 2012-11-07T21:47:04Z It seems like the server does not response to the DHCP DISCOVER packet from the client in "far" case. I have tried to capture the packets and found that the TTL in IP header is set to 1. Should we set this to higher value so that the DISCOVER packet could forward by relay agent? Are there anyway we can change this value using command line? Something like sysctl. Unfortunately, I tried net.inet.ip.ttl, but it returns 64. # sysctl net.inet.ip.ttl net.inet.ip.ttl = 64 Boangoat Jarupan 2012-11-07T21:47:04Z post96518: Re: dhcp.client IP request problem Hugh Brown http://community.qnx.com/sf/go/post96518 2012-10-22T15:51:22Z 2012-10-22T15:51:22Z Please can you do the following: It would be better if they dumped the entire frame so that we can see the contents of the DHCP packets, but for the 'far' example, it is incomplete as there is no DHCP ACK from the server if we got that far, as I can't see what the client sent. Client -> discover Server -> offer Client -> request Server -> ACK There is only one reply from the server, so it appears the ACK is missing, so the protocol exchange was never completed. Whether the client is sending the REQUEST after the server OFFER is unclear as not enough of the frame length is captured. The ARP exchange is a final sanity done by dhcp.client to verify the address is not already in use. This happens after the server ACK, but before the IP address is assigned to the interface. At this point it looks like traffic is dropped in the far case. A packet sniff on both the client and AP should give an idea of what each host is able to see. On 2012-10-04 5:51 PM, "Boangoat Jarupan" <community-noreply@qnx.com> wrote: >wireless chip: TI WL1281Q > >We have problem getting IP address from AP using dhcp.client. Our board >can successfully connect to the server using wpa_supplicant. After the >connection, we run "dhcp.client" to obtain the IP address from the >server. When the AP is far away (this is a main server with internet >access), the station could not get the IP address to assign to the node. >On the other hand, dpch.client works fine when the AP is closed to the >node within a single hop and does not have the internet access. > >We include log info in the attachment (dhcp_dump.txt) with four different >logs. > >1. TCPDUMP: connecting to AP_far >2. Sloginfo: connecting to AP_far >3. TCPDUMP: connecting to AP_near >4. Sloginfo: connecting to AP_near > >The first two logs show the connection to far away from AP, and IP >requests are fail. The first log shows that the station receives the IP >address. However, when we run ifconfig command, the IP does not get >assigned to the node. Sloginfo (2nd log) shows problem with cmdQueue_SM >which we are not sure what is the implication of this error. Last two >logs show successful IP request to local AP. In log 3, the arp is called >after the IP is assigned. We are not sure why the arp command is not >called when AP is far and have internet access. In log 4, the new >connection information is shown in sloginfo. > > > > > > >_______________________________________________ > >Technology >http://community.qnx.com/sf/go/post96045 >To cancel your subscription to this discussion, please e-mail >technology-networking-unsubscribe@community.qnx.com Hugh Brown 2012-10-22T15:51:22Z post96470: Re: dhcp.client IP request problem Hugh Brown http://community.qnx.com/sf/go/post96470 2012-10-19T15:49:14Z 2012-10-19T15:49:14Z Just to let you know that I'm still waiting for a response from TI. On 2012-10-04 5:51 PM, "Boangoat Jarupan" <community-noreply@qnx.com> wrote: >wireless chip: TI WL1281Q > >We have problem getting IP address from AP using dhcp.client. Our board >can successfully connect to the server using wpa_supplicant. After the >connection, we run "dhcp.client" to obtain the IP address from the >server. When the AP is far away (this is a main server with internet >access), the station could not get the IP address to assign to the node. >On the other hand, dpch.client works fine when the AP is closed to the >node within a single hop and does not have the internet access. > >We include log info in the attachment (dhcp_dump.txt) with four different >logs. > >1. TCPDUMP: connecting to AP_far >2. Sloginfo: connecting to AP_far >3. TCPDUMP: connecting to AP_near >4. Sloginfo: connecting to AP_near > >The first two logs show the connection to far away from AP, and IP >requests are fail. The first log shows that the station receives the IP >address. However, when we run ifconfig command, the IP does not get >assigned to the node. Sloginfo (2nd log) shows problem with cmdQueue_SM >which we are not sure what is the implication of this error. Last two >logs show successful IP request to local AP. In log 3, the arp is called >after the IP is assigned. We are not sure why the arp command is not >called when AP is far and have internet access. In log 4, the new >connection information is shown in sloginfo. > > > > > > >_______________________________________________ > >Technology >http://community.qnx.com/sf/go/post96045 >To cancel your subscription to this discussion, please e-mail >technology-networking-unsubscribe@community.qnx.com Hugh Brown 2012-10-19T15:49:14Z post96059: Re: dhcp.client IP request problem Hugh Brown http://community.qnx.com/sf/go/post96059 2012-10-05T14:49:07Z 2012-10-05T14:49:07Z I have forwarded your query to TI. On 2012-10-04 5:51 PM, "Boangoat Jarupan" <community-noreply@qnx.com> wrote: >wireless chip: TI WL1281Q > >We have problem getting IP address from AP using dhcp.client. Our board >can successfully connect to the server using wpa_supplicant. After the >connection, we run "dhcp.client" to obtain the IP address from the >server. When the AP is far away (this is a main server with internet >access), the station could not get the IP address to assign to the node. >On the other hand, dpch.client works fine when the AP is closed to the >node within a single hop and does not have the internet access. > >We include log info in the attachment (dhcp_dump.txt) with four different >logs. > >1. TCPDUMP: connecting to AP_far >2. Sloginfo: connecting to AP_far >3. TCPDUMP: connecting to AP_near >4. Sloginfo: connecting to AP_near > >The first two logs show the connection to far away from AP, and IP >requests are fail. The first log shows that the station receives the IP >address. However, when we run ifconfig command, the IP does not get >assigned to the node. Sloginfo (2nd log) shows problem with cmdQueue_SM >which we are not sure what is the implication of this error. Last two >logs show successful IP request to local AP. In log 3, the arp is called >after the IP is assigned. We are not sure why the arp command is not >called when AP is far and have internet access. In log 4, the new >connection information is shown in sloginfo. > > > > > > >_______________________________________________ > >Technology >http://community.qnx.com/sf/go/post96045 >To cancel your subscription to this discussion, please e-mail >technology-networking-unsubscribe@community.qnx.com Hugh Brown 2012-10-05T14:49:07Z post96045: dhcp.client IP request problem Boangoat Jarupan http://community.qnx.com/sf/go/post96045 2012-10-04T21:51:42Z 2012-10-04T21:51:42Z wireless chip: TI WL1281Q We have problem getting IP address from AP using dhcp.client. Our board can successfully connect to the server using wpa_supplicant. After the connection, we run "dhcp.client" to obtain the IP address from the server. When the AP is far away (this is a main server with internet access), the station could not get the IP address to assign to the node. On the other hand, dpch.client works fine when the AP is closed to the node within a single hop and does not have the internet access. We include log info in the attachment (dhcp_dump.txt) with four different logs. 1. TCPDUMP: connecting to AP_far 2. Sloginfo: connecting to AP_far 3. TCPDUMP: connecting to AP_near 4. Sloginfo: connecting to AP_near The first two logs show the connection to far away from AP, and IP requests are fail. The first log shows that the station receives the IP address. However, when we run ifconfig command, the IP does not get assigned to the node. Sloginfo (2nd log) shows problem with cmdQueue_SM which we are not sure what is the implication of this error. Last two logs show successful IP request to local AP. In log 3, the arp is called after the IP is assigned. We are not sure why the arp command is not called when AP is far and have internet access. In log 4, the new connection information is shown in sloginfo. Boangoat Jarupan 2012-10-04T21:51:42Z post95755: RE: RE: Not real-time enough Mario Charest http://community.qnx.com/sf/go/post95755 2012-09-21T19:50:19Z 2012-09-21T19:50:19Z > -----Message d'origine----- > De : Nick Reilly [mailto:community-noreply@qnx.com] > Envoyé : 21 septembre 2012 15:19 > À : technology-networking > Objet : Re: RE: Not real-time enough > > I think unfortunately splitting in to two io-pkt stacks may be the best. > > As you are jumbos you're not going to get that many more packets in without > hitting 27386. 27386??? > Adding a whole new API involving even more locking stuff on > the sockbuf would likely be counter productive, you could always switch to > TCP instead. Can't, the sender is not under our control. > > > > _______________________________________________ > > Technology > http://community.qnx.com/sf/go/post95751 > To cancel your subscription to this discussion, please e-mail technology- > networking-unsubscribe@community.qnx.com Mario Charest 2012-09-21T19:50:19Z