Feed for discussion General in project Networking.Posts for Generalpost122159: using sendmsg/sendmmsg for data link layer packetsyamuna devi(deleted)http://community.qnx.com/sf/go/post1221592023-03-11T11:34:31Z2023-03-11T11:34:31ZHi,
i have written an application which runs under QNX version 7.1.0 to send raw Ethernet frames using BPF interface. The application constructs the Ethernet frame and send it using the write() function, it is working fine.
Since the number of frames that we need to send are really large, by using the write() function it takes long time and the throughput is very low.
Therefore I consider using the sendmsg (mainly sendmmsg) to send large chunks of frames in one shot. However these functions are not working with BPF interface and throws the error "Socket operation on non-socket".
Here is the used code snippet:
std::vector<uint8_t> m_buffer = ...;
struct msghdr snd_msg;
unsigned char dst_addr[6] = {0x11, 0x11, 0x11, 0x11, 0x11, 0x11};
struct iovec snd_iov[1];
snd_iov[0].iov_base = m_buffer.data();
snd_iov[0].iov_len = m_buffer.size();
snd_msg.msg_name = dst_addr;
snd_msg.msg_namelen = 6;
snd_msg.msg_iov = snd_iov;
snd_msg.msg_iovlen = 1;
snd_msg.msg_control = 0;
snd_msg.msg_controllen = 0;
ssize_t bytes_sent = sendmsg(m_socketFd, &snd_msg, 0);
if (bytes_sent == -1) {
std::cerr << "sendmsg failed: " << strerror(errno) << "\n";
} else if (bytes_sent != m_buffer.size()) {
std::cerr << "could not send all data: " << bytes_sent << "\n";
} else {
std::cout << "sent all data\n";
}
The error msg:
# /tmp/send
sendmsg failed: Socket operation on non-socket
What is the standard solution to send multiple raw Ethernet frames in QNX?
Thanksyamuna devi(deleted)2023-03-11T11:34:31Zpost122013: Re: QNX7 SNMPMichael Kurthttp://community.qnx.com/sf/go/post1220132022-11-29T08:16:24Z2022-11-29T08:16:24ZHi Nick,
thanks for the info (unfortunately I expected such an answer) ;-(
OK, so we have to look around for a 3rd party solution.
Regards,
Michael.Michael Kurt2022-11-29T08:16:24Zpost122010: Re: QNX7 SNMPNick Reillyhttp://community.qnx.com/sf/go/post1220102022-11-28T14:01:46Z2022-11-28T14:01:46ZHi Michael,
There's no SNMP agent included in later versions of QNX, you will need to use an external product.
The old included one was Net-SNMP, you may be able to use an updated version of that.
Regards,
Nick.Nick Reilly2022-11-28T14:01:46Zpost122009: QNX7 SNMPMichael Kurthttp://community.qnx.com/sf/go/post1220092022-11-28T06:44:29Z2022-11-28T06:44:29ZHi all,
in QNX 6.5 there was an SNMP agent available, which seems to be gone in QNX7.0 (or at least am I unable to find anything regarding SNMP in QNX Software Center and in the documentation).
Are there plans to provide an SNMP agent in future versions of QNX or does one need to use external products?
If the latter is true: are there any recommendations?
Thanks in advance,
Michael.Michael Kurt2022-11-28T06:44:29Zpost121921: Re: sendmmsg to saturate 1 GBit linkNick Reillyhttp://community.qnx.com/sf/go/post1219212022-09-15T14:17:09Z2022-09-15T14:17:09ZThere's an interface send queue which is where the data is placed and sendmmsg() will return. Once that is full then sendmmsg() will return ENOBUFS. The driver will be reading from the other end of the interface send queue and setting up the DMA descriptors. You have no indication of when the packet is actually transmitted. This makes it very tricky to saturate an interface with UDP traffic - if you write too fast you get ENOBUFS and you are just wasting CPU that's probably needed to deal with transmitting, write too slowly and you aren't keeping the interface busy enough. TCP is a lot easier to saturate an interface in that there will be a TCP socket buffer that a blocking write() will not return from until there is space in that buffer.
Drivers can set their interface queue lengths, but most will default to 256 packets. I suspect you are also suffering from fragmentation increasing the number of packets, unless you have adjusted the interface MTU.Nick Reilly2022-09-15T14:17:09Zpost121920: sendmmsg to saturate 1 GBit linkThorsten Wilmerhttp://community.qnx.com/sf/go/post1219202022-09-15T11:36:05Z2022-09-15T11:36:05ZHi
I would like to saturate a 1 GBit/s link with data, which statically allocated in my program. So I know what to send and when. I can create according to the manual up to 1024 messages with sendmmsg.
But I am out of buffers already when I send 20 messages (7003 bytes). Sending 10 messages at once works.
How can I debug this and where can I increase the memory/buffers available for this operation? So that I can actually send the promised 1024 UDP messages at once?
Is my expectation correct that sendmmsg only returns once the DMA for this bunch of messages is done?
Kind Regards
ThorstenThorsten Wilmer2022-09-15T11:36:05Zpost121874: Re: Ethernet packetge zhang(deleted)http://community.qnx.com/sf/go/post1218742022-07-14T03:39:55Z2022-07-14T03:39:55ZHi:
Thanks a lot. I am trying the BPF way. I have a problem that how to set a BLOCK mode(like socket) when receiving packets. I have find a ioctl command BIOCIMMEDIATE but it says that BPF will return value when the buffer becomes full or timeout occurs which is different from BLOCK mode in socket. Do you have any advice about this?
BEST
Gege zhang(deleted)2022-07-14T03:39:55Zpost121867: Re: Ethernet packetNick Reillyhttp://community.qnx.com/sf/go/post1218672022-07-13T13:34:41Z2022-07-13T13:34:41ZNote that while the lsm-xxx.so flexibility is very high, so is the complexity especially given io-pkt's unique threading model. With this code running in io-pkt then it can cause issues with any packet flow or interface if care isn't taken.
If you don't need the full facilities and performance of an lsm-xxx.so then I strongly recommend to stick with the BPF API. It's far better documented and you are running as a normal process rather than as part of io-pkt.Nick Reilly2022-07-13T13:34:41Zpost121866: Re: Ethernet packetMichael Taschehttp://community.qnx.com/sf/go/post1218662022-07-13T11:51:49Z2022-07-13T11:51:49ZHello,
as i remember right, lsm-nraw.so was available as source code to have an example for your own specialized filters.
The lowest latency will be archived implementing your complete network protocol as your own lsm-XXX.so.
Here the flexibility is very high. For example, if the message passing latency to the resmgr interface of the lsm-nraw.so is to high for your problem, store the frames with your lsm-XXX.so to a shared memory region and use the resmgr interface only for triggering...
Regards
MichaelMichael Tasche2022-07-13T11:51:49Zpost121852: Ethernet packetge zhang(deleted)http://community.qnx.com/sf/go/post1218522022-07-12T10:16:58Z2022-07-12T10:16:58ZI want figure out the difference between lsm-nraw and bpf device when processing ethernet packets. I can use both module to send/receive ethernet packets. Which one has better interfaces support?ge zhang(deleted)2022-07-12T10:16:58Zpost121444: QNX 6.6.0 Audio Driver for Intel Kaby Lake chipsetJanusz Ruszelhttp://community.qnx.com/sf/go/post1214442021-06-01T23:11:37Z2021-06-01T23:11:37ZIs there any chance that the audio driver will be available for Intel Kaby Lake chipset for QNX 6.6.0+ SP1?Janusz Ruszel2021-06-01T23:11:37Zpost121014: Re: Perintah QNX untuk Melihat Semua Pengguna yang Masuk melalui ssh.iwan angkawijaya(deleted)http://community.qnx.com/sf/go/post1210142020-10-05T07:08:34Z2020-10-05T07:08:34Z> In Linux.. Command such as who or w will show you logged all the users logged
> on to the system.
>
> Are there similar commands for doing the same in QNX or similar binaries files
> ?
>
> Kindly help.
>iwan angkawijaya(deleted)2020-10-05T07:08:34Zpost120878: Re: How to setup DNS server in QNX7.0Darshan B(deleted)http://community.qnx.com/sf/go/post1208782020-08-04T14:56:38Z2020-08-04T14:56:38ZThank you Nick for your reply.
I tried using libcares provided by QNX. But still facing the same issue.
For ping you asked, gRPC is configured for tcp6. And we are using the default address=0.0.0.0 and port=50051.
I am able to run the server. I am facing the problem with client. I can see the server if I do netstat command.
Please help me to understand the problem, because I am new to Networking. I have attached the logs.Darshan B(deleted)2020-08-04T14:56:38Zpost120877: Re: How to setup DNS server in QNX7.0Nick Reillyhttp://community.qnx.com/sf/go/post1208772020-08-04T13:21:45Z2020-08-04T13:21:45ZNo, you do not need a DNS server running on QNX, you need to be setup to talk to one.
Does the rest of networking work correctly i.e. can you ping things by name? If not you have a fundamental networking configuration problem in your BSP. If that does work but gRPC doesn't work, then I note that gRPC is using C-ares for name resolution which can add complexity. We ship libcares with the curl packages, I don't know if you are using this copy or whether you are building your own.
I strongly recommend contacting your QNX technical support person. QNX offers assistance in porting code.Nick Reilly2020-08-04T13:21:45Zpost120875: How to setup DNS server in QNX7.0Darshan B(deleted)http://community.qnx.com/sf/go/post1208752020-08-03T08:25:12Z2020-08-03T08:25:12ZI am working on gRPC for QNX ARM 7.0 platform.
I am able to build the gRPC code for QNX platform. While running these binaries I am facing an issue related to DNS server.
D0101 23:54:27.828777594 1 grpc_ares_ev_driver.cc:313] (c-ares resolver) request:1036ce90 readable on c-ares fd: 3
D0101 23:54:27.829777489 1 grpc_ares_wrapper.cc:243] (c-ares resolver) request:1036ce90 on_hostbyname_done_locked host=localhost C-ares status is not ARES_SUCCESS: Could not contact DNS servers
D0101 23:54:27.829777489 1 grpc_ares_ev_driver.cc:98] (c-ares resolver) request:1036ce90 Ref ev_driver 10361460
D0101 23:54:27.829777489 1 grpc_ares_ev_driver.cc:407] (c-ares resolver) request:1036ce90 notify read on: c-ares fd: 3
D0101 23:54:27.829777489 1 grpc_ares_ev_driver.cc:105] (c-ares resolver) request:1036ce90 Unref ev_driver 10361460
D0101 23:54:27.830777436 1 grpc_ares_ev_driver.cc:313] (c-ares resolver) request:1036ce90 readable on c-ares fd: 3
D0101 23:54:27.830777436 1 grpc_ares_ev_driver.cc:98] (c-ares resolver) request:1036ce90 Ref ev_driver 10361460
D0101 23:54:27.830777436 1 grpc_ares_ev_driver.cc:407] (c-ares resolver) request:1036ce90 notify read on: c-ares fd: 3
D0101 23:54:27.830777436 1 grpc_ares_ev_driver.cc:105] (c-ares resolver) request:1036ce90 Unref ev_driver 10361460
D0101 23:54:27.831777175 1 grpc_ares_ev_driver.cc:313] (c-ares resolver) request:1036ce90 readable on c-ares fd: 3
D0101 23:54:27.831777175 1 grpc_ares_wrapper.cc:243] (c-ares resolver) request:1036ce90 on_hostbyname_done_locked host=localhost C-ares status is not ARES_SUCCESS: Could not contact DNS servers
I0101 23:54:27.831777175 1 timer_generic.cc:468] TIMER 103614a8: CANCEL pending=true
I0101 23:54:27.831777175 1 timer_generic.cc:468] TIMER 103614f8: CANCEL pending=true
D0101 23:54:27.831777175 1 grpc_ares_ev_driver.cc:105] (c-ares resolver) request:1036ce90 Unref ev_driver 10361460
D0101 23:54:27.832777227 1 grpc_ares_ev_driver.cc:119] (c-ares resolver) request:1036ce90 delete fd: c-ares fd: 3
D0101 23:54:27.832777227 1 grpc_ares_ev_driver.cc:449] (c-ares resolver) request:1036ce90 ev driver stop working
D0101 23:54:27.832777227 1 grpc_ares_ev_driver.cc:105] (c-ares resolver) request:1036ce90 Unref ev_driver 10361460
D0101 23:54:27.832777227 1 grpc_ares_ev_driver.cc:247] (c-ares resolver) request:1036ce90 ev_driver=10361460 on_timeout_locked. driver->shutting_down=1. err="Cancelled"
D0101 23:54:27.833776966 1 grpc_ares_ev_driver.cc:105] (c-ares resolver) request:1036ce90 Unref ev_driver 10361460
D0101 23:54:27.833776966 1 grpc_ares_ev_driver.cc:276] (c-ares resolver) request:1036ce90 ev_driver=10361460 on_ares_backup_poll_alarm_locked. driver->shutting_down=1. err="Cancelled"
D0101 23:54:27.833776966 1 grpc_ares_ev_driver.cc:105] (c-ares resolver) request:1036ce90 Unref ev_driver 10361460
D0101 23:54:27.833776966 1 grpc_ares_ev_driver.cc:108] (c-ares resolver) request:1036ce90 destroy ev_driver 10361460
D0101 23:54:27.833776966 1 dns_resolver_ares.cc:367] (c-ares resolver) resolver:10361560 dns resolution failed: {"created":"@86067.831777175","description":"C-ares status is not ARES_SUCCESS: Could not contact DNS servers","file":"/local/mnt/workspace/gitlab/grpc/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.cc","file_line":244,"referenced_errors":[{"created":"@86067.829777489","description":"C-ares status is not ARES_SUCCESS: Could not contact DNS servers","file":"/local/mnt/workspace/gitlab/grpc/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.cc","file_line":244}]}
I0101 23:54:27.834777226 1 resolving_lb_policy.cc:254] resolving_lb=1036d240: resolver transient failure: {"created":"@86067.834777226","description":"DNS resolution failed","file":"/local/mnt/workspace/gitlab/grpc/src/core/ext/filters/client_channel/resolver/dns/c_ares/dns_resolver_ares.cc","file_line":370,"grpc_status":14,"referenced_errors":[{"created":"@86067.831777175","description":"C-ares status is not ARES_SUCCESS: Could not contact DNS servers","file":"/local/mnt/workspace/gitlab/grpc/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.cc","file_line":244,"referenced_errors":[{"created":"@86067.829777489","description":"C-ares status is not ARES_SUCCESS: Could not contact DNS servers","file":"/local/mnt/workspace/gitlab/grpc/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.cc","file_line":244}]}]}
I0101 23:54:27.834777226 1 client_channel.cc:1332] chand=103633b8: update: state=TRANSIENT_FAILURE picker=10369730
I0101 23:54:27.835777173 1 connectivity_state.cc:151] ConnectivityStateTracker client_channel[10363450]: CONNECTING -> TRANSIENT_FAILURE (helper)
I0101 23:54:27.835777173 1 client_channel.cc:3912] chand=103633b8 calld=103621e0: LB pick returned FAILED (subchannel=0, error={"created":"@86067.834777226","description":"Resolver transient failure","file":"/local/mnt/workspace/gitlab/grpc/src/core/ext/filters/client_channel/resolving_lb_policy.cc","file_line":262,"referenced_errors":[{"created":"@86067.834777226","description":"DNS resolution failed","file":"/local/mnt/workspace/gitlab/grpc/src/core/ext/filters/client_channel/resolver/dns/c_ares/dns_resolver_ares.cc","file_line":370,"grpc_status":14,"referenced_errors":[{"created":"@86067.831777175","description":"C-ares status is not ARES_SUCCESS: Could not contact DNS servers","file":"/local/mnt/workspace/gitlab/grpc/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.cc","file_line":244,"referenced_errors":[{"created":"@86067.829777489","description":"C-ares status is not ARES_SUCCESS: Could not contact DNS servers","file":"/local/mnt/workspace/gitlab/grpc/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.cc","file_line":244}]}]}]})
I think this issue is related to DNS server, which is not set in our target. Can you please help me to know how I can setup the DNS server?
I am new to this networking as well as QNX.
Also correct me if I am suspecting wrong thing.Darshan B(deleted)2020-08-03T08:25:12Zpost120244: QNX Command to View All the Users Logged on via ssh.Saurav Suman(deleted)http://community.qnx.com/sf/go/post1202442020-02-09T10:44:36Z2020-02-09T10:44:36ZIn Linux.. Command such as who or w will show you logged all the users logged on to the system.
Are there similar commands for doing the same in QNX or similar binaries files ?
Kindly help.Saurav Suman(deleted)2020-02-09T10:44:36Zpost120243: Re: Enabling SSH login to QNXSaurav Suman(deleted)http://community.qnx.com/sf/go/post1202432020-02-09T10:40:41Z2020-02-09T10:40:41ZAFAIK,
As long as your system is read-only.. you will not be able to enable or disable anything.
So before flashing you will need to make partitions rw [read-writeable].
Then only you can proceed.
I think.Saurav Suman(deleted)2020-02-09T10:40:41Zpost120242: Enabling SSH login to QNXAmin Sahebihttp://community.qnx.com/sf/go/post1202422020-02-08T13:05:30Z2020-02-08T13:05:30ZI am trying to enable SSH on QNX6.5 in read-only file system. already I enabled it, but i don't have any idea how to set the password for my login session. I carried out all the required steps which is listed at:
"http://www.qnx.com/developers/docs/6.6.0_anm11_wf10/#com.qnx.doc.neutrino.utilities/topic/s/sshd.html"
but i cant use "passwd [USER]" to set password, due to read-only file system.
it would be greatly appreciated if you can give me a hand by this,
thanks in advanced.Amin Sahebi2020-02-08T13:05:30Zpost120084: Re: io-pkt avb library APIPiotr Pasterakhttp://community.qnx.com/sf/go/post1200842019-11-19T15:03:42Z2019-11-19T15:03:42ZHi,
I have problem with pdpd-avb synchronization as well (ONX on S32V2):
no sucess with: ptpd-avb -b fec0 -g -L -K -cC
when I try with: ptpd-avb -b fec0 -g -L -K -cC -O 550 it seems promising but seems slave clock doesn't follow (pdpd-avb doesn't control them?):
# ptpd-avb -b fec0 -g -L -K -cC -O 550
serIF0-> <2019-11-14> <15:09:57.945> (ptpd info) 15:07:50.932771 (___)
serIF0-> <2019-11-14> <15:09:57.946> (ptpd info) 15:07:50.933771 (___) Starting ptpd2 daemon with parameters: ptpd-avb -b fec0 -g -L -K -cC -O 550
serIF0-> <2019-11-14> <15:09:57.947> (ptpd info) 15:07:50.933771 (___) Info: Startup finished sucessfully
serIF0-> <2019-11-14> <15:09:57.947> # Timestamp, State, Clock ID, One Way Delay, Offset From Master, Slave to Master, Master to Slave, Drift, Last packet Received
serIF0-> <2019-11-14> <15:09:57.948> 2019-11-14 15:07:50.934771, init
serIF0-> <2019-11-14> <15:09:57.948> (ptpd notice) 15:07:50.936771 (init) hardware time support = 1,
serIF0-> <2019-11-14> <15:09:57.949> (ptpd notice) 15:07:50.937771 (init) setPtpTimeFromSystem to TAI: 1573744070s 936771526ns
serIF0-> <2019-11-14> <15:09:57.949> (ptpd info) 15:07:50.937771 (init) now in state PTP_LISTENING
serIF0-> <2019-11-14> <15:09:57.950> 2019-11-14 15:07:50.000000, lstn_init 1
serIF0-> <2019-11-14> <15:10:00.891> (ptpd info) 15:07:53.937771 (lstn_init) now in state PTP_LISTENING
serIF0-> <2019-11-14> <15:10:00.892> 2019-11-14 15:07:49.936771, lstn_init 1
serIF0-> <2019-11-14> <15:10:03.872> (ptpd info) 15:07:56.937771 (lstn_init) now in state PTP_LISTENING
serIF0-> <2019-11-14> <15:10:03.894> 2019-11-14 15:07:50.000000, lstn_init 1
serIF0-> <2019-11-14> <15:10:04.087> (ptpd info) 15:07:57.124771 (lstn_init) now in state PTP_SLAVE
serIF0-> <2019-11-14> <15:10:04.088> 2019-11-14 15:07:49.936771, slv 6805cafffe8d02c1(unknown)/01, 0.000000000, 0.000000000, 0.000000000, 0.000000000, 0, I
serIF0-> <2019-11-14> <15:10:04.474> (ptpd notice) 15:07:57.174771 (slv) Received first Sync from Master
serIF0-> <2019-11-14> <15:10:04.475> (ptpd notice) 15:07:57.174771 (slv) going to arm DelayReq timer for the first time, with initial rate: 0
serIF0-> <2019-11-14> <15:10:04.475> (ptpd info) 15:07:57.176771 (slv) updateClock aborted, offset greater than 1 second. (ptpd notice) 15:07:57.176771 (slv) msgDebugHeader: messageType 8
serIF0-> <2019-11-14> <15:10:04.476> (ptpd notice) 15:07:57.177771 (slv) msgDebugHeader: versionPTP 2
serIF0-> <2019-11-14> <15:10:04.476> (ptpd notice) 15:07:57.178771 (slv) msgDebugHeader: messageLength 76
serIF0-> <2019-11-14> <15:10:04.476> (ptpd notice) 15:07:57.178771 (slv) msgDebugHeader: domainNumber 0
serIF0-> <2019-11-14> <15:10:04.477> (ptpd notice) 15:07:57.179771 (slv) msgDebugHeader: flags 00 00
serIF0-> <2019-11-14> <15:10:04.477> (ptpd notice) 15:07:57.180771 (slv) msgDebugHeader: correctionfield 0
serIF0-> <2019-11-14> <15:10:04.478> (ptpd notice) 15:07:57.180771 (slv) msgDebugHeader: sourcePortIdentity.clockIdentity 68:05:ca:ff:fe:8d02:c1
serIF0-> <2019-11-14> <15:10:04.478> (ptpd notice) 15:07:57.181771 (slv) msgDebugHeader: sourcePortIdentity.portNumber 1
serIF0-> <2019-11-14> <15:10:04.479> (ptpd notice) 15:07:57.182771 (slv) msgDebugHeader: sequenceId 38
serIF0-> <2019-11-14> <15:10:04.479> (ptpd notice) 15:07:57.182771 (slv) msgDebugHeader: controlField 2
serIF0-> <2019-11-14> <15:10:04.480> (ptpd notice) 15:07:57.183771 (slv) msgDebugHeader: logMessageIntervale -3
serIF0-> <2019-11-14> <15:10:04.480> (ptpd notice) 15:07:57.184771 (slv) msgDebugFollowUp: preciseOriginTimestamp.seconds 1573744076
serIF0-> <2019-11-14> <15:10:04.480> (ptpd notice) 15:07:57.185771 (slv) msgDebugFollowUp: preciseOriginTimestamp.nanoseconds 617334267
serIF0-> <2019-11-14> <15:10:04.481> 2019-11-14 15:07:50.000000, slv 6805cafffe8d02c1(unknown)/01, 0.000000000, -6.680562741, 0.000000000, -6.680562741, 0, S
serIF0-> <2019-11-14> <15:10:04.481> (ptpd notice) 15:07:57.186771 (slv) Signaling MSG sent !
serIF0-> <2019-11-14> <15:10:04.481> (ptpd info) 15:07:57.312771 (slv) updateClock aborted, offset greater than 1 second. (ptpd notice) 15:07:57.313771 (slv) msgDebugHeader: messageType 8
serIF0-> <2019-11-14> <15:10:04.482> (ptpd notice) 15:07:57.314771 (slv) msgDebugHeader: versionPTP 2
serIF0-> <2019-11-14> <15:10:04.482> (ptpd notice) 15:07:57.314771 (slv) msgDebugHeader: messageLength 76
serIF0-> <2019-11-14> <15:10:04.483> (ptpd notice) 15:07:57.315771 (slv) msgDebugHeader: domainNumber 0
serIF0-> <2019-11-14> <15:10:04.483> (ptpd notice) 15:07:57.316771 (slv) msgDebugHeader: flags 00 00
serIF0-> <2019-11-14> <15:10:04.483> (ptpd notice) 15:07:57.316771 (slv) msgDebugHeader: correctionfield 0
serIF0-> <2019-11-14> <15:10:04.483> (ptpd notice) 15:07:57.317771 (slv) msgDebugHeader: sourcePortIdentity.clockIdentity 68:05:ca:ff:fe:8d02:c1
serIF0-> <2019-11-14> <15:10:04.484> (ptpd notice) 15:07:57.318771 (slv) msgDebugHeader: sourcePortIdentity.portNumber 1
serIF0-> <2019-11-14> <15:10:04.484> (ptpd notice) 15:07:57.319771 (slv) msgDebugHeader: sequenceId 39
serIF0-> <2019-11-14> <15:10:04.484> (ptpd notice) 15:07:57.320771 (slv) msgDebugHeader: controlField 2
serIF0-> <2019-11-14> <15:10:04.484> (ptpd notice) 15:07:57.320771 (slv) msgDebugHeader: logMessageIntervale -3
serIF0-> <2019-11-14> <15:10:04.485> (ptpd notice) 15:07:57.321771 (slv) msgDebugFollowUp: preciseOriginTimestamp.seconds 1573744076
serIF0-> <2019-11-14> <15:10:04.485> (ptpd notice) 15:07:57.322771 (slv) msgDebugFollowUp: preciseOriginTimestamp.nanoseconds 742506923
serIF0-> <2019-11-14> <15:10:04.485> 2019-11-14 15:07:50.000000, slv 6805cafffe8d02c1(unknown)/01, 0.000000000, -6.742506923, 0.000000000, -6.742506923, 0, S
serIF0-> <2019-11-14> <15:10:04.486> (ptpd info) 15:07:57.424771 (slv) updateClock aborted, offset greater than 1 second. (ptpd notice) 15:07:57.425771 (slv) msgDebugHeader: messageType 8
serIF0-> <2019-11-14> <15:10:04.486> (ptpd notice) 15:07:57.425771 (slv) msgDebugHeader: versionPTP 2
serIF0-> <2019-11-14> <15:10:04.486> (ptpd notice) 15:07:57.426771 (slv) msgDebugHeader: messageLength 76
serIF0-> <2019-11-14> <15:10:04.487> (ptpd notice) 15:07:57.427771 (slv) msgDebugHeader: domainNumber 0
serIF0-> <2019-11-14> <15:10:04.487> (ptpd notice) 15:07:57.427771 (slv) msgDebugHeader: flags 00 00
serIF0-> <2019-11-14> <15:10:04.487> (ptpd notice) 15:07:57.428771 (slv) msgDebugHeader: correctionfield 0
serIF0-> <2019-11-14> <15:10:04.487> (ptpd notice) 15:07:57.429771 (slv) msgDebugHeader: sourcePortIdentity.clockIdentity 68:05:ca:ff:fe:8d02:c1
serIF0-> <2019-11-14> <15:10:04.488> (ptpd notice) 15:07:57.430771 (slv) msgDebugHeader: sourcePortIdentity.portNumber 1
serIF0-> <2019-11-14> <15:10:04.488> (ptpd notice) 15:07:57.430771 (slv) msgDebugHeader: sequenceId 40
serIF0-> <2019-11-14> <15:10:04.488> (ptpd notice) 15:07:57.431771 (slv) msgDebugHeader: controlField 2
serIF0-> <2019-11-14> <15:10:04.488> (ptpd notice) 15:07:57.431771 (slv) msgDebugHeader: logMessageIntervale -3
serIF0-> <2019-11-14> <15:10:04.489> (ptpd notice) 15:07:57.432771 (slv) msgDebugFollowUp: preciseOriginTimestamp.seconds 1573744076
serIF0-> <2019-11-14> <15:10:04.843> (ptpd notice) 15:07:57.433771 (slv) msgDebugFollowUp: preciseOriginTimestamp.nanoseconds 867618987
serIF0-> <2019-11-14> <15:10:04.843> 2019-11-14 15:07:50.000000, slv 6805cafffe8d02c1(unknown)/01, 0.000000000, -6.867618987, 0.000000000, -6.867618987, 0, S
serIF0-> <2019-11-14> <15:10:04.843> (ptpd info) 15:07:57.562771 (slv) updateClock aborted, offset greater than 1 second. (ptpd notice) 15:07:57.563771 (slv) msgDebugHeader: messageType 8
serIF0-> <2019-11-14> <15:10:04.844> (ptpd notice) 15:07:57.564771 (slv) msgDebugHeader: versionPTP 2
serIF0-> <2019-11-14> <15:10:04.844> (ptpd notice) 15:07:57.564771 (slv) msgDebugHeader: messageLength 76
serIF0-> <2019-11-14> <15:10:04.845> (ptpd notice) 15:07:57.565771 (slv) msgDebugHeader: domainNumber 0
serIF0-> <2019-11-14> <15:10:04.845> (ptpd notice) 15:07:57.566771 (slv) msgDebugHeader: flags 00 00
serIF0-> <2019-11-14> <15:10:04.847> (ptpd notice) 15:07:57.566771 (slv) msgDebugHeader: correctionfield 0
serIF0-> <2019-11-14> <15:10:04.847> (ptpd notice) 15:07:57.567771 (slv) msgDebugHeader: sourcePortIdentity.clockIdentity 68:05:ca:ff:fe:8d02:c1
serIF0-> <2019-11-14> <15:10:04.848> (ptpd notice) 15:07:57.568771 (slv) msgDebugHeader: sourcePortIdentity.portNumber 1
serIF0-> <2019-11-14> <15:10:04.848> (ptpd notice) 15:07:57.569771 (slv) msgDebugHeader: sequenceId 41
serIF0-> <2019-11-14> <15:10:04.848> (ptpd notice) 15:07:57.569771 (slv) msgDebugHeader: controlField 2
serIF0-> <2019-11-14> <15:10:04.849> (ptpd notice) 15:07:57.570771 (slv) msgDebugHeader: logMessageIntervale -3
serIF0-> <2019-11-14> <15:10:04.849> (ptpd notice) 15:07:57.571771 (slv) msgDebugFollowUp: preciseOriginTimestamp.seconds 1573744076
serIF0-> <2019-11-14> <15:10:04.849> (ptpd notice) 15:07:57.572771 (slv) msgDebugFollowUp: preciseOriginTimestamp.nanoseconds 992958763
serIF0-> <2019-11-14> <15:10:04.850> 2019-11-14 15:07:50.000000, slv 6805cafffe8d02c1(unknown)/01, 0.000000000, -7.056187237, 0.000000000, -7.056187237, 0, S
serIF0-> <2019-11-14> <15:10:04.851> (ptpd info) 15:07:57.674771 (slv) updateClock aborted, offset greater than 1 second. (ptpd notice) 15:07:57.675771 (slv) msgDebugHeader: messageType 8
serIF0-> <2019-11-14> <15:10:04.852> (ptpd notice) 15:07:57.676771 (slv) msgDebugHeader: versionPTP 2
serIF0-> <2019-11-14> <15:10:04.852> (ptpd notice) 15:07:57.676771 (slv) msgDebugHeader: messageLength 76
serIF0-> <2019-11-14> <15:10:04.853> (ptpd notice) 15:07:57.677771 (slv) msgDebugHeader: domainNumber 0
serIF0-> <2019-11-14> <15:10:04.854> (ptpd notice) 15:07:57.677771 (slv) msgDebugHeader: flags 00 00
serIF0-> <2019-11-14> <15:10:04.855> (ptpd notice) 15:07:57.678771 (slv) msgDebugHeader: correctionfield 0
serIF0-> <2019-11-14> <15:10:04.856> (ptpd notice) 15:07:57.679771 (slv) msgDebugHeader: sourcePortIdentity.clockIdentity 68:05:ca:ff:fe:8d02:c1
serIF0-> <2019-11-14> <15:10:04.857> (ptpd notice) 15:07:57.680771 (slv) msgDebugHeader: sourcePortIdentity.portNumber 1
serIF0-> <2019-11-14> <15:10:04.857> (ptpd notice) 15:07:57.681771 (slv) msgDebugHeader: sequenceId 42
serIF0-> <2019-11-14> <15:10:04.858> (ptpd notice) 15:07:57.681771 (slv) msgDebugHeader: controlField 2
serIF0-> <2019-11-14> <15:10:04.859> (ptpd notice) 15:07:57.682771 (slv) msgDebugHeader: logMessageIntervale -3
serIF0-> <2019-11-14> <15:10:04.859> (ptpd notice) 15:07:57.682771 (slv) msgDebugFollowUp: preciseOriginTimestamp.seconds 1573744077
serIF0-> <2019-11-14> <15:10:04.859> (ptpd notice) 15:07:57.683771 (slv) msgDebugFollowUp: preciseOriginTimestamp.nanoseconds 118127707
serIF0-> <2019-11-14> <15:10:04.860> 2019-11-14 15:07:49.936771, slv 6805cafffe8d02c1(unknown)/01, 0.000000000, -7.181356181, 0.000000000, -7.181356181, 0, S
serIF0-> <2019-11-14> <15:10:04.860> (ptpd info) 15:07:57.812771 (slv) updateClock aborted, offset greater than 1 second. (ptpd notice) 15:07:57.813771 (slv) msgDebugHeader: messageType 8
serIF0-> <2019-11-14> <15:10:04.861> (ptpd notice) 15:07:57.814771 (slv) msgDebugHeader: versionPTP 2
serIF0-> <2019-11-14> <15:10:04.862> (ptpd notice) 15:07:57.814771 (slv) msgDebugHeader: messageLength 76
serIF0-> <2019-11-14> <15:10:04.862> (ptpd notice) 15:07:57.815771 (slv) msgDebugHeader: domainNumber 0
serIF0-> <2019-11-14> <15:10:04.862> (ptpd notice) 15:07:57.815771 (slv) msgDebugHeader: flags 00 00
serIF0-> <2019-11-14> <15:10:04.863> (ptpd notice) 15:07:57.816771 (slv) msgDebugHeader: correctionfield 0
serIF0-> <2019-11-14> <15:10:04.863> (ptpd notice) 15:07:57.817771 (slv) msgDebugHeader: sourcePortIdentity.clockIdentity 68:05:ca:ff:fe:8d02:c1
serIF0-> <2019-11-14> <15:10:04.864> (ptpd notice) 15:07:57.818771 (slv) msgDebugHeader: sourcePortIdentity.portNumber 1
serIF0-> <2019-11-14> <15:10:04.865> (ptpd notice) 15:07:57.819771 (slv) msgDebugHeader: sequenceId 43
serIF0-> <2019-11-14> <15:10:04.865> (ptpd notice) 15:07:57.819771 (slv) msgDebugHeader: controlField 2
serIF0-> <2019-11-14> <15:10:04.866> (ptpd notice) 15:07:57.820771 (slv) msgDebugHeader: logMessageIntervale -3
serIF0-> <2019-11-14> <15:10:04.866> (ptpd notice) 15:07:57.821771 (slv) msgDebugFollowUp: preciseOriginTimestamp.seconds 1573744077
could that be a bug?Piotr Pasterak2019-11-19T15:03:42Zpost120007: Re: rpcbind got "Permission denied" error.Nick Reillyhttp://community.qnx.com/sf/go/post1200072019-09-30T13:30:29Z2019-09-30T13:30:29ZTwo thoughts:
1) Is /var/run on a standard qnx6 type filesystem? Or is it on something else?
2) What permissions is io-pkt running with - are you dropping root or using some other security setup? io-pkt will create the socket in /var/run when rpcbind does the bind() call.Nick Reilly2019-09-30T13:30:29Zpost120004: rpcbind got "Permission denied" error.Song Shizhe(deleted)http://community.qnx.com/sf/go/post1200042019-09-30T05:48:48Z2019-09-30T05:48:48Zhi,
I am running rpcbind on my board. but got "Permission denied" errors.
# ./rpcbind -d
rpcbind: Cannot bind `local': Permission denied
rpcbind: Failed to open /var/run/rpcbind.sock: Permission denied
# ls -l
total 6796
-rwx------ 1 root root 56752 Sep 02 2019 rpcbind
and /var/run/ also writable:
# ls -l /var
total 56
drwxrw-rw- 2 root root 4096 Jan 01 00:08 run
How can I fix it? thanks.
Version: QNX 7.0Song Shizhe(deleted)2019-09-30T05:48:48Zpost119998: Re: io-pkt avb library APINick Reillyhttp://community.qnx.com/sf/go/post1199982019-09-26T13:08:40Z2019-09-26T13:08:40ZHi Mateusz,
You will need to have a source code contract in place for us to share source with you.
Try logging with the -C flag on the command line to see what is going on. If you post the start of the logs then we may be able to see what the issue is.
Regards,
NickNick Reilly2019-09-26T13:08:40Zpost119997: Re: io-pkt avb library APIMateusz Dziadosz(deleted)http://community.qnx.com/sf/go/post1199972019-09-26T12:31:59Z2019-09-26T12:31:59ZHi Nick,
Thanks, I updated software package, now pdpd-avb is working.
But I have still problem with synchronization between two processors with QNX7 one act as grand master -G flag and second as slave -g flag. I can see ptp packets on both machines using tcpdump, so it does not seems to be a network issue.
Could you share with source code with me or at least version with additional debug messages for aarch64?
Thanks,
MateuszMateusz Dziadosz(deleted)2019-09-26T12:31:59Zpost119955: Re: io-pkt avb library APINick Reillyhttp://community.qnx.com/sf/go/post1199552019-09-18T13:23:05Z2019-09-18T13:23:05ZHi Mateusz,
We updated ptpd-avb to work directly via BPF and not require lsm-avb.so a while ago. Please reach out to your QNX support contact to obtain the latest version which will contain the fixes for this and other issues.
Regards,
NickNick Reilly2019-09-18T13:23:05Zpost119954: Re: io-pkt avb library APIDean Denterhttp://community.qnx.com/sf/go/post1199542019-09-18T13:22:09Z2019-09-18T13:22:09Zptpd-avb has been updated in recent patches to removed dependency on lsm-avb.so -- you should also update your install to pick up the latest set of patches since there have been many fixes released recently in 7.0 for ptpd & ptpd-avb.
There is no need to specify the -e option for s/w ptp -- ptpd-avb (and ptpd) will detect that h/w ptp support is not available in the driver and run in s/w mode. If you have logging enabled, there should be a "hardware time support = 0," log shortly after starting ptpd-avb.
example of s/w support startup (no ptp master connected to this target board), s/w mode log is the 1st (init) log on line 7:
# ptpd-avb -gCKb rt0
(ptpd info) 13:06:30.341176 (___)
(ptpd info) 13:06:30.342176 (___) Starting ptpd2 daemon with parameters: ptpd-avb -gCKb rt0
(ptpd info) 13:06:30.343176 (___) Info: Going to check lock /dev/shmem/ptpd_lock
(ptpd info) 13:06:30.344176 (___) Info: Startup finished sucessfully
# Timestamp, State, Clock ID, One Way Delay, Offset From Master, Slave to Master, Master to Slave, Drift, Last packet Received
2019-09-18 13:06:30.345176, init
(ptpd notice) 13:06:30.346176 (init) hardware time support = 0,
(ptpd info) 13:06:30.347176 (init) now in state PTP_LISTENING
2019-09-18 13:06:30.347176, lstn_init 1
(ptpd info) 13:06:33.348137 (lstn_init) now in state PTP_LISTENING
2019-09-18 13:06:33.348137, lstn_init 1Dean Denter2019-09-18T13:22:09Zpost119953: Re: io-pkt avb library APIMateusz Dziadosz(deleted)http://community.qnx.com/sf/go/post1199532019-09-18T13:07:35Z2019-09-18T13:07:35ZHello,
Could you help with running ptpd-avb in "software mode" for ?
I am running QNX 7, when I trying to run ptpd-avb I am getting error because of lack lsm-avb.so:
(init) Open on /dev/socket/avb/fec0/time failed
Options:
-e run in ethernet mode (level2) is not implemented in ptpd-avb
Should I use other implementation of ptpd to do that?
ThanksMateusz Dziadosz(deleted)2019-09-18T13:07:35Zpost119825: unable to initialise io-displayKok Keong Neo(deleted)http://community.qnx.com/sf/go/post1198252019-08-23T07:40:52Z2019-08-23T07:40:52ZHi
I am having issues in io-display to start photon.
When i use io-display to initialise the VGA display, it say no such device found
I use pci -v to display the PCI device, my VGA display is listed as vid=0x8086,did=0x1912
What am I doing wrong? Any suggestions? Thank you
io-display -dvid=0x8086,did=0x1912
Could not initialize device "vid=0x8086,did=0x1912": No such device
Check 'sloginfo' output for more details
io-display failed to initialise
Class = Display (VGA)
Vendor ID = 8086h, Intel Corporation
Device ID = 1912h, Unknown Unknown
PCI index = 0h
Class Codes = 030000h
Revision ID = 6h
Bus number = 0
Device number = 2
Function num = 0
Status Reg = 10h
Command Reg = 7h
Header type = 0h Single-function
BIST = 0h Build-in-self-test not supported
Latency Timer = 0h
Cache Line Size= 10h un-cacheable
BAR - 0 [Mem] = de000000h 64bit length 16777216 enabled
BAR - 2 [Mem] = c0000000h prefetchable 64bit length 268435456 enabled
BAR - 4 [I/O] = f000h length 64 enabled
Subsystem Vendor ID = 8086h
Subsystem ID = 2015h
Max Lat = 0ns
Min Gnt = 0ns
PCI Int Pin = INT A
Interrupt line = 9
CPU Interrupt = 9h
Capabilities Pointer = 40h
Capability ID = 9h - Vendor Specific
Capabilities = 10ch - 62016671h
Capability ID = 10h - PCI Express
Capabilities = 92h - 10008000h
Capability ID = 5h - Message Signaled Interrupts
Capabilities = 0h - 0h
Capability ID = 1h - Power Management
Capabilities = 22h - 0h
Class = System Peripherals (Other)
Vendor ID = 8086h, Intel Corporation
Device ID = 1911h, Unknown Unknown
PCI index = 0h
Class Codes = 088000h
Revision ID = 0h
Bus number = 0
Device number = 8
Function num = 0
Status Reg = 10h
Command Reg = 6h
Header type = 0h Single-function
BIST = 0h Build-in-self-test not supported
Latency Timer = 0h
Cache Line Size= 10h un-cacheable
BAR - 0 [Mem] = df716000h 64bit length 4096 enabled
Subsystem Vendor ID = 8086h
Subsystem ID = 2015h
Max Lat = 0ns
Min Gnt = 0ns
PCI Int Pin = INT A
Interrupt line = 9
CPU Interrupt = 9h
Capabilities Pointer = 90h
Capability ID = 5h - Message Signaled Interrupts
Capabilities = 0h - 0h
Capability ID = 1h - Power Management
Capabilities = 2h - 0h
Capability ID = 13h - Unknown
Capabilities = 306h - 0hKok Keong Neo(deleted)2019-08-23T07:40:52Zpost119602: snmpd usagemario sangallihttp://community.qnx.com/sf/go/post1196022019-03-25T11:45:29Z2019-03-25T11:45:29ZHi,
I need to get the default snmpd (on QNX65) running ....
Has anyone used such server? I found some difficult to understand how to configure
the server: it is also not clear the usage of library and its api: can be used to write
some agents that can be interfaced to snmpd ?
Cheers,
Mariomario sangalli2019-03-25T11:45:29Zpost119446: Re: Get default gateway in CBenjamin Richner(deleted)http://community.qnx.com/sf/go/post1194462019-01-24T10:25:31Z2019-01-24T10:25:31ZThanks, Will. I'll take a look into that script.
We have significant vendor-lock-in with QNX so we will not be migrating anytime soon, probably. Our systems run fairly stable now so I am not that unhappy with it at the moment.Benjamin Richner(deleted)2019-01-24T10:25:31Zpost119445: Re: Get default gateway in CWill Mileshttp://community.qnx.com/sf/go/post1194452019-01-23T19:24:57Z2019-01-23T19:24:57ZHi Benjamin,
On 2019-01-23 4:23 a.m., Benjamin Richner wrote:
> To mitigate the floods we (a) set the runmask on all of our real-time components to lock them to the first core; and then (b) use 'slay -i -C 0' to also lock procnto's non-idle threads to that core as well. By locking procnto's threads, we ensure that CPU 0 can never be flooded out as it's always the *source* of the TLB flush interrupts
> That's clever. We did (a) because it makes timing much more stable, but we did not know about (b).
For posterity, I've attached the OpenRC init.d script we use that does (b). Note it loops until it confirms that all threads have the right runmask, because sometimes they come and go during the operation.
>
>> I haven't tried it myself -- unfortunately we've still got too much Photon code to migrate to something else before we can look at making that jump.
> Didn't you already have to get rid of Photon when using QNX6.6? For graphics I can recommend Crank Storyboard. It's solid cross-platform software with various renderers (hardware OpenGL based, software, etc). It's pretty cheap too. It is supported both on photon and screen based QNX versions.
Ironically in this context, QNX has generally been pretty good about arranging that binaries compiled for the previous release just work on the new one. I just boxed up Photon from 6.5 (including the io-graphics framework and drivers) into a package we could deploy on our 6.6 platform. It seems to works as well as it ever did in 6.5 (which is to say, there are still bugs that have to be worked around, but it gets the job done).
Truthfully we're looking at migrating away from QNX for our future human interfaces; currently we're looking at commodity tablets running commodity operating systems. The goal being that we can focus on writing the UI using FOSS tools without getting bogged down in graphics driver woes or display signal timing issues anymore.
> Anyway, we cannot go up to QNX7.0 because of old ethernet, wlan and graphics drivers for the old hardware that do not exist on QNX7.0 and cost a fortune to port (they're mostly closed source to us, otherwise I'd do it myself). The entire thing is unfortunate because I ported everything else to QNX7.0 and it's generally running well. The biggest change is that they completely reworked the PCI server - that cost me the most time.
Yeah, I looked over some of the beta release of the new PCI server. I can certainly understand the need for it -- I had to patch in additional IRQ routing capabilities for our hardware to the old server and I can appreciate the desire to reorganize. I'm not looking forward to making the jump; right now our current system is a single platform image using enum-devices to self-configure for whatever hardware it lands on, so we'll either have to build out a new device detection framework or completely rethink how we deploy.
-WillWill Miles2019-01-23T19:24:57Zpost119438: Re: Get default gateway in CBenjamin Richner(deleted)http://community.qnx.com/sf/go/post1194382019-01-23T09:23:26Z2019-01-23T09:23:26ZHey Will,
> For me, it was a long and sordid tale of woe about trying to track down why a hardware driver we wrote for QNX 6.3 failed to meet its targets on a new multicore SBC using QNX 6.6. I spent a lot of time with tracelogger trying to pin down what was causing the mysterious delays.
We have the exact same problem with our EtherCAT driver. We updated from QNX6.5 to QNX6.6. We do not start or stop any processes anymore and that helped (no more massive TLB flush storms), but the controller is still not as stable as it used to be.
> and Samba loves to create and destroy processes with a zillion shared objects, so I saw a lot of these TLB flush floods in my traces.
What a nightmare.
> I don't know if it affects other architectures, so far we're still an x86-only shop here.
We are also x86-only but from what I've heard so far, it seems like it happens on all SMP versions of QNX6.6. They said they fixed a race condition that was present in the QNX6.5 kernel, and the fix is causing those TLB flushes. So basically they had to sacrifice responsiveness for correctness. I do not know how QNX7.0 performs in those regards.
> To be fair, I still have an old copy of the QNX 6.4 kernel sources from way back before BB screwed up all the policies
I wish I did too. I don't have any kernel source. Sometimes I look into openqnx on github, but it's old and doesn't map that well onto the newer kernels anymore.
>To mitigate the floods we (a) set the runmask on all of our real-time components to lock them to the first core; and then (b) use 'slay -i -C 0' to also lock procnto's non-idle threads to that core as well. By locking procnto's threads, we ensure that CPU 0 can never be flooded out as it's always the *source* of the TLB flush interrupts
That's clever. We did (a) because it makes timing much more stable, but we did not know about (b).
> I haven't tried it myself -- unfortunately we've still got too much Photon code to migrate to something else before we can look at making that jump.
Didn't you already have to get rid of Photon when using QNX6.6? For graphics I can recommend Crank Storyboard. It's solid cross-platform software with various renderers (hardware OpenGL based, software, etc). It's pretty cheap too. It is supported both on photon and screen based QNX versions.
Anyway, we cannot go up to QNX7.0 because of old ethernet, wlan and graphics drivers for the old hardware that do not exist on QNX7.0 and cost a fortune to port (they're mostly closed source to us, otherwise I'd do it myself). The entire thing is unfortunate because I ported everything else to QNX7.0 and it's generally running well. The biggest change is that they completely reworked the PCI server - that cost me the most time.
Cheers,
BenjaminBenjamin Richner(deleted)2019-01-23T09:23:26Zpost119437: Re: Get default gateway in CWill Mileshttp://community.qnx.com/sf/go/post1194372019-01-22T18:01:09Z2019-01-22T18:01:09ZFor me, it was a long and sordid tale of woe about trying to track down why a hardware driver we wrote for QNX 6.3 failed to meet its targets on a new multicore SBC using QNX 6.6. I spent a lot of time with tracelogger trying to pin down what was causing the mysterious delays. (In the end, I never did mange to solve it -- it seemed like there's some kind of intermittent PCIe root complex stall with that board. When it gets stuck, the other core can still access RAM, but any attempt to perform memory-mapped IO through any PCIe port would also stall.)
Anyhow, we run Samba on our target boards to provide easy file transfers for Windows clients; and Samba loves to create and destroy processes with a zillion shared objects, so I saw a lot of these TLB flush floods in my traces. I can't speak for other customers, but I imagine that pretty much anyone with a multicore x86 system who catches a process destruction in tracelogger would've seen it. I don't know if it affects other architectures, so far we're still an x86-only shop here. To be fair, I still have an old copy of the QNX 6.4 kernel sources from way back before BB screwed up all the policies, and that was somewhat helpful for understanding what the IPI was meant to be doing.
To mitigate the floods we (a) set the runmask on all of our real-time components to lock them to the first core; and then (b) use 'slay -i -C 0' to also lock procnto's non-idle threads to that core as well. By locking procnto's threads, we ensure that CPU 0 can never be flooded out as it's always the *source* of the TLB flush interrupts; those procnto threads will just be preempted by a real-time thread when needed. It's hardly ideal -- essentially only the one core can be treated as real-time, and there's a performance penalty introduced with every procnto call on other cores -- but at least we get one core that we can still rely on.
For posterity's sake, I'd also like to note here that I recall reading that QNX 7.0 had a major rewrite of the memory manager, so it's quite possible this issue has been fixed in the current release. I haven't tried it myself -- unfortunately we've still got too much Photon code to migrate to something else before we can look at making that jump.
-WillWill Miles2019-01-22T18:01:09Zpost119432: Re: Get default gateway in CBenjamin Richner(deleted)http://community.qnx.com/sf/go/post1194322019-01-22T12:41:40Z2019-01-22T12:41:40ZJust as a small followup: I got it to work. The following GitHub repo was a great help:
https://github.com/k84d/unpv13e/blob/master/libroute/net_rt_dump.c
The API calls can be copied verbatim and it works in QNX. Cool!Benjamin Richner(deleted)2019-01-22T12:41:40Zpost119430: Re: Get default gateway in CBenjamin Richner(deleted)http://community.qnx.com/sf/go/post1194302019-01-22T08:06:15Z2019-01-22T08:06:15ZHi Nick,
Thanks for your answer, it's really helpful. I'll try your approaches.
-BenjaminBenjamin Richner(deleted)2019-01-22T08:06:15Zpost119429: Re: Get default gateway in CBenjamin Richner(deleted)http://community.qnx.com/sf/go/post1194292019-01-22T08:04:59Z2019-01-22T08:04:59ZHi Will,
Yes, that's it, exactly. How do you know about the TLB flushes? Is this common knowledge? It took us a lot of digging and debugging to find out about it.
-BenjaminBenjamin Richner(deleted)2019-01-22T08:04:59Zpost119428: Re: Get default gateway in CWill Mileshttp://community.qnx.com/sf/go/post1194282019-01-21T21:44:53Z2019-01-21T21:44:53Z> > a QNX kernel engineer told us we cannot start or kill threads at runtime if
> we
>
> Correction: cannot start or kill processes*
Sorry to derail your question, but I'm curious about what problems you were running in to with process management. Does this have to do with a IPI_TLB_FLUSH flood on a multicore system?
-WillWill Miles2019-01-21T21:44:53Zpost119427: Re: Get default gateway in CNick Reillyhttp://community.qnx.com/sf/go/post1194272019-01-21T16:24:43Z2019-01-21T16:24:43ZThere are 2 different possibilities. Either open a routing socket and send an RTM_GET message or issue a sysctl for:
mib[0] = CTL_NET;
mib[1] = PF_ROUTE;
mib[2] = 0;
mib[3] = 0;
mib[4] = NET_RT_DUMP;
mib[5] = 0;
Probably best to do the RTM_GET because then you can just get the default gateway rather than dumping the entire table and then having to parse out the default gateway.Nick Reilly2019-01-21T16:24:43Zpost119426: Re: Get default gateway in CBenjamin Richner(deleted)http://community.qnx.com/sf/go/post1194262019-01-21T12:47:37Z2019-01-21T12:47:37Z> a QNX kernel engineer told us we cannot start or kill threads at runtime if we
Correction: cannot start or kill processes*Benjamin Richner(deleted)2019-01-21T12:47:37Zpost119425: Get default gateway in CBenjamin Richner(deleted)http://community.qnx.com/sf/go/post1194252019-01-21T12:43:31Z2019-01-21T12:43:31ZHi,
I need to get the default gateway (on QNX6.6) and display it live on our display.
With "netstat -rn" I can easily get the default gateway, but I need to do it programmatically in C. A simple approach would be to just do a string search on the stdout of "netstat -rn" and find the default gateway. However, our realtime system is really sensitive and easily disturbed by activities like starting and killing processes (this is a whole different story, bottom line, a QNX kernel engineer told us we cannot start or kill threads at runtime if we ever want stable timings).
So, is there a way to get the current default gateway, e.g. with ioctl, without launching route or netstat? I found some solutions online but they are Linux only.
Cheers,
BenjaminBenjamin Richner(deleted)2019-01-21T12:43:31Zpost119344: FILE EXISTS error on setting IPV4 address using ioctlParthiban Chinnathambi(deleted)http://community.qnx.com/sf/go/post1193442018-12-05T08:20:36Z2018-12-05T08:20:36ZHi,
I am getting a File exists error on using the SIOCSIFADDR ioctl command to set IP address ,but the IP address is changed to the requested value. Why the error occurs?
bool setIpv4Address(std::string interfaceName,std::string ipAddr)
{
struct sockaddr_in sin;
int sockFd;
std::string Ip;
struct ifreq ifr;
bool retStatus;
memset(&ifr, 0x00, sizeof(ifr));
memset(&sin, 0x00, sizeof(sin));
retStatus = true;
sin.sin_family = AF_INET;
sin.sin_len = sizeof(sin);
/// check valid ip
if (inet_aton(&ipAddr[0], &sin.sin_addr) == 0)
{
retStatus = false;
}
else
{
/// Create socket for INET and update the address information.
memset(&ifr, 0x00, sizeof(ifr));
strcpy(ifr.ifr_name, &interfaceName[0]);
memcpy(&ifr.ifr_addr, &sin, sizeof(ifr.ifr_addr));
if ((sockFd = socket(AF_INET, SOCK_DGRAM, 0)) != -1)
{
/// Set IP address using SIOCSIFADDR ioctl flag.
if (ioctl(sockFd, SIOCSIFADDR, &ifr) != -1)
{
/// Set Interface Up
/// Get ifreq.flags
ioctl(sockFd, SIOCGIFFLAGS, &ifr);
ifr.ifr_flags |= (IFF_UP| IFF_RUNNING);
if(ioctl(sockFd, SIOCSIFFLAGS, &ifr) == -1)
{
perror("Interface link status change failed");
retStatus = false;
}
}
else
{
perror("setIpv4Address Setting IPV4 address Error :");
retStatus = false;
}
}
else
{
perror("Socket creation failed ");
retStatus = false;
}
close (sockFd);
}
return retStatus;
}
_______________________________________________
General
http://community.qnx.com/sf/go/post119316
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119317
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119318
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119319
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119320
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119321
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119322
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119323
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119324
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119325
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119326
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119327
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119328
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119329
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119330
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119331
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119332
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119333
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119334
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119335
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119336
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119337
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119338
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119339
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119340
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119341
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119342
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119343
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.comParthiban Chinnathambi(deleted)2018-12-05T08:20:36Zpost119345: FILE EXISTS error on setting IPV4 address using ioctlParthiban Chinnathambi(deleted)http://community.qnx.com/sf/go/post1193452018-12-05T08:20:36Z2018-12-05T08:20:36ZHi,
I am getting a File exists error on using the SIOCSIFADDR ioctl command to set IP address ,but the IP address is changed to the requested value. Why the error occurs?
bool setIpv4Address(std::string interfaceName,std::string ipAddr)
{
struct sockaddr_in sin;
int sockFd;
std::string Ip;
struct ifreq ifr;
bool retStatus;
memset(&ifr, 0x00, sizeof(ifr));
memset(&sin, 0x00, sizeof(sin));
retStatus = true;
sin.sin_family = AF_INET;
sin.sin_len = sizeof(sin);
/// check valid ip
if (inet_aton(&ipAddr[0], &sin.sin_addr) == 0)
{
retStatus = false;
}
else
{
/// Create socket for INET and update the address information.
memset(&ifr, 0x00, sizeof(ifr));
strcpy(ifr.ifr_name, &interfaceName[0]);
memcpy(&ifr.ifr_addr, &sin, sizeof(ifr.ifr_addr));
if ((sockFd = socket(AF_INET, SOCK_DGRAM, 0)) != -1)
{
/// Set IP address using SIOCSIFADDR ioctl flag.
if (ioctl(sockFd, SIOCSIFADDR, &ifr) != -1)
{
/// Set Interface Up
/// Get ifreq.flags
ioctl(sockFd, SIOCGIFFLAGS, &ifr);
ifr.ifr_flags |= (IFF_UP| IFF_RUNNING);
if(ioctl(sockFd, SIOCSIFFLAGS, &ifr) == -1)
{
perror("Interface link status change failed");
retStatus = false;
}
}
else
{
perror("setIpv4Address Setting IPV4 address Error :");
retStatus = false;
}
}
else
{
perror("Socket creation failed ");
retStatus = false;
}
close (sockFd);
}
return retStatus;
}
_______________________________________________
General
http://community.qnx.com/sf/go/post119316
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119317
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119318
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119319
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119320
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119321
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119322
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119323
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119324
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119325
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119326
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119327
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119328
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119329
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119330
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119331
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119332
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119333
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119334
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119335
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119336
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119337
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119338
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119339
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119340
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119341
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119342
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119343
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119344
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.comParthiban Chinnathambi(deleted)2018-12-05T08:20:36Zpost119343: FILE EXISTS error on setting IPV4 address using ioctlParthiban Chinnathambi(deleted)http://community.qnx.com/sf/go/post1193432018-12-05T08:20:35Z2018-12-05T08:20:35ZHi,
I am getting a File exists error on using the SIOCSIFADDR ioctl command to set IP address ,but the IP address is changed to the requested value. Why the error occurs?
bool setIpv4Address(std::string interfaceName,std::string ipAddr)
{
struct sockaddr_in sin;
int sockFd;
std::string Ip;
struct ifreq ifr;
bool retStatus;
memset(&ifr, 0x00, sizeof(ifr));
memset(&sin, 0x00, sizeof(sin));
retStatus = true;
sin.sin_family = AF_INET;
sin.sin_len = sizeof(sin);
/// check valid ip
if (inet_aton(&ipAddr[0], &sin.sin_addr) == 0)
{
retStatus = false;
}
else
{
/// Create socket for INET and update the address information.
memset(&ifr, 0x00, sizeof(ifr));
strcpy(ifr.ifr_name, &interfaceName[0]);
memcpy(&ifr.ifr_addr, &sin, sizeof(ifr.ifr_addr));
if ((sockFd = socket(AF_INET, SOCK_DGRAM, 0)) != -1)
{
/// Set IP address using SIOCSIFADDR ioctl flag.
if (ioctl(sockFd, SIOCSIFADDR, &ifr) != -1)
{
/// Set Interface Up
/// Get ifreq.flags
ioctl(sockFd, SIOCGIFFLAGS, &ifr);
ifr.ifr_flags |= (IFF_UP| IFF_RUNNING);
if(ioctl(sockFd, SIOCSIFFLAGS, &ifr) == -1)
{
perror("Interface link status change failed");
retStatus = false;
}
}
else
{
perror("setIpv4Address Setting IPV4 address Error :");
retStatus = false;
}
}
else
{
perror("Socket creation failed ");
retStatus = false;
}
close (sockFd);
}
return retStatus;
}
_______________________________________________
General
http://community.qnx.com/sf/go/post119316
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119317
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119318
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119319
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119320
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119321
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119322
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119323
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119324
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119325
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119326
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119327
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119328
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119329
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119330
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119331
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119332
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119333
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119334
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119335
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119336
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119337
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119338
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119339
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119340
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119341
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119342
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.comParthiban Chinnathambi(deleted)2018-12-05T08:20:35Zpost119342: FILE EXISTS error on setting IPV4 address using ioctlParthiban Chinnathambi(deleted)http://community.qnx.com/sf/go/post1193422018-12-05T08:20:34Z2018-12-05T08:20:34ZHi,
I am getting a File exists error on using the SIOCSIFADDR ioctl command to set IP address ,but the IP address is changed to the requested value. Why the error occurs?
bool setIpv4Address(std::string interfaceName,std::string ipAddr)
{
struct sockaddr_in sin;
int sockFd;
std::string Ip;
struct ifreq ifr;
bool retStatus;
memset(&ifr, 0x00, sizeof(ifr));
memset(&sin, 0x00, sizeof(sin));
retStatus = true;
sin.sin_family = AF_INET;
sin.sin_len = sizeof(sin);
/// check valid ip
if (inet_aton(&ipAddr[0], &sin.sin_addr) == 0)
{
retStatus = false;
}
else
{
/// Create socket for INET and update the address information.
memset(&ifr, 0x00, sizeof(ifr));
strcpy(ifr.ifr_name, &interfaceName[0]);
memcpy(&ifr.ifr_addr, &sin, sizeof(ifr.ifr_addr));
if ((sockFd = socket(AF_INET, SOCK_DGRAM, 0)) != -1)
{
/// Set IP address using SIOCSIFADDR ioctl flag.
if (ioctl(sockFd, SIOCSIFADDR, &ifr) != -1)
{
/// Set Interface Up
/// Get ifreq.flags
ioctl(sockFd, SIOCGIFFLAGS, &ifr);
ifr.ifr_flags |= (IFF_UP| IFF_RUNNING);
if(ioctl(sockFd, SIOCSIFFLAGS, &ifr) == -1)
{
perror("Interface link status change failed");
retStatus = false;
}
}
else
{
perror("setIpv4Address Setting IPV4 address Error :");
retStatus = false;
}
}
else
{
perror("Socket creation failed ");
retStatus = false;
}
close (sockFd);
}
return retStatus;
}
_______________________________________________
General
http://community.qnx.com/sf/go/post119316
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119317
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119318
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119319
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119320
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119321
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119322
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119323
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119324
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119325
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119326
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119327
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119328
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119329
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119330
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119331
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119332
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119333
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119334
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119335
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119336
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119337
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119338
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119339
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119340
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119341
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.comParthiban Chinnathambi(deleted)2018-12-05T08:20:34Zpost119341: FILE EXISTS error on setting IPV4 address using ioctlParthiban Chinnathambi(deleted)http://community.qnx.com/sf/go/post1193412018-12-05T08:20:33Z2018-12-05T08:20:33ZHi,
I am getting a File exists error on using the SIOCSIFADDR ioctl command to set IP address ,but the IP address is changed to the requested value. Why the error occurs?
bool setIpv4Address(std::string interfaceName,std::string ipAddr)
{
struct sockaddr_in sin;
int sockFd;
std::string Ip;
struct ifreq ifr;
bool retStatus;
memset(&ifr, 0x00, sizeof(ifr));
memset(&sin, 0x00, sizeof(sin));
retStatus = true;
sin.sin_family = AF_INET;
sin.sin_len = sizeof(sin);
/// check valid ip
if (inet_aton(&ipAddr[0], &sin.sin_addr) == 0)
{
retStatus = false;
}
else
{
/// Create socket for INET and update the address information.
memset(&ifr, 0x00, sizeof(ifr));
strcpy(ifr.ifr_name, &interfaceName[0]);
memcpy(&ifr.ifr_addr, &sin, sizeof(ifr.ifr_addr));
if ((sockFd = socket(AF_INET, SOCK_DGRAM, 0)) != -1)
{
/// Set IP address using SIOCSIFADDR ioctl flag.
if (ioctl(sockFd, SIOCSIFADDR, &ifr) != -1)
{
/// Set Interface Up
/// Get ifreq.flags
ioctl(sockFd, SIOCGIFFLAGS, &ifr);
ifr.ifr_flags |= (IFF_UP| IFF_RUNNING);
if(ioctl(sockFd, SIOCSIFFLAGS, &ifr) == -1)
{
perror("Interface link status change failed");
retStatus = false;
}
}
else
{
perror("setIpv4Address Setting IPV4 address Error :");
retStatus = false;
}
}
else
{
perror("Socket creation failed ");
retStatus = false;
}
close (sockFd);
}
return retStatus;
}
_______________________________________________
General
http://community.qnx.com/sf/go/post119316
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119317
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119318
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119319
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119320
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119321
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119322
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119323
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119324
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119325
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119326
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119327
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119328
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119329
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119330
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119331
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119332
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119333
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119334
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119335
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119336
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119337
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119338
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119339
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119340
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.comParthiban Chinnathambi(deleted)2018-12-05T08:20:33Zpost119340: FILE EXISTS error on setting IPV4 address using ioctlParthiban Chinnathambi(deleted)http://community.qnx.com/sf/go/post1193402018-12-05T08:20:32Z2018-12-05T08:20:32ZHi,
I am getting a File exists error on using the SIOCSIFADDR ioctl command to set IP address ,but the IP address is changed to the requested value. Why the error occurs?
bool setIpv4Address(std::string interfaceName,std::string ipAddr)
{
struct sockaddr_in sin;
int sockFd;
std::string Ip;
struct ifreq ifr;
bool retStatus;
memset(&ifr, 0x00, sizeof(ifr));
memset(&sin, 0x00, sizeof(sin));
retStatus = true;
sin.sin_family = AF_INET;
sin.sin_len = sizeof(sin);
/// check valid ip
if (inet_aton(&ipAddr[0], &sin.sin_addr) == 0)
{
retStatus = false;
}
else
{
/// Create socket for INET and update the address information.
memset(&ifr, 0x00, sizeof(ifr));
strcpy(ifr.ifr_name, &interfaceName[0]);
memcpy(&ifr.ifr_addr, &sin, sizeof(ifr.ifr_addr));
if ((sockFd = socket(AF_INET, SOCK_DGRAM, 0)) != -1)
{
/// Set IP address using SIOCSIFADDR ioctl flag.
if (ioctl(sockFd, SIOCSIFADDR, &ifr) != -1)
{
/// Set Interface Up
/// Get ifreq.flags
ioctl(sockFd, SIOCGIFFLAGS, &ifr);
ifr.ifr_flags |= (IFF_UP| IFF_RUNNING);
if(ioctl(sockFd, SIOCSIFFLAGS, &ifr) == -1)
{
perror("Interface link status change failed");
retStatus = false;
}
}
else
{
perror("setIpv4Address Setting IPV4 address Error :");
retStatus = false;
}
}
else
{
perror("Socket creation failed ");
retStatus = false;
}
close (sockFd);
}
return retStatus;
}
_______________________________________________
General
http://community.qnx.com/sf/go/post119316
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119317
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119318
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119319
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119320
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119321
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119322
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119323
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119324
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119325
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119326
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119327
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119328
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119329
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119330
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119331
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119332
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119333
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119334
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119335
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119336
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119337
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119338
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119339
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.comParthiban Chinnathambi(deleted)2018-12-05T08:20:32Zpost119339: FILE EXISTS error on setting IPV4 address using ioctlParthiban Chinnathambi(deleted)http://community.qnx.com/sf/go/post1193392018-12-05T08:20:31Z2018-12-05T08:20:31ZHi,
I am getting a File exists error on using the SIOCSIFADDR ioctl command to set IP address ,but the IP address is changed to the requested value. Why the error occurs?
bool setIpv4Address(std::string interfaceName,std::string ipAddr)
{
struct sockaddr_in sin;
int sockFd;
std::string Ip;
struct ifreq ifr;
bool retStatus;
memset(&ifr, 0x00, sizeof(ifr));
memset(&sin, 0x00, sizeof(sin));
retStatus = true;
sin.sin_family = AF_INET;
sin.sin_len = sizeof(sin);
/// check valid ip
if (inet_aton(&ipAddr[0], &sin.sin_addr) == 0)
{
retStatus = false;
}
else
{
/// Create socket for INET and update the address information.
memset(&ifr, 0x00, sizeof(ifr));
strcpy(ifr.ifr_name, &interfaceName[0]);
memcpy(&ifr.ifr_addr, &sin, sizeof(ifr.ifr_addr));
if ((sockFd = socket(AF_INET, SOCK_DGRAM, 0)) != -1)
{
/// Set IP address using SIOCSIFADDR ioctl flag.
if (ioctl(sockFd, SIOCSIFADDR, &ifr) != -1)
{
/// Set Interface Up
/// Get ifreq.flags
ioctl(sockFd, SIOCGIFFLAGS, &ifr);
ifr.ifr_flags |= (IFF_UP| IFF_RUNNING);
if(ioctl(sockFd, SIOCSIFFLAGS, &ifr) == -1)
{
perror("Interface link status change failed");
retStatus = false;
}
}
else
{
perror("setIpv4Address Setting IPV4 address Error :");
retStatus = false;
}
}
else
{
perror("Socket creation failed ");
retStatus = false;
}
close (sockFd);
}
return retStatus;
}
_______________________________________________
General
http://community.qnx.com/sf/go/post119316
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119317
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119318
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119319
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119320
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119321
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119322
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119323
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119324
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119325
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119326
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119327
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119328
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119329
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119330
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119331
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119332
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119333
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119334
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119335
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119336
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119337
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119338
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.comParthiban Chinnathambi(deleted)2018-12-05T08:20:31Zpost119338: FILE EXISTS error on setting IPV4 address using ioctlParthiban Chinnathambi(deleted)http://community.qnx.com/sf/go/post1193382018-12-05T08:20:30Z2018-12-05T08:20:30ZHi,
I am getting a File exists error on using the SIOCSIFADDR ioctl command to set IP address ,but the IP address is changed to the requested value. Why the error occurs?
bool setIpv4Address(std::string interfaceName,std::string ipAddr)
{
struct sockaddr_in sin;
int sockFd;
std::string Ip;
struct ifreq ifr;
bool retStatus;
memset(&ifr, 0x00, sizeof(ifr));
memset(&sin, 0x00, sizeof(sin));
retStatus = true;
sin.sin_family = AF_INET;
sin.sin_len = sizeof(sin);
/// check valid ip
if (inet_aton(&ipAddr[0], &sin.sin_addr) == 0)
{
retStatus = false;
}
else
{
/// Create socket for INET and update the address information.
memset(&ifr, 0x00, sizeof(ifr));
strcpy(ifr.ifr_name, &interfaceName[0]);
memcpy(&ifr.ifr_addr, &sin, sizeof(ifr.ifr_addr));
if ((sockFd = socket(AF_INET, SOCK_DGRAM, 0)) != -1)
{
/// Set IP address using SIOCSIFADDR ioctl flag.
if (ioctl(sockFd, SIOCSIFADDR, &ifr) != -1)
{
/// Set Interface Up
/// Get ifreq.flags
ioctl(sockFd, SIOCGIFFLAGS, &ifr);
ifr.ifr_flags |= (IFF_UP| IFF_RUNNING);
if(ioctl(sockFd, SIOCSIFFLAGS, &ifr) == -1)
{
perror("Interface link status change failed");
retStatus = false;
}
}
else
{
perror("setIpv4Address Setting IPV4 address Error :");
retStatus = false;
}
}
else
{
perror("Socket creation failed ");
retStatus = false;
}
close (sockFd);
}
return retStatus;
}
_______________________________________________
General
http://community.qnx.com/sf/go/post119316
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119317
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119318
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119319
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119320
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119321
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119322
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119323
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119324
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119325
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119326
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119327
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119328
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119329
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119330
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119331
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119332
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119333
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119334
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119335
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119336
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119337
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.comParthiban Chinnathambi(deleted)2018-12-05T08:20:30Zpost119337: FILE EXISTS error on setting IPV4 address using ioctlParthiban Chinnathambi(deleted)http://community.qnx.com/sf/go/post1193372018-12-05T08:20:29Z2018-12-05T08:20:29ZHi,
I am getting a File exists error on using the SIOCSIFADDR ioctl command to set IP address ,but the IP address is changed to the requested value. Why the error occurs?
bool setIpv4Address(std::string interfaceName,std::string ipAddr)
{
struct sockaddr_in sin;
int sockFd;
std::string Ip;
struct ifreq ifr;
bool retStatus;
memset(&ifr, 0x00, sizeof(ifr));
memset(&sin, 0x00, sizeof(sin));
retStatus = true;
sin.sin_family = AF_INET;
sin.sin_len = sizeof(sin);
/// check valid ip
if (inet_aton(&ipAddr[0], &sin.sin_addr) == 0)
{
retStatus = false;
}
else
{
/// Create socket for INET and update the address information.
memset(&ifr, 0x00, sizeof(ifr));
strcpy(ifr.ifr_name, &interfaceName[0]);
memcpy(&ifr.ifr_addr, &sin, sizeof(ifr.ifr_addr));
if ((sockFd = socket(AF_INET, SOCK_DGRAM, 0)) != -1)
{
/// Set IP address using SIOCSIFADDR ioctl flag.
if (ioctl(sockFd, SIOCSIFADDR, &ifr) != -1)
{
/// Set Interface Up
/// Get ifreq.flags
ioctl(sockFd, SIOCGIFFLAGS, &ifr);
ifr.ifr_flags |= (IFF_UP| IFF_RUNNING);
if(ioctl(sockFd, SIOCSIFFLAGS, &ifr) == -1)
{
perror("Interface link status change failed");
retStatus = false;
}
}
else
{
perror("setIpv4Address Setting IPV4 address Error :");
retStatus = false;
}
}
else
{
perror("Socket creation failed ");
retStatus = false;
}
close (sockFd);
}
return retStatus;
}
_______________________________________________
General
http://community.qnx.com/sf/go/post119316
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119317
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119318
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119319
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119320
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119321
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119322
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119323
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119324
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119325
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119326
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119327
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119328
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119329
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119330
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119331
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119332
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119333
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119334
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119335
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119336
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.comParthiban Chinnathambi(deleted)2018-12-05T08:20:29Zpost119336: FILE EXISTS error on setting IPV4 address using ioctlParthiban Chinnathambi(deleted)http://community.qnx.com/sf/go/post1193362018-12-05T08:20:28Z2018-12-05T08:20:28ZHi,
I am getting a File exists error on using the SIOCSIFADDR ioctl command to set IP address ,but the IP address is changed to the requested value. Why the error occurs?
bool setIpv4Address(std::string interfaceName,std::string ipAddr)
{
struct sockaddr_in sin;
int sockFd;
std::string Ip;
struct ifreq ifr;
bool retStatus;
memset(&ifr, 0x00, sizeof(ifr));
memset(&sin, 0x00, sizeof(sin));
retStatus = true;
sin.sin_family = AF_INET;
sin.sin_len = sizeof(sin);
/// check valid ip
if (inet_aton(&ipAddr[0], &sin.sin_addr) == 0)
{
retStatus = false;
}
else
{
/// Create socket for INET and update the address information.
memset(&ifr, 0x00, sizeof(ifr));
strcpy(ifr.ifr_name, &interfaceName[0]);
memcpy(&ifr.ifr_addr, &sin, sizeof(ifr.ifr_addr));
if ((sockFd = socket(AF_INET, SOCK_DGRAM, 0)) != -1)
{
/// Set IP address using SIOCSIFADDR ioctl flag.
if (ioctl(sockFd, SIOCSIFADDR, &ifr) != -1)
{
/// Set Interface Up
/// Get ifreq.flags
ioctl(sockFd, SIOCGIFFLAGS, &ifr);
ifr.ifr_flags |= (IFF_UP| IFF_RUNNING);
if(ioctl(sockFd, SIOCSIFFLAGS, &ifr) == -1)
{
perror("Interface link status change failed");
retStatus = false;
}
}
else
{
perror("setIpv4Address Setting IPV4 address Error :");
retStatus = false;
}
}
else
{
perror("Socket creation failed ");
retStatus = false;
}
close (sockFd);
}
return retStatus;
}
_______________________________________________
General
http://community.qnx.com/sf/go/post119316
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119317
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119318
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119319
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119320
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119321
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119322
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119323
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119324
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119325
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119326
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119327
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119328
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119329
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119330
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119331
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119332
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119333
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119334
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119335
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.comParthiban Chinnathambi(deleted)2018-12-05T08:20:28Zpost119335: FILE EXISTS error on setting IPV4 address using ioctlParthiban Chinnathambi(deleted)http://community.qnx.com/sf/go/post1193352018-12-05T08:20:24Z2018-12-05T08:20:24ZHi,
I am getting a File exists error on using the SIOCSIFADDR ioctl command to set IP address ,but the IP address is changed to the requested value. Why the error occurs?
bool setIpv4Address(std::string interfaceName,std::string ipAddr)
{
struct sockaddr_in sin;
int sockFd;
std::string Ip;
struct ifreq ifr;
bool retStatus;
memset(&ifr, 0x00, sizeof(ifr));
memset(&sin, 0x00, sizeof(sin));
retStatus = true;
sin.sin_family = AF_INET;
sin.sin_len = sizeof(sin);
/// check valid ip
if (inet_aton(&ipAddr[0], &sin.sin_addr) == 0)
{
retStatus = false;
}
else
{
/// Create socket for INET and update the address information.
memset(&ifr, 0x00, sizeof(ifr));
strcpy(ifr.ifr_name, &interfaceName[0]);
memcpy(&ifr.ifr_addr, &sin, sizeof(ifr.ifr_addr));
if ((sockFd = socket(AF_INET, SOCK_DGRAM, 0)) != -1)
{
/// Set IP address using SIOCSIFADDR ioctl flag.
if (ioctl(sockFd, SIOCSIFADDR, &ifr) != -1)
{
/// Set Interface Up
/// Get ifreq.flags
ioctl(sockFd, SIOCGIFFLAGS, &ifr);
ifr.ifr_flags |= (IFF_UP| IFF_RUNNING);
if(ioctl(sockFd, SIOCSIFFLAGS, &ifr) == -1)
{
perror("Interface link status change failed");
retStatus = false;
}
}
else
{
perror("setIpv4Address Setting IPV4 address Error :");
retStatus = false;
}
}
else
{
perror("Socket creation failed ");
retStatus = false;
}
close (sockFd);
}
return retStatus;
}
_______________________________________________
General
http://community.qnx.com/sf/go/post119316
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119317
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119318
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119319
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119320
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119321
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119322
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119323
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119324
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119325
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119326
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119327
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119328
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119329
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119330
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119331
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119332
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119333
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119334
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.comParthiban Chinnathambi(deleted)2018-12-05T08:20:24Zpost119334: FILE EXISTS error on setting IPV4 address using ioctlParthiban Chinnathambi(deleted)http://community.qnx.com/sf/go/post1193342018-12-05T08:20:23Z2018-12-05T08:20:23ZHi,
I am getting a File exists error on using the SIOCSIFADDR ioctl command to set IP address ,but the IP address is changed to the requested value. Why the error occurs?
bool setIpv4Address(std::string interfaceName,std::string ipAddr)
{
struct sockaddr_in sin;
int sockFd;
std::string Ip;
struct ifreq ifr;
bool retStatus;
memset(&ifr, 0x00, sizeof(ifr));
memset(&sin, 0x00, sizeof(sin));
retStatus = true;
sin.sin_family = AF_INET;
sin.sin_len = sizeof(sin);
/// check valid ip
if (inet_aton(&ipAddr[0], &sin.sin_addr) == 0)
{
retStatus = false;
}
else
{
/// Create socket for INET and update the address information.
memset(&ifr, 0x00, sizeof(ifr));
strcpy(ifr.ifr_name, &interfaceName[0]);
memcpy(&ifr.ifr_addr, &sin, sizeof(ifr.ifr_addr));
if ((sockFd = socket(AF_INET, SOCK_DGRAM, 0)) != -1)
{
/// Set IP address using SIOCSIFADDR ioctl flag.
if (ioctl(sockFd, SIOCSIFADDR, &ifr) != -1)
{
/// Set Interface Up
/// Get ifreq.flags
ioctl(sockFd, SIOCGIFFLAGS, &ifr);
ifr.ifr_flags |= (IFF_UP| IFF_RUNNING);
if(ioctl(sockFd, SIOCSIFFLAGS, &ifr) == -1)
{
perror("Interface link status change failed");
retStatus = false;
}
}
else
{
perror("setIpv4Address Setting IPV4 address Error :");
retStatus = false;
}
}
else
{
perror("Socket creation failed ");
retStatus = false;
}
close (sockFd);
}
return retStatus;
}
_______________________________________________
General
http://community.qnx.com/sf/go/post119316
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119317
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119318
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119319
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119320
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119321
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119322
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119323
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119324
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119325
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119326
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119327
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119328
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119329
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119330
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119331
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119332
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119333
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.comParthiban Chinnathambi(deleted)2018-12-05T08:20:23Zpost119333: FILE EXISTS error on setting IPV4 address using ioctlParthiban Chinnathambi(deleted)http://community.qnx.com/sf/go/post1193332018-12-05T08:20:21Z2018-12-05T08:20:21ZHi,
I am getting a File exists error on using the SIOCSIFADDR ioctl command to set IP address ,but the IP address is changed to the requested value. Why the error occurs?
bool setIpv4Address(std::string interfaceName,std::string ipAddr)
{
struct sockaddr_in sin;
int sockFd;
std::string Ip;
struct ifreq ifr;
bool retStatus;
memset(&ifr, 0x00, sizeof(ifr));
memset(&sin, 0x00, sizeof(sin));
retStatus = true;
sin.sin_family = AF_INET;
sin.sin_len = sizeof(sin);
/// check valid ip
if (inet_aton(&ipAddr[0], &sin.sin_addr) == 0)
{
retStatus = false;
}
else
{
/// Create socket for INET and update the address information.
memset(&ifr, 0x00, sizeof(ifr));
strcpy(ifr.ifr_name, &interfaceName[0]);
memcpy(&ifr.ifr_addr, &sin, sizeof(ifr.ifr_addr));
if ((sockFd = socket(AF_INET, SOCK_DGRAM, 0)) != -1)
{
/// Set IP address using SIOCSIFADDR ioctl flag.
if (ioctl(sockFd, SIOCSIFADDR, &ifr) != -1)
{
/// Set Interface Up
/// Get ifreq.flags
ioctl(sockFd, SIOCGIFFLAGS, &ifr);
ifr.ifr_flags |= (IFF_UP| IFF_RUNNING);
if(ioctl(sockFd, SIOCSIFFLAGS, &ifr) == -1)
{
perror("Interface link status change failed");
retStatus = false;
}
}
else
{
perror("setIpv4Address Setting IPV4 address Error :");
retStatus = false;
}
}
else
{
perror("Socket creation failed ");
retStatus = false;
}
close (sockFd);
}
return retStatus;
}
_______________________________________________
General
http://community.qnx.com/sf/go/post119316
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119317
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119318
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119319
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119320
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119321
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119322
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119323
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119324
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119325
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119326
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119327
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119328
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119329
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119330
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119331
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119332
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.comParthiban Chinnathambi(deleted)2018-12-05T08:20:21Zpost119332: FILE EXISTS error on setting IPV4 address using ioctlParthiban Chinnathambi(deleted)http://community.qnx.com/sf/go/post1193322018-12-05T08:20:20Z2018-12-05T08:20:20ZHi,
I am getting a File exists error on using the SIOCSIFADDR ioctl command to set IP address ,but the IP address is changed to the requested value. Why the error occurs?
bool setIpv4Address(std::string interfaceName,std::string ipAddr)
{
struct sockaddr_in sin;
int sockFd;
std::string Ip;
struct ifreq ifr;
bool retStatus;
memset(&ifr, 0x00, sizeof(ifr));
memset(&sin, 0x00, sizeof(sin));
retStatus = true;
sin.sin_family = AF_INET;
sin.sin_len = sizeof(sin);
/// check valid ip
if (inet_aton(&ipAddr[0], &sin.sin_addr) == 0)
{
retStatus = false;
}
else
{
/// Create socket for INET and update the address information.
memset(&ifr, 0x00, sizeof(ifr));
strcpy(ifr.ifr_name, &interfaceName[0]);
memcpy(&ifr.ifr_addr, &sin, sizeof(ifr.ifr_addr));
if ((sockFd = socket(AF_INET, SOCK_DGRAM, 0)) != -1)
{
/// Set IP address using SIOCSIFADDR ioctl flag.
if (ioctl(sockFd, SIOCSIFADDR, &ifr) != -1)
{
/// Set Interface Up
/// Get ifreq.flags
ioctl(sockFd, SIOCGIFFLAGS, &ifr);
ifr.ifr_flags |= (IFF_UP| IFF_RUNNING);
if(ioctl(sockFd, SIOCSIFFLAGS, &ifr) == -1)
{
perror("Interface link status change failed");
retStatus = false;
}
}
else
{
perror("setIpv4Address Setting IPV4 address Error :");
retStatus = false;
}
}
else
{
perror("Socket creation failed ");
retStatus = false;
}
close (sockFd);
}
return retStatus;
}
_______________________________________________
General
http://community.qnx.com/sf/go/post119316
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119317
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119318
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119319
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119320
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119321
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119322
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119323
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119324
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119325
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119326
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119327
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119328
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119329
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119330
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119331
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.comParthiban Chinnathambi(deleted)2018-12-05T08:20:20Zpost119331: FILE EXISTS error on setting IPV4 address using ioctlParthiban Chinnathambi(deleted)http://community.qnx.com/sf/go/post1193312018-12-05T08:20:19Z2018-12-05T08:20:19ZHi,
I am getting a File exists error on using the SIOCSIFADDR ioctl command to set IP address ,but the IP address is changed to the requested value. Why the error occurs?
bool setIpv4Address(std::string interfaceName,std::string ipAddr)
{
struct sockaddr_in sin;
int sockFd;
std::string Ip;
struct ifreq ifr;
bool retStatus;
memset(&ifr, 0x00, sizeof(ifr));
memset(&sin, 0x00, sizeof(sin));
retStatus = true;
sin.sin_family = AF_INET;
sin.sin_len = sizeof(sin);
/// check valid ip
if (inet_aton(&ipAddr[0], &sin.sin_addr) == 0)
{
retStatus = false;
}
else
{
/// Create socket for INET and update the address information.
memset(&ifr, 0x00, sizeof(ifr));
strcpy(ifr.ifr_name, &interfaceName[0]);
memcpy(&ifr.ifr_addr, &sin, sizeof(ifr.ifr_addr));
if ((sockFd = socket(AF_INET, SOCK_DGRAM, 0)) != -1)
{
/// Set IP address using SIOCSIFADDR ioctl flag.
if (ioctl(sockFd, SIOCSIFADDR, &ifr) != -1)
{
/// Set Interface Up
/// Get ifreq.flags
ioctl(sockFd, SIOCGIFFLAGS, &ifr);
ifr.ifr_flags |= (IFF_UP| IFF_RUNNING);
if(ioctl(sockFd, SIOCSIFFLAGS, &ifr) == -1)
{
perror("Interface link status change failed");
retStatus = false;
}
}
else
{
perror("setIpv4Address Setting IPV4 address Error :");
retStatus = false;
}
}
else
{
perror("Socket creation failed ");
retStatus = false;
}
close (sockFd);
}
return retStatus;
}
_______________________________________________
General
http://community.qnx.com/sf/go/post119316
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119317
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119318
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119319
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119320
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119321
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119322
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119323
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119324
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119325
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119326
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119327
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119328
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119329
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119330
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.comParthiban Chinnathambi(deleted)2018-12-05T08:20:19Zpost119330: FILE EXISTS error on setting IPV4 address using ioctlParthiban Chinnathambi(deleted)http://community.qnx.com/sf/go/post1193302018-12-05T08:20:18Z2018-12-05T08:20:18ZHi,
I am getting a File exists error on using the SIOCSIFADDR ioctl command to set IP address ,but the IP address is changed to the requested value. Why the error occurs?
bool setIpv4Address(std::string interfaceName,std::string ipAddr)
{
struct sockaddr_in sin;
int sockFd;
std::string Ip;
struct ifreq ifr;
bool retStatus;
memset(&ifr, 0x00, sizeof(ifr));
memset(&sin, 0x00, sizeof(sin));
retStatus = true;
sin.sin_family = AF_INET;
sin.sin_len = sizeof(sin);
/// check valid ip
if (inet_aton(&ipAddr[0], &sin.sin_addr) == 0)
{
retStatus = false;
}
else
{
/// Create socket for INET and update the address information.
memset(&ifr, 0x00, sizeof(ifr));
strcpy(ifr.ifr_name, &interfaceName[0]);
memcpy(&ifr.ifr_addr, &sin, sizeof(ifr.ifr_addr));
if ((sockFd = socket(AF_INET, SOCK_DGRAM, 0)) != -1)
{
/// Set IP address using SIOCSIFADDR ioctl flag.
if (ioctl(sockFd, SIOCSIFADDR, &ifr) != -1)
{
/// Set Interface Up
/// Get ifreq.flags
ioctl(sockFd, SIOCGIFFLAGS, &ifr);
ifr.ifr_flags |= (IFF_UP| IFF_RUNNING);
if(ioctl(sockFd, SIOCSIFFLAGS, &ifr) == -1)
{
perror("Interface link status change failed");
retStatus = false;
}
}
else
{
perror("setIpv4Address Setting IPV4 address Error :");
retStatus = false;
}
}
else
{
perror("Socket creation failed ");
retStatus = false;
}
close (sockFd);
}
return retStatus;
}
_______________________________________________
General
http://community.qnx.com/sf/go/post119316
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119317
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119318
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119319
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119320
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119321
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119322
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119323
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119324
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119325
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119326
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119327
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119328
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119329
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.comParthiban Chinnathambi(deleted)2018-12-05T08:20:18Zpost119329: FILE EXISTS error on setting IPV4 address using ioctlParthiban Chinnathambi(deleted)http://community.qnx.com/sf/go/post1193292018-12-05T08:20:17Z2018-12-05T08:20:17ZHi,
I am getting a File exists error on using the SIOCSIFADDR ioctl command to set IP address ,but the IP address is changed to the requested value. Why the error occurs?
bool setIpv4Address(std::string interfaceName,std::string ipAddr)
{
struct sockaddr_in sin;
int sockFd;
std::string Ip;
struct ifreq ifr;
bool retStatus;
memset(&ifr, 0x00, sizeof(ifr));
memset(&sin, 0x00, sizeof(sin));
retStatus = true;
sin.sin_family = AF_INET;
sin.sin_len = sizeof(sin);
/// check valid ip
if (inet_aton(&ipAddr[0], &sin.sin_addr) == 0)
{
retStatus = false;
}
else
{
/// Create socket for INET and update the address information.
memset(&ifr, 0x00, sizeof(ifr));
strcpy(ifr.ifr_name, &interfaceName[0]);
memcpy(&ifr.ifr_addr, &sin, sizeof(ifr.ifr_addr));
if ((sockFd = socket(AF_INET, SOCK_DGRAM, 0)) != -1)
{
/// Set IP address using SIOCSIFADDR ioctl flag.
if (ioctl(sockFd, SIOCSIFADDR, &ifr) != -1)
{
/// Set Interface Up
/// Get ifreq.flags
ioctl(sockFd, SIOCGIFFLAGS, &ifr);
ifr.ifr_flags |= (IFF_UP| IFF_RUNNING);
if(ioctl(sockFd, SIOCSIFFLAGS, &ifr) == -1)
{
perror("Interface link status change failed");
retStatus = false;
}
}
else
{
perror("setIpv4Address Setting IPV4 address Error :");
retStatus = false;
}
}
else
{
perror("Socket creation failed ");
retStatus = false;
}
close (sockFd);
}
return retStatus;
}
_______________________________________________
General
http://community.qnx.com/sf/go/post119316
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119317
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119318
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119319
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119320
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119321
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119322
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119323
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119324
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119325
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119326
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119327
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119328
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.comParthiban Chinnathambi(deleted)2018-12-05T08:20:17Zpost119328: FILE EXISTS error on setting IPV4 address using ioctlParthiban Chinnathambi(deleted)http://community.qnx.com/sf/go/post1193282018-12-05T08:20:17Z2018-12-05T08:20:17ZHi,
I am getting a File exists error on using the SIOCSIFADDR ioctl command to set IP address ,but the IP address is changed to the requested value. Why the error occurs?
bool setIpv4Address(std::string interfaceName,std::string ipAddr)
{
struct sockaddr_in sin;
int sockFd;
std::string Ip;
struct ifreq ifr;
bool retStatus;
memset(&ifr, 0x00, sizeof(ifr));
memset(&sin, 0x00, sizeof(sin));
retStatus = true;
sin.sin_family = AF_INET;
sin.sin_len = sizeof(sin);
/// check valid ip
if (inet_aton(&ipAddr[0], &sin.sin_addr) == 0)
{
retStatus = false;
}
else
{
/// Create socket for INET and update the address information.
memset(&ifr, 0x00, sizeof(ifr));
strcpy(ifr.ifr_name, &interfaceName[0]);
memcpy(&ifr.ifr_addr, &sin, sizeof(ifr.ifr_addr));
if ((sockFd = socket(AF_INET, SOCK_DGRAM, 0)) != -1)
{
/// Set IP address using SIOCSIFADDR ioctl flag.
if (ioctl(sockFd, SIOCSIFADDR, &ifr) != -1)
{
/// Set Interface Up
/// Get ifreq.flags
ioctl(sockFd, SIOCGIFFLAGS, &ifr);
ifr.ifr_flags |= (IFF_UP| IFF_RUNNING);
if(ioctl(sockFd, SIOCSIFFLAGS, &ifr) == -1)
{
perror("Interface link status change failed");
retStatus = false;
}
}
else
{
perror("setIpv4Address Setting IPV4 address Error :");
retStatus = false;
}
}
else
{
perror("Socket creation failed ");
retStatus = false;
}
close (sockFd);
}
return retStatus;
}
_______________________________________________
General
http://community.qnx.com/sf/go/post119316
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119317
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119318
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119319
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119320
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119321
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119322
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119323
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119324
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119325
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119326
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119327
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.comParthiban Chinnathambi(deleted)2018-12-05T08:20:17Zpost119327: FILE EXISTS error on setting IPV4 address using ioctlParthiban Chinnathambi(deleted)http://community.qnx.com/sf/go/post1193272018-12-05T08:20:16Z2018-12-05T08:20:16ZHi,
I am getting a File exists error on using the SIOCSIFADDR ioctl command to set IP address ,but the IP address is changed to the requested value. Why the error occurs?
bool setIpv4Address(std::string interfaceName,std::string ipAddr)
{
struct sockaddr_in sin;
int sockFd;
std::string Ip;
struct ifreq ifr;
bool retStatus;
memset(&ifr, 0x00, sizeof(ifr));
memset(&sin, 0x00, sizeof(sin));
retStatus = true;
sin.sin_family = AF_INET;
sin.sin_len = sizeof(sin);
/// check valid ip
if (inet_aton(&ipAddr[0], &sin.sin_addr) == 0)
{
retStatus = false;
}
else
{
/// Create socket for INET and update the address information.
memset(&ifr, 0x00, sizeof(ifr));
strcpy(ifr.ifr_name, &interfaceName[0]);
memcpy(&ifr.ifr_addr, &sin, sizeof(ifr.ifr_addr));
if ((sockFd = socket(AF_INET, SOCK_DGRAM, 0)) != -1)
{
/// Set IP address using SIOCSIFADDR ioctl flag.
if (ioctl(sockFd, SIOCSIFADDR, &ifr) != -1)
{
/// Set Interface Up
/// Get ifreq.flags
ioctl(sockFd, SIOCGIFFLAGS, &ifr);
ifr.ifr_flags |= (IFF_UP| IFF_RUNNING);
if(ioctl(sockFd, SIOCSIFFLAGS, &ifr) == -1)
{
perror("Interface link status change failed");
retStatus = false;
}
}
else
{
perror("setIpv4Address Setting IPV4 address Error :");
retStatus = false;
}
}
else
{
perror("Socket creation failed ");
retStatus = false;
}
close (sockFd);
}
return retStatus;
}
_______________________________________________
General
http://community.qnx.com/sf/go/post119316
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119317
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119318
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119319
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119320
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119321
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119322
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119323
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119324
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119325
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119326
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.comParthiban Chinnathambi(deleted)2018-12-05T08:20:16Zpost119325: FILE EXISTS error on setting IPV4 address using ioctlParthiban Chinnathambi(deleted)http://community.qnx.com/sf/go/post1193252018-12-05T08:20:10Z2018-12-05T08:20:10ZHi,
I am getting a File exists error on using the SIOCSIFADDR ioctl command to set IP address ,but the IP address is changed to the requested value. Why the error occurs?
bool setIpv4Address(std::string interfaceName,std::string ipAddr)
{
struct sockaddr_in sin;
int sockFd;
std::string Ip;
struct ifreq ifr;
bool retStatus;
memset(&ifr, 0x00, sizeof(ifr));
memset(&sin, 0x00, sizeof(sin));
retStatus = true;
sin.sin_family = AF_INET;
sin.sin_len = sizeof(sin);
/// check valid ip
if (inet_aton(&ipAddr[0], &sin.sin_addr) == 0)
{
retStatus = false;
}
else
{
/// Create socket for INET and update the address information.
memset(&ifr, 0x00, sizeof(ifr));
strcpy(ifr.ifr_name, &interfaceName[0]);
memcpy(&ifr.ifr_addr, &sin, sizeof(ifr.ifr_addr));
if ((sockFd = socket(AF_INET, SOCK_DGRAM, 0)) != -1)
{
/// Set IP address using SIOCSIFADDR ioctl flag.
if (ioctl(sockFd, SIOCSIFADDR, &ifr) != -1)
{
/// Set Interface Up
/// Get ifreq.flags
ioctl(sockFd, SIOCGIFFLAGS, &ifr);
ifr.ifr_flags |= (IFF_UP| IFF_RUNNING);
if(ioctl(sockFd, SIOCSIFFLAGS, &ifr) == -1)
{
perror("Interface link status change failed");
retStatus = false;
}
}
else
{
perror("setIpv4Address Setting IPV4 address Error :");
retStatus = false;
}
}
else
{
perror("Socket creation failed ");
retStatus = false;
}
close (sockFd);
}
return retStatus;
}
_______________________________________________
General
http://community.qnx.com/sf/go/post119316
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119317
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119318
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119319
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119320
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119321
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119322
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119323
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119324
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.comParthiban Chinnathambi(deleted)2018-12-05T08:20:10Zpost119326: FILE EXISTS error on setting IPV4 address using ioctlParthiban Chinnathambi(deleted)http://community.qnx.com/sf/go/post1193262018-12-05T08:20:10Z2018-12-05T08:20:10ZHi,
I am getting a File exists error on using the SIOCSIFADDR ioctl command to set IP address ,but the IP address is changed to the requested value. Why the error occurs?
bool setIpv4Address(std::string interfaceName,std::string ipAddr)
{
struct sockaddr_in sin;
int sockFd;
std::string Ip;
struct ifreq ifr;
bool retStatus;
memset(&ifr, 0x00, sizeof(ifr));
memset(&sin, 0x00, sizeof(sin));
retStatus = true;
sin.sin_family = AF_INET;
sin.sin_len = sizeof(sin);
/// check valid ip
if (inet_aton(&ipAddr[0], &sin.sin_addr) == 0)
{
retStatus = false;
}
else
{
/// Create socket for INET and update the address information.
memset(&ifr, 0x00, sizeof(ifr));
strcpy(ifr.ifr_name, &interfaceName[0]);
memcpy(&ifr.ifr_addr, &sin, sizeof(ifr.ifr_addr));
if ((sockFd = socket(AF_INET, SOCK_DGRAM, 0)) != -1)
{
/// Set IP address using SIOCSIFADDR ioctl flag.
if (ioctl(sockFd, SIOCSIFADDR, &ifr) != -1)
{
/// Set Interface Up
/// Get ifreq.flags
ioctl(sockFd, SIOCGIFFLAGS, &ifr);
ifr.ifr_flags |= (IFF_UP| IFF_RUNNING);
if(ioctl(sockFd, SIOCSIFFLAGS, &ifr) == -1)
{
perror("Interface link status change failed");
retStatus = false;
}
}
else
{
perror("setIpv4Address Setting IPV4 address Error :");
retStatus = false;
}
}
else
{
perror("Socket creation failed ");
retStatus = false;
}
close (sockFd);
}
return retStatus;
}
_______________________________________________
General
http://community.qnx.com/sf/go/post119316
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119317
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119318
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119319
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119320
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119321
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119322
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119323
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119324
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119325
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.comParthiban Chinnathambi(deleted)2018-12-05T08:20:10Zpost119324: FILE EXISTS error on setting IPV4 address using ioctlParthiban Chinnathambi(deleted)http://community.qnx.com/sf/go/post1193242018-12-05T08:20:09Z2018-12-05T08:20:09ZHi,
I am getting a File exists error on using the SIOCSIFADDR ioctl command to set IP address ,but the IP address is changed to the requested value. Why the error occurs?
bool setIpv4Address(std::string interfaceName,std::string ipAddr)
{
struct sockaddr_in sin;
int sockFd;
std::string Ip;
struct ifreq ifr;
bool retStatus;
memset(&ifr, 0x00, sizeof(ifr));
memset(&sin, 0x00, sizeof(sin));
retStatus = true;
sin.sin_family = AF_INET;
sin.sin_len = sizeof(sin);
/// check valid ip
if (inet_aton(&ipAddr[0], &sin.sin_addr) == 0)
{
retStatus = false;
}
else
{
/// Create socket for INET and update the address information.
memset(&ifr, 0x00, sizeof(ifr));
strcpy(ifr.ifr_name, &interfaceName[0]);
memcpy(&ifr.ifr_addr, &sin, sizeof(ifr.ifr_addr));
if ((sockFd = socket(AF_INET, SOCK_DGRAM, 0)) != -1)
{
/// Set IP address using SIOCSIFADDR ioctl flag.
if (ioctl(sockFd, SIOCSIFADDR, &ifr) != -1)
{
/// Set Interface Up
/// Get ifreq.flags
ioctl(sockFd, SIOCGIFFLAGS, &ifr);
ifr.ifr_flags |= (IFF_UP| IFF_RUNNING);
if(ioctl(sockFd, SIOCSIFFLAGS, &ifr) == -1)
{
perror("Interface link status change failed");
retStatus = false;
}
}
else
{
perror("setIpv4Address Setting IPV4 address Error :");
retStatus = false;
}
}
else
{
perror("Socket creation failed ");
retStatus = false;
}
close (sockFd);
}
return retStatus;
}
_______________________________________________
General
http://community.qnx.com/sf/go/post119316
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119317
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119318
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119319
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119320
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119321
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119322
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119323
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.comParthiban Chinnathambi(deleted)2018-12-05T08:20:09Zpost119323: FILE EXISTS error on setting IPV4 address using ioctlParthiban Chinnathambi(deleted)http://community.qnx.com/sf/go/post1193232018-12-05T08:20:08Z2018-12-05T08:20:08ZHi,
I am getting a File exists error on using the SIOCSIFADDR ioctl command to set IP address ,but the IP address is changed to the requested value. Why the error occurs?
bool setIpv4Address(std::string interfaceName,std::string ipAddr)
{
struct sockaddr_in sin;
int sockFd;
std::string Ip;
struct ifreq ifr;
bool retStatus;
memset(&ifr, 0x00, sizeof(ifr));
memset(&sin, 0x00, sizeof(sin));
retStatus = true;
sin.sin_family = AF_INET;
sin.sin_len = sizeof(sin);
/// check valid ip
if (inet_aton(&ipAddr[0], &sin.sin_addr) == 0)
{
retStatus = false;
}
else
{
/// Create socket for INET and update the address information.
memset(&ifr, 0x00, sizeof(ifr));
strcpy(ifr.ifr_name, &interfaceName[0]);
memcpy(&ifr.ifr_addr, &sin, sizeof(ifr.ifr_addr));
if ((sockFd = socket(AF_INET, SOCK_DGRAM, 0)) != -1)
{
/// Set IP address using SIOCSIFADDR ioctl flag.
if (ioctl(sockFd, SIOCSIFADDR, &ifr) != -1)
{
/// Set Interface Up
/// Get ifreq.flags
ioctl(sockFd, SIOCGIFFLAGS, &ifr);
ifr.ifr_flags |= (IFF_UP| IFF_RUNNING);
if(ioctl(sockFd, SIOCSIFFLAGS, &ifr) == -1)
{
perror("Interface link status change failed");
retStatus = false;
}
}
else
{
perror("setIpv4Address Setting IPV4 address Error :");
retStatus = false;
}
}
else
{
perror("Socket creation failed ");
retStatus = false;
}
close (sockFd);
}
return retStatus;
}
_______________________________________________
General
http://community.qnx.com/sf/go/post119316
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119317
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119318
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119319
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119320
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119321
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119322
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.comParthiban Chinnathambi(deleted)2018-12-05T08:20:08Zpost119322: FILE EXISTS error on setting IPV4 address using ioctlParthiban Chinnathambi(deleted)http://community.qnx.com/sf/go/post1193222018-12-05T08:20:07Z2018-12-05T08:20:07ZHi,
I am getting a File exists error on using the SIOCSIFADDR ioctl command to set IP address ,but the IP address is changed to the requested value. Why the error occurs?
bool setIpv4Address(std::string interfaceName,std::string ipAddr)
{
struct sockaddr_in sin;
int sockFd;
std::string Ip;
struct ifreq ifr;
bool retStatus;
memset(&ifr, 0x00, sizeof(ifr));
memset(&sin, 0x00, sizeof(sin));
retStatus = true;
sin.sin_family = AF_INET;
sin.sin_len = sizeof(sin);
/// check valid ip
if (inet_aton(&ipAddr[0], &sin.sin_addr) == 0)
{
retStatus = false;
}
else
{
/// Create socket for INET and update the address information.
memset(&ifr, 0x00, sizeof(ifr));
strcpy(ifr.ifr_name, &interfaceName[0]);
memcpy(&ifr.ifr_addr, &sin, sizeof(ifr.ifr_addr));
if ((sockFd = socket(AF_INET, SOCK_DGRAM, 0)) != -1)
{
/// Set IP address using SIOCSIFADDR ioctl flag.
if (ioctl(sockFd, SIOCSIFADDR, &ifr) != -1)
{
/// Set Interface Up
/// Get ifreq.flags
ioctl(sockFd, SIOCGIFFLAGS, &ifr);
ifr.ifr_flags |= (IFF_UP| IFF_RUNNING);
if(ioctl(sockFd, SIOCSIFFLAGS, &ifr) == -1)
{
perror("Interface link status change failed");
retStatus = false;
}
}
else
{
perror("setIpv4Address Setting IPV4 address Error :");
retStatus = false;
}
}
else
{
perror("Socket creation failed ");
retStatus = false;
}
close (sockFd);
}
return retStatus;
}
_______________________________________________
General
http://community.qnx.com/sf/go/post119316
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119317
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119318
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119319
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119320
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119321
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.comParthiban Chinnathambi(deleted)2018-12-05T08:20:07Zpost119321: FILE EXISTS error on setting IPV4 address using ioctlParthiban Chinnathambi(deleted)http://community.qnx.com/sf/go/post1193212018-12-05T08:20:06Z2018-12-05T08:20:06ZHi,
I am getting a File exists error on using the SIOCSIFADDR ioctl command to set IP address ,but the IP address is changed to the requested value. Why the error occurs?
bool setIpv4Address(std::string interfaceName,std::string ipAddr)
{
struct sockaddr_in sin;
int sockFd;
std::string Ip;
struct ifreq ifr;
bool retStatus;
memset(&ifr, 0x00, sizeof(ifr));
memset(&sin, 0x00, sizeof(sin));
retStatus = true;
sin.sin_family = AF_INET;
sin.sin_len = sizeof(sin);
/// check valid ip
if (inet_aton(&ipAddr[0], &sin.sin_addr) == 0)
{
retStatus = false;
}
else
{
/// Create socket for INET and update the address information.
memset(&ifr, 0x00, sizeof(ifr));
strcpy(ifr.ifr_name, &interfaceName[0]);
memcpy(&ifr.ifr_addr, &sin, sizeof(ifr.ifr_addr));
if ((sockFd = socket(AF_INET, SOCK_DGRAM, 0)) != -1)
{
/// Set IP address using SIOCSIFADDR ioctl flag.
if (ioctl(sockFd, SIOCSIFADDR, &ifr) != -1)
{
/// Set Interface Up
/// Get ifreq.flags
ioctl(sockFd, SIOCGIFFLAGS, &ifr);
ifr.ifr_flags |= (IFF_UP| IFF_RUNNING);
if(ioctl(sockFd, SIOCSIFFLAGS, &ifr) == -1)
{
perror("Interface link status change failed");
retStatus = false;
}
}
else
{
perror("setIpv4Address Setting IPV4 address Error :");
retStatus = false;
}
}
else
{
perror("Socket creation failed ");
retStatus = false;
}
close (sockFd);
}
return retStatus;
}
_______________________________________________
General
http://community.qnx.com/sf/go/post119316
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119317
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119318
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119319
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119320
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.comParthiban Chinnathambi(deleted)2018-12-05T08:20:06Zpost119320: FILE EXISTS error on setting IPV4 address using ioctlParthiban Chinnathambi(deleted)http://community.qnx.com/sf/go/post1193202018-12-05T08:20:05Z2018-12-05T08:20:05ZHi,
I am getting a File exists error on using the SIOCSIFADDR ioctl command to set IP address ,but the IP address is changed to the requested value. Why the error occurs?
bool setIpv4Address(std::string interfaceName,std::string ipAddr)
{
struct sockaddr_in sin;
int sockFd;
std::string Ip;
struct ifreq ifr;
bool retStatus;
memset(&ifr, 0x00, sizeof(ifr));
memset(&sin, 0x00, sizeof(sin));
retStatus = true;
sin.sin_family = AF_INET;
sin.sin_len = sizeof(sin);
/// check valid ip
if (inet_aton(&ipAddr[0], &sin.sin_addr) == 0)
{
retStatus = false;
}
else
{
/// Create socket for INET and update the address information.
memset(&ifr, 0x00, sizeof(ifr));
strcpy(ifr.ifr_name, &interfaceName[0]);
memcpy(&ifr.ifr_addr, &sin, sizeof(ifr.ifr_addr));
if ((sockFd = socket(AF_INET, SOCK_DGRAM, 0)) != -1)
{
/// Set IP address using SIOCSIFADDR ioctl flag.
if (ioctl(sockFd, SIOCSIFADDR, &ifr) != -1)
{
/// Set Interface Up
/// Get ifreq.flags
ioctl(sockFd, SIOCGIFFLAGS, &ifr);
ifr.ifr_flags |= (IFF_UP| IFF_RUNNING);
if(ioctl(sockFd, SIOCSIFFLAGS, &ifr) == -1)
{
perror("Interface link status change failed");
retStatus = false;
}
}
else
{
perror("setIpv4Address Setting IPV4 address Error :");
retStatus = false;
}
}
else
{
perror("Socket creation failed ");
retStatus = false;
}
close (sockFd);
}
return retStatus;
}
_______________________________________________
General
http://community.qnx.com/sf/go/post119316
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119317
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119318
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119319
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.comParthiban Chinnathambi(deleted)2018-12-05T08:20:05Zpost119319: FILE EXISTS error on setting IPV4 address using ioctlParthiban Chinnathambi(deleted)http://community.qnx.com/sf/go/post1193192018-12-05T08:20:04Z2018-12-05T08:20:04ZHi,
I am getting a File exists error on using the SIOCSIFADDR ioctl command to set IP address ,but the IP address is changed to the requested value. Why the error occurs?
bool setIpv4Address(std::string interfaceName,std::string ipAddr)
{
struct sockaddr_in sin;
int sockFd;
std::string Ip;
struct ifreq ifr;
bool retStatus;
memset(&ifr, 0x00, sizeof(ifr));
memset(&sin, 0x00, sizeof(sin));
retStatus = true;
sin.sin_family = AF_INET;
sin.sin_len = sizeof(sin);
/// check valid ip
if (inet_aton(&ipAddr[0], &sin.sin_addr) == 0)
{
retStatus = false;
}
else
{
/// Create socket for INET and update the address information.
memset(&ifr, 0x00, sizeof(ifr));
strcpy(ifr.ifr_name, &interfaceName[0]);
memcpy(&ifr.ifr_addr, &sin, sizeof(ifr.ifr_addr));
if ((sockFd = socket(AF_INET, SOCK_DGRAM, 0)) != -1)
{
/// Set IP address using SIOCSIFADDR ioctl flag.
if (ioctl(sockFd, SIOCSIFADDR, &ifr) != -1)
{
/// Set Interface Up
/// Get ifreq.flags
ioctl(sockFd, SIOCGIFFLAGS, &ifr);
ifr.ifr_flags |= (IFF_UP| IFF_RUNNING);
if(ioctl(sockFd, SIOCSIFFLAGS, &ifr) == -1)
{
perror("Interface link status change failed");
retStatus = false;
}
}
else
{
perror("setIpv4Address Setting IPV4 address Error :");
retStatus = false;
}
}
else
{
perror("Socket creation failed ");
retStatus = false;
}
close (sockFd);
}
return retStatus;
}
_______________________________________________
General
http://community.qnx.com/sf/go/post119316
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119317
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119318
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.comParthiban Chinnathambi(deleted)2018-12-05T08:20:04Zpost119318: FILE EXISTS error on setting IPV4 address using ioctlParthiban Chinnathambi(deleted)http://community.qnx.com/sf/go/post1193182018-12-05T08:20:04Z2018-12-05T08:20:04ZHi,
I am getting a File exists error on using the SIOCSIFADDR ioctl command to set IP address ,but the IP address is changed to the requested value. Why the error occurs?
bool setIpv4Address(std::string interfaceName,std::string ipAddr)
{
struct sockaddr_in sin;
int sockFd;
std::string Ip;
struct ifreq ifr;
bool retStatus;
memset(&ifr, 0x00, sizeof(ifr));
memset(&sin, 0x00, sizeof(sin));
retStatus = true;
sin.sin_family = AF_INET;
sin.sin_len = sizeof(sin);
/// check valid ip
if (inet_aton(&ipAddr[0], &sin.sin_addr) == 0)
{
retStatus = false;
}
else
{
/// Create socket for INET and update the address information.
memset(&ifr, 0x00, sizeof(ifr));
strcpy(ifr.ifr_name, &interfaceName[0]);
memcpy(&ifr.ifr_addr, &sin, sizeof(ifr.ifr_addr));
if ((sockFd = socket(AF_INET, SOCK_DGRAM, 0)) != -1)
{
/// Set IP address using SIOCSIFADDR ioctl flag.
if (ioctl(sockFd, SIOCSIFADDR, &ifr) != -1)
{
/// Set Interface Up
/// Get ifreq.flags
ioctl(sockFd, SIOCGIFFLAGS, &ifr);
ifr.ifr_flags |= (IFF_UP| IFF_RUNNING);
if(ioctl(sockFd, SIOCSIFFLAGS, &ifr) == -1)
{
perror("Interface link status change failed");
retStatus = false;
}
}
else
{
perror("setIpv4Address Setting IPV4 address Error :");
retStatus = false;
}
}
else
{
perror("Socket creation failed ");
retStatus = false;
}
close (sockFd);
}
return retStatus;
}
_______________________________________________
General
http://community.qnx.com/sf/go/post119316
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post119317
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.comParthiban Chinnathambi(deleted)2018-12-05T08:20:04Zpost119317: FILE EXISTS error on setting IPV4 address using ioctlParthiban Chinnathambi(deleted)http://community.qnx.com/sf/go/post1193172018-12-05T08:20:03Z2018-12-05T08:20:03ZHi,
I am getting a File exists error on using the SIOCSIFADDR ioctl command to set IP address ,but the IP address is changed to the requested value. Why the error occurs?
bool setIpv4Address(std::string interfaceName,std::string ipAddr)
{
struct sockaddr_in sin;
int sockFd;
std::string Ip;
struct ifreq ifr;
bool retStatus;
memset(&ifr, 0x00, sizeof(ifr));
memset(&sin, 0x00, sizeof(sin));
retStatus = true;
sin.sin_family = AF_INET;
sin.sin_len = sizeof(sin);
/// check valid ip
if (inet_aton(&ipAddr[0], &sin.sin_addr) == 0)
{
retStatus = false;
}
else
{
/// Create socket for INET and update the address information.
memset(&ifr, 0x00, sizeof(ifr));
strcpy(ifr.ifr_name, &interfaceName[0]);
memcpy(&ifr.ifr_addr, &sin, sizeof(ifr.ifr_addr));
if ((sockFd = socket(AF_INET, SOCK_DGRAM, 0)) != -1)
{
/// Set IP address using SIOCSIFADDR ioctl flag.
if (ioctl(sockFd, SIOCSIFADDR, &ifr) != -1)
{
/// Set Interface Up
/// Get ifreq.flags
ioctl(sockFd, SIOCGIFFLAGS, &ifr);
ifr.ifr_flags |= (IFF_UP| IFF_RUNNING);
if(ioctl(sockFd, SIOCSIFFLAGS, &ifr) == -1)
{
perror("Interface link status change failed");
retStatus = false;
}
}
else
{
perror("setIpv4Address Setting IPV4 address Error :");
retStatus = false;
}
}
else
{
perror("Socket creation failed ");
retStatus = false;
}
close (sockFd);
}
return retStatus;
}
_______________________________________________
General
http://community.qnx.com/sf/go/post119316
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.comParthiban Chinnathambi(deleted)2018-12-05T08:20:03Zpost119316: FILE EXISTS error on setting IPV4 address using ioctlParthiban Chinnathambi(deleted)http://community.qnx.com/sf/go/post1193162018-12-05T08:20:01Z2018-12-05T08:20:01ZHi,
I am getting a File exists error on using the SIOCSIFADDR ioctl command to set IP address ,but the IP address is changed to the requested value. Why the error occurs?
bool setIpv4Address(std::string interfaceName,std::string ipAddr)
{
struct sockaddr_in sin;
int sockFd;
std::string Ip;
struct ifreq ifr;
bool retStatus;
memset(&ifr, 0x00, sizeof(ifr));
memset(&sin, 0x00, sizeof(sin));
retStatus = true;
sin.sin_family = AF_INET;
sin.sin_len = sizeof(sin);
/// check valid ip
if (inet_aton(&ipAddr[0], &sin.sin_addr) == 0)
{
retStatus = false;
}
else
{
/// Create socket for INET and update the address information.
memset(&ifr, 0x00, sizeof(ifr));
strcpy(ifr.ifr_name, &interfaceName[0]);
memcpy(&ifr.ifr_addr, &sin, sizeof(ifr.ifr_addr));
if ((sockFd = socket(AF_INET, SOCK_DGRAM, 0)) != -1)
{
/// Set IP address using SIOCSIFADDR ioctl flag.
if (ioctl(sockFd, SIOCSIFADDR, &ifr) != -1)
{
/// Set Interface Up
/// Get ifreq.flags
ioctl(sockFd, SIOCGIFFLAGS, &ifr);
ifr.ifr_flags |= (IFF_UP| IFF_RUNNING);
if(ioctl(sockFd, SIOCSIFFLAGS, &ifr) == -1)
{
perror("Interface link status change failed");
retStatus = false;
}
}
else
{
perror("setIpv4Address Setting IPV4 address Error :");
retStatus = false;
}
}
else
{
perror("Socket creation failed ");
retStatus = false;
}
close (sockFd);
}
return retStatus;
}Parthiban Chinnathambi(deleted)2018-12-05T08:20:01Zpost119280: Re: io-pkt avb library APINick Reillyhttp://community.qnx.com/sf/go/post1192802018-11-08T15:10:58Z2018-11-08T15:10:58Zlsm-avb.so implements a very limited subset of the full AVB stack, and there are 3rd parties offering other AVB stacks on QNX. At this point lsm-avb.so is deprecated and so will be removed in future versions. I would advise you to investigate these other AVB stacks for any future projects.
QNX does support an 802.1AS implementation in "ptpd-avb". While initial versions of ptpd-avb required lsm-avb.so, ptpd-avb has now been decoupled from lsm-avb.so and supports 802.1AS without any need for lsm-avb.so.
N.B. For true 802.1AS support you will require both hardware that supports the PTP timestamping and a driver implementing this timestamping for ptpd-avb to function properly. In the absence of these, ptpd-avb will function in a very limited "software" mode, running off the main system timer with the limited precision of the system tick (1ms by default). With a true hardware PTP clock and timestamping network driver, far better precision is available better than 1us - typically a few hundred ns, may be better depending on actual hardware.
You are also free to use any 3rd party 802.1AS implementation that comes with a 3rd party AVB stack.
For further information I would advise you to contact your official QNX support contact directly. AVB is a very demanding set of protocols and while we have customers shipping successful deployments of AVB, if you are new to QNX it can be challenging.Nick Reilly2018-11-08T15:10:58Zpost119279: Re: io-pkt avb library APIbhavya ramu(deleted)http://community.qnx.com/sf/go/post1192792018-11-08T13:49:42Z2018-11-08T13:49:42ZDoes lsm_avb.so has implementation of gPTP IEEE 802.1AS?
I am new to qnx OS. We have a requirement to support ethernet AVB on QNX platform.
Currently we have gPTP module for linux platform, which uses packet concept for communicating directly to layer 2 but this mechanism is not available in QNX OS.
Please let me know if there is any reference manual available for understanding usage of lsm_avb.so. Thanks.bhavya ramu(deleted)2018-11-08T13:49:42Zpost119272: Re: How to retrieve PHY status, counter up/down to debug network issueHugh Brownhttp://community.qnx.com/sf/go/post1192722018-10-30T18:25:04Z2018-10-30T18:25:04ZNo, it isn't possible.
On 2018-10-30, 2:08 PM, "Chris Liang" <community-noreply@qnx.com> wrote:
unfortunately, I don't have the driver source code. Is possible retrieve the those register status from devctls call?
Thanks
_______________________________________________
General
http://community.qnx.com/sf/go/post119271
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.comHugh Brown2018-10-30T18:25:04Zpost119271: Re: How to retrieve PHY status, counter up/down to debug network issueChris Liang(deleted)http://community.qnx.com/sf/go/post1192712018-10-30T18:23:40Z2018-10-30T18:23:40Zunfortunately, I don't have the driver source code. Is possible retrieve the those register status from devctls call?
ThanksChris Liang(deleted)2018-10-30T18:23:40Zpost119270: Re: How to retrieve PHY status, counter up/down to debug network issueHugh Brownhttp://community.qnx.com/sf/go/post1192702018-10-30T17:59:27Z2018-10-30T17:59:27ZIt should be in the driver source code.
On 2018-10-30, 1:42 PM, "Chris Liang" <community-noreply@qnx.com> wrote:
what source code is this mdi_callback?
_______________________________________________
General
http://community.qnx.com/sf/go/post119269
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.comHugh Brown2018-10-30T17:59:27Zpost119269: Re: How to retrieve PHY status, counter up/down to debug network issueChris Liang(deleted)http://community.qnx.com/sf/go/post1192692018-10-30T17:57:59Z2018-10-30T17:57:59Zwhat source code is this mdi_callback?Chris Liang(deleted)2018-10-30T17:57:59Zpost119268: Re: How to retrieve PHY status, counter up/down to debug network issueHugh Brownhttp://community.qnx.com/sf/go/post1192682018-10-30T17:49:54Z2018-10-30T17:49:54ZTake a look at the mdi_callback routine, which gets called for PHY up/down events. This routine is most probably poking some registers.
On 2018-10-30, 1:32 PM, "Chris Liang" <community-noreply@qnx.com> wrote:
Thank you very much.
I saw the link is still up during the fault state(suddenly no ping, no udp/tcp). Once I unplug ethernet cable and plug back in. everything works fine.
Any idea what could cause it or what should I look for?
Thanks
_______________________________________________
General
http://community.qnx.com/sf/go/post119267
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.comHugh Brown2018-10-30T17:49:54Zpost119267: Re: How to retrieve PHY status, counter up/down to debug network issueChris Liang(deleted)http://community.qnx.com/sf/go/post1192672018-10-30T17:47:15Z2018-10-30T17:47:15ZThank you very much.
I saw the link is still up during the fault state(suddenly no ping, no udp/tcp). Once I unplug ethernet cable and plug back in. everything works fine.
Any idea what could cause it or what should I look for?
ThanksChris Liang(deleted)2018-10-30T17:47:15Zpost119266: Re: How to retrieve PHY status, counter up/down to debug network issueHugh Brownhttp://community.qnx.com/sf/go/post1192662018-10-30T17:34:50Z2018-10-30T17:34:50ZI have attached the source code for nicinfo to this email.
Hugh.
On 2018-10-30, 12:56 PM, "Chris Liang" <community-noreply@qnx.com> wrote:
Hi Hugh,
Thanks for replying.
driver is ppc405-ep440c which is special made for us by qnx.
if I do
# nicinfo -vr en0
it gives
en0:
PPC4xx on-chip EMAC Ethernet Controller
Physical Node ID ........................... 0002B3 8AF300
Current Physical Node ID ................... 001747 20027E
Current Operation Rate ..................... 100.00 Mb/s full-duplex
Active Interface Type ...................... MII
Active PHY address ....................... 0
Maximum Transmittable data Unit ............ 1514
Maximum Receivable data Unit ............... 0
Hardware Interrupt ......................... 0xb
Promiscuous Mode ........................... Off
Multicast Support .......................... Enabled
Packets Transmitted OK ..................... 417532444
Bytes Transmitted OK ....................... 602801382921
Memory Allocation Failures on Transmit ..... 0
Packets Received OK ........................ 313016415
Bytes Received OK .......................... 131288086572
Broadcast Packets Received OK .............. 0
Multicast Packets Received OK .............. 0
Memory Allocation Failures on Receive ...... 0
Single Collisions on Transmit .............. 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
Oversized Packets received ................. 0
Short packets .............................. 0
Squelch Test errors ........................ 0
as you see, there is no showing link up/down info.
BTW, is there any API or system call i can use to retrieve those information in my program?
Thank you again.
_______________________________________________
General
http://community.qnx.com/sf/go/post119264
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.comHugh Brown2018-10-30T17:34:50Zpost119265: Re: How to retrieve PHY status, counter up/down to debug network issueHugh Brownhttp://community.qnx.com/sf/go/post1192652018-10-30T17:19:12Z2018-10-30T17:19:12ZHi Chris,
The nicinfo output shows that the link is up (100.00 Mb/s full-duplex). If the link was down, the nicinfo output should show 0 Mb/s. You can prove this by unplugging the link and then running nicinfo again.
As far as getting this information in your program, you would have to send the driver certain devctls, so I will have to see if there is some documentation on this.
Hugh.
On 2018-10-30, 12:56 PM, "Chris Liang" <community-noreply@qnx.com> wrote:
Hi Hugh,
Thanks for replying.
driver is ppc405-ep440c which is special made for us by qnx.
if I do
# nicinfo -vr en0
it gives
en0:
PPC4xx on-chip EMAC Ethernet Controller
Physical Node ID ........................... 0002B3 8AF300
Current Physical Node ID ................... 001747 20027E
Current Operation Rate ..................... 100.00 Mb/s full-duplex
Active Interface Type ...................... MII
Active PHY address ....................... 0
Maximum Transmittable data Unit ............ 1514
Maximum Receivable data Unit ............... 0
Hardware Interrupt ......................... 0xb
Promiscuous Mode ........................... Off
Multicast Support .......................... Enabled
Packets Transmitted OK ..................... 417532444
Bytes Transmitted OK ....................... 602801382921
Memory Allocation Failures on Transmit ..... 0
Packets Received OK ........................ 313016415
Bytes Received OK .......................... 131288086572
Broadcast Packets Received OK .............. 0
Multicast Packets Received OK .............. 0
Memory Allocation Failures on Receive ...... 0
Single Collisions on Transmit .............. 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
Oversized Packets received ................. 0
Short packets .............................. 0
Squelch Test errors ........................ 0
as you see, there is no showing link up/down info.
BTW, is there any API or system call i can use to retrieve those information in my program?
Thank you again.
_______________________________________________
General
http://community.qnx.com/sf/go/post119264
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.comHugh Brown2018-10-30T17:19:12Zpost119264: Re: How to retrieve PHY status, counter up/down to debug network issueChris Liang(deleted)http://community.qnx.com/sf/go/post1192642018-10-30T17:11:40Z2018-10-30T17:11:40ZHi Hugh,
Thanks for replying.
driver is ppc405-ep440c which is special made for us by qnx.
if I do
# nicinfo -vr en0
it gives
en0:
PPC4xx on-chip EMAC Ethernet Controller
Physical Node ID ........................... 0002B3 8AF300
Current Physical Node ID ................... 001747 20027E
Current Operation Rate ..................... 100.00 Mb/s full-duplex
Active Interface Type ...................... MII
Active PHY address ....................... 0
Maximum Transmittable data Unit ............ 1514
Maximum Receivable data Unit ............... 0
Hardware Interrupt ......................... 0xb
Promiscuous Mode ........................... Off
Multicast Support .......................... Enabled
Packets Transmitted OK ..................... 417532444
Bytes Transmitted OK ....................... 602801382921
Memory Allocation Failures on Transmit ..... 0
Packets Received OK ........................ 313016415
Bytes Received OK .......................... 131288086572
Broadcast Packets Received OK .............. 0
Multicast Packets Received OK .............. 0
Memory Allocation Failures on Receive ...... 0
Single Collisions on Transmit .............. 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
Oversized Packets received ................. 0
Short packets .............................. 0
Squelch Test errors ........................ 0
as you see, there is no showing link up/down info.
BTW, is there any API or system call i can use to retrieve those information in my program?
Thank you again.Chris Liang(deleted)2018-10-30T17:11:40Zpost119263: Re: How to retrieve PHY status, counter up/down to debug network issueHugh Brownhttp://community.qnx.com/sf/go/post1192632018-10-30T16:59:28Z2018-10-30T16:59:28ZIf you run "nicinfo" it should tell you whether the link is up or down. It will also show you the send and receive packet counters. Which driver is this?
On 2018-10-30, 12:34 PM, "Chris Liang" <community-noreply@qnx.com> wrote:
Hi all,
Currently, I have an issue of network controller eth0 that suddenly becomes non-responsive, cannot ping, no UDP/TCP. It disappears from network.
Our product is running on QNX(6.4). At the power up, after proper configuring stage, our product is sending UDP broadcasting packages to the network. Everything is fine. I saw UDP/TCP on the
wireshark trace and I can ping the system within the network. Suddenly, it disappears from network. I cannot
ping it, no more UDP/TCP showing on the wireshark. Instead remote machines sends ARP to the network. It can be fixed just be pull out the Ethernet cable and plug back in. I don't know what is causing it. it seems the network driver goes to some weird state.
I would like to debug deeper on the network stack. How should I get the PHY status, counter up/down, etc?
Hope I can get some help from this site.
Thanks in advance..
_______________________________________________
General
http://community.qnx.com/sf/go/post119262
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.comHugh Brown2018-10-30T16:59:28Zpost119262: How to retrieve PHY status, counter up/down to debug network issueChris Liang(deleted)http://community.qnx.com/sf/go/post1192622018-10-30T16:49:31Z2018-10-30T16:49:31ZHi all,
Currently, I have an issue of network controller eth0 that suddenly becomes non-responsive, cannot ping, no UDP/TCP. It disappears from network.
Our product is running on QNX(6.4). At the power up, after proper configuring stage, our product is sending UDP broadcasting packages to the network. Everything is fine. I saw UDP/TCP on the
wireshark trace and I can ping the system within the network. Suddenly, it disappears from network. I cannot
ping it, no more UDP/TCP showing on the wireshark. Instead remote machines sends ARP to the network. It can be fixed just be pull out the Ethernet cable and plug back in. I don't know what is causing it. it seems the network driver goes to some weird state.
I would like to debug deeper on the network stack. How should I get the PHY status, counter up/down, etc?
Hope I can get some help from this site.
Thanks in advance..Chris Liang(deleted)2018-10-30T16:49:31Zpost119177: RE: Error in the final launch sequenseJohn Kearneyhttp://community.qnx.com/sf/go/post1191772018-10-01T11:14:17Z2018-10-01T11:14:17ZThis means that you have built a so(shared object) and are trying to directly execute to.
Either you should build it as an executable, or run the program that uses the shared object to debug it.
________________________________________
From: Juan Martinez [community-noreply@qnx.com]
Sent: Monday, October 01, 2018 13:11
To: general-networking
Subject: Error in the final launch sequense
I cannot debug any file.
I just have this error message
Somebody please help me
_______________________________________________
General
http://community.qnx.com/sf/go/post119176
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.comJohn Kearney2018-10-01T11:14:17Zpost119176: Error in the final launch sequenseJuan Martinez(deleted)http://community.qnx.com/sf/go/post1191762018-10-01T11:11:04Z2018-10-01T11:11:04ZI cannot debug any file.
I just have this error message
Somebody please help meJuan Martinez(deleted)2018-10-01T11:11:04Zpost119169: How to disable neighbour solicitation message in QNX?jashitha kp(deleted)http://community.qnx.com/sf/go/post1191692018-10-01T08:41:54Z2018-10-01T08:41:54ZHello,
Is there any way to disable the neighbour solicitation message sending out from a device
I currently want to disable sending the neighbour solicitation messages from the device, I do see the other device(target device) ipv6 and mac getting added in ndp table. Even then the device is sending the solicitation messages to the other device.
According to my understanding if the targeted device MAC and IPV6 address is getting added in the ndp entry the source device should not send the solicitation message either. Is that correct. Please correct me if I am wrong.
Please suggest if there is any option to disable the neighbour solicitation message in QNX.
Thanks in advance
Regards,
Jashithajashitha kp(deleted)2018-10-01T08:41:54Zpost119048: Choosing cellular modemSahil Shah(deleted)http://community.qnx.com/sf/go/post1190482018-08-13T22:23:52Z2018-08-13T22:23:52ZHi,
We need to choose a cellular module that is compatible with QNX. We are using QNX SDP 7 and our target platform is ARM7. Are there any vendors for which QNX already provides the driver.
Thanks,
SahilSahil Shah(deleted)2018-08-13T22:23:52Zpost119034: Re: How to disable neighbor discoveryNick Reillyhttp://community.qnx.com/sf/go/post1190342018-08-02T14:16:49Z2018-08-02T14:16:49Z# ifconfig vt0
vt0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
capabilities rx=1f<IP4CSUM,TCP4CSUM,UDP4CSUM,TCP6CSUM,UDP6CSUM>
capabilities tx=7e<TCP4CSUM,UDP4CSUM,TCP6CSUM,UDP6CSUM,TSO4,TSO6>
enabled rx=1f<IP4CSUM,TCP4CSUM,UDP4CSUM,TCP6CSUM,UDP6CSUM>
enabled tx=0
address: 52:54:00:20:64:23
media: Ethernet autoselect
status: active
inet 192.168.122.102 netmask 0xffffff00 broadcast 192.168.122.255
inet6 fe80::5054:ff:fe20:6423%vt0 prefixlen 64 scopeid 0x11
inet6 2001::1 prefixlen 64
# ndp -na
Neighbor Linklayer Address Netif Expire S Flags
2001::1 52:54:00:20:64:23 vt0 permanent R
fe80::1%lo0 (incomplete) lo0 permanent R
fe80::5054:ff:fe20:6423%vt0 52:54:00:20:64:23 vt0 permanent R
# ndp -sn 2001::2 00:01:02:03:04:05
# ndp -na
Neighbor Linklayer Address Netif Expire S Flags
2001::1 52:54:00:20:64:23 vt0 permanent R
2001::2 00:01:02:03:04:05 vt0 permanent R
fe80::1%lo0 (incomplete) lo0 permanent R
fe80::5054:ff:fe20:6423%vt0 52:54:00:20:64:23 vt0 permanent R
# tcpdump -enlpi vt0 &
[1] 344075
# tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on vt0, link-type EN10MB (Ethernet), capture size 262144 bytes
ping6 -nc3 2001::2
PING6(56=40+8+8 bytes) 2001::1 --> 2001::2
09:59:10.090490 52:54:00:20:64:23 > 00:01:02:03:04:05, ethertype IPv6 (0x86dd), length 70: 2001::1 > 2001::2: ICMP6, echo request, seq 0, length 16
09:59:11.090614 52:54:00:20:64:23 > 00:01:02:03:04:05, ethertype IPv6 (0x86dd), length 70: 2001::1 > 2001::2: ICMP6, echo request, seq 1, length 16
09:59:12.091746 52:54:00:20:64:23 > 00:01:02:03:04:05, ethertype IPv6 (0x86dd), length 70: 2001::1 > 2001::2: ICMP6, echo request, seq 2, length 16
--- 2001::2 ping6 statistics ---
3 packets transmitted, 0 packets received, 100.0% packet loss
# fg
tcpdump -enlpi vt0
3 packets captured
3 packets received by filter
0 packets dropped by kernel
#Nick Reilly2018-08-02T14:16:49Zpost119033: Re: How to disable neighbor discoverysudheesh k t(deleted)http://community.qnx.com/sf/go/post1190332018-08-02T11:29:04Z2018-08-02T11:29:04ZThank you for your reply.
I am trying to use ndp -s hostname ether_addr
but it is giving error as below,
ndp -s someaddr%tap0 macaddr
ndp: someaddr%tap0: No address associated with hostname
V2X# ndp -s some addr mac addr
ndp: writing to routing socket: No such processsudheesh k t(deleted)2018-08-02T11:29:04Zpost119030: Re: How to disable neighbor discoveryNick Reillyhttp://community.qnx.com/sf/go/post1190302018-08-01T15:54:56Z2018-08-01T15:54:56ZUse "ndp -s ..." to set the ndp entry first.Nick Reilly2018-08-01T15:54:56Zpost119028: How to disable neighbor discoverysudheesh k t(deleted)http://community.qnx.com/sf/go/post1190282018-08-01T05:37:04Z2018-08-01T05:37:04ZI am using QNX Neutrino 6.6.0 on the Freescale i.mx6.I want to establish an ipv6 communication(ping6).As soon as i start ping6(ping6 -I tap0 destination address) command i see neighbor discovery happening,I want to skip neighbor discovery, since i have the layer2(mac)address of destination. Anyone please suggest an idea to disable neighbor discovery in qnx and send icmpv6 echo request using destination layer2(mac)address?sudheesh k t(deleted)2018-08-01T05:37:04Zpost118848: Re: ping6 utility takes long duration for unreachable destinationNick Reillyhttp://community.qnx.com/sf/go/post1188482018-05-25T15:23:09Z2018-05-25T15:23:09ZTry the "-n" option to stop it doing a name lookup with the resolver. If that speeds things up then take a look at what nameservers and domains you have setup for name resolution.Nick Reilly2018-05-25T15:23:09Zpost118845: ping6 utility takes long duration for unreachable destinationjashitha kp(deleted)http://community.qnx.com/sf/go/post1188452018-05-25T07:14:18Z2018-05-25T07:14:18ZHello there,
I am currently this QNX version "QNX localhost 6.6.0 2014/10/05-14:30:12EDT i.MX6S_V2X_Board armle". With the ping6 utility when I try to ping for unreachable destination it is taking long time as given below:
time ping6 -I tap0 -c 1 - 1 2001::4
PING6(56=40+8+8 bytes) 2001::1 --> 2001::4
--- 2001::4 ping6 statistics ---
1 packets transmitted, 0 packets received, 100.0% packet loss
12.08s real 0.01s user 0.01s system
Is there any fix for this? can you please help me..
Thanks in advance
Thanks and regards,
Jashithajashitha kp(deleted)2018-05-25T07:14:18Zpost118697: WATCH PACIFIC RIM UPRISING FULL MOVIE | FORUMgd boy(deleted)http://community.qnx.com/sf/go/post1186972018-03-22T23:41:40Z2018-03-22T23:41:40Zhttps://www.facebook.com/theterror11/
https://www.facebook.com/Live-Boxing-Joshua-vs-Parker-Live-Stream-351301205372849/
http://salvemoslashuacas.pe/huacas/recurso-39687
http://euroavocatura.ro/forum/viewtopic.php?pid=23561
http://members.jsta.org.jo/social/forum/topic/3258
http://www.epicfaction.com/forum/topic/2074
http://www.epicfaction.com/forum/topic/2075
http://members.jsta.org.jo/social/forum/topic/3259
http://salvemoslashuacas.pe/huacas/recurso-39693
http://euroavocatura.ro/forum/viewtopic.php?pid=23572
http://www.epicfaction.com/forum/topic/2076
http://members.jsta.org.jo/social/forum/topic/3260
http://euroavocatura.ro/forum/viewtopic.php?pid=23575
http://salvemoslashuacas.pe/huacas/recurso-39699
http://sumo-server.pl/forum/showthread.php?tid=12453
http://salvemoslashuacas.pe/huacas/recurso-39707
http://euroavocatura.ro/forum/viewtopic.php?pid=23583
http://members.jsta.org.jo/social/forum/topic/3262
http://www.epicfaction.com/forum/topic/2078
http://sumo-server.pl/forum/showthread.php?tid=12459
http://salvemoslashuacas.pe/huacas/recurso-39714
http://euroavocatura.ro/forum/viewtopic.php?pid=23592
http://members.jsta.org.jo/social/forum/topic/3263
http://www.epicfaction.com/forum/topic/2079gd boy(deleted)2018-03-22T23:41:40Zpost118638: RFC listAndrzej Polanskihttp://community.qnx.com/sf/go/post1186382018-03-01T14:11:24Z2018-03-01T14:11:24ZIs there list of RFC implemented (esp. in QNX 6.6.0)?
Best regards,
Andrzej PolanskiAndrzej Polanski2018-03-01T14:11:24Zpost118637: dchcek in qnx 6.5.0sp1Alex Lugovoy(deleted)http://community.qnx.com/sf/go/post1186372018-03-01T09:16:25Z2018-03-01T09:16:25ZIn in qnx 6.5.0sp1 dchcek not check a disk for bad blocks . How to solve this problem?Alex Lugovoy(deleted)2018-03-01T09:16:25Zpost118517: Secure logsGervot Olivier(deleted)http://community.qnx.com/sf/go/post1185172018-02-05T09:48:38Z2018-02-05T09:48:38ZHi
We need to log events in a safe application (SIL 2)
Events are formated as strings
The log API must be thread safe
We used "syslog" functions but its seems not safe enought
Is there safe log functions ?
Thanks
OlivierGervot Olivier(deleted)2018-02-05T09:48:38Zpost118492: Re: Iso imageNick Reillyhttp://community.qnx.com/sf/go/post1184922018-01-30T15:17:39Z2018-01-30T15:17:39ZSorry but that's a 7.0.0 package and not available in 6.5.0. You may need to come up with your own startup in 6.5.0.
Also note that QEMU works a lot better under Linux than under Windows if you do get a working ifs.Nick Reilly2018-01-30T15:17:39Zpost118489: Re: Iso imageGervot Olivier(deleted)http://community.qnx.com/sf/go/post1184892018-01-30T14:10:05Z2018-01-30T14:10:05ZThank for your answer
I tried this but i doesnt have startup-armv8_fm
i doesnt have "extras package in SDP7.0.0"
Where is this package ?
I m on a Windows host of QNX650
Thank
OlivierGervot Olivier(deleted)2018-01-30T14:10:05Zpost118486: Re: Iso imageNick Reillyhttp://community.qnx.com/sf/go/post1184862018-01-29T18:01:01Z2018-01-29T18:01:01ZThe .ifs file is good for QEMU, just pass it in as the kernel. Here's the qemu command I use to startup a qemu running QNX where arm.ifs is the .ifs file you have built.
qemu-system-arm -machine vexpress-a15 -cpu cortex-a15 -m 1G -kernel arm.ifs -nographic -serial mon:stdio
You will need to ensure that your build file builds the correct type of ifs:
[image=0x80000000]
[virtual=armle-v7,elf +compress] boot = {
startup-armv8_fm
PATH=/proc/boot:/sbin:/bin:/usr/bin:/usr/sbin LD_LIBRARY_PATH=/proc/boot:/lib:/usr/lib:/lib/dll:/lib/dll/pci CONFIG_PATH=/proc/boot:/etc procnto-smp-instr
}
I also have an fs built in to a qcow image running on a virtio block driver and a virtio network driver with these additional options on the qemu command line:
-drive file=armfs.qcow2,if=none,id=drv0 -device virtio-blk-device,drive=drv0 -netdev bridge,br=virbr0,id=net0 -device virtio-net-device,netdev=net0,mac=$MACADDR
Note that the startup-armv8_fm and virtio drivers are part of the virtio extras package in SDP7.0.0 and not part of the base SDP7 install.Nick Reilly2018-01-29T18:01:01Zpost118482: Iso imageGervot Olivier(deleted)http://community.qnx.com/sf/go/post1184822018-01-29T17:24:50Z2018-01-29T17:24:50ZHi
I would like to run a QNX on ARM on a virtual machine
I think that QEMU could work https://www.qemu.org/
QEMU need an iso file to run.
How can i create an QNX ARM iso image file ?
I can create an ARM image file with momentics, but the resulting image file is a .ifs image
How to convert .ifs file to .iso file ?
Is it the right way to do ?
Thanks
OlivierGervot Olivier(deleted)2018-01-29T17:24:50Zpost118443: Qnet and Qnetstats DescriptionScott Poulin(deleted)http://community.qnx.com/sf/go/post1184432018-01-23T17:21:24Z2018-01-23T17:21:24ZCan anyone provide additional detail about the qnetstats output. None of the documentation gives you information on how to interrupt the timestamp in the qnet_error log or any of the information that is outputted.
I figured out that the first two numbers in the timestamp is related to the days that the server has been up, but I can't figure out the remaining numbers. For example, 47213832: server_lookup(): invalid scoid 121, 120
47 in the first number means the 47th day the server was up. I haven't figured out what the remaining numbers are and I can't find any documentation to help me troubleshoot the issues I am seeing.
Thanks for any help or information!Scott Poulin(deleted)2018-01-23T17:21:24Zpost118032: Error parsing CGI script HTTP header datasaurabh parmar(deleted)http://community.qnx.com/sf/go/post1180322017-09-12T14:15:47Z2017-09-12T14:15:47ZI am following below steps:
1. Giving alias ip address as 10.10.9.8 using below command:
"ifconfig tsec0 inet alias 10.10.9.8/16"
2. keeping "uploadCMSFile.cgi" file in "/atlas/Data/Web/cgi" folder
3. keeping MDI_Default.html file in "/atlas/Data/Web/httpd" location
4. I am giving below command to launch the slinger.
"HTTPD_ROOT_DIR=/atlas/Data/Web/httpd HTTPD_ROOT_DOC=MDI_Default.html HTTPD_SCRIPTALIAS=/atlas/Data/Web/cgi slinger -cdec -i 10.10.9.8 &"
5. http://10.10.9.8/MDI_Default.html . Showing proper web page.
6. http://10.10.9.8/cgi-bin/uploadCMSFile.cgi. Throwing below message on browser:
This page isn’t working
10.10.9.8 didn’t send any data.
ERR_EMPTY_RESPONSE
7. If I use, slinger uses for x86, on url "http://10.10.9.8/cgi-bin/uploadCMSFile.cgi" works well.
but if I use, slinger uses for ppc, on url "http://10.10.9.8/cgi-bin/uploadCMSFile.cgi" gives error as mentioned above.
8. I run "syslogd" command to debugging purpose. I got below error messages:
Jan 01 00:41:15 nto slinger[1966133-2]: Error parsing CGI script HTTP header data.
Jan 01 00:41:15 nto slinger[1966133-2]: Error running CGI script /atlas/Data/Web/httpd/cgi/uploadCMSFile.cgi: No message of desired type
Please let me know, how to solve this issue. Please refer attached syslogd debug file.
Thanks & Regards,
Saurabhsaurabh parmar(deleted)2017-09-12T14:15:47Zpost117752: Re: RE: stack_interrupt_removeGaute Nilssonhttp://community.qnx.com/sf/go/post1177522017-05-22T12:15:54Z2017-05-22T12:15:54ZDid you ever find out what caused this?
We are facing the same problem now.
-GauteGaute Nilsson2017-05-22T12:15:54Zpost117324: qnet: kif_server@899 kif_server_msgs Overflow(0) [and process not terminating as expected]Davide Ancrihttp://community.qnx.com/sf/go/post1173242017-01-12T10:36:52Z2017-01-12T10:36:52Zhello everyone
I am investigating a problem where a remote process (spawned on a remote qnet node via "on -f") does not terminate when a SIGTERM is sent to on.
Here's the steps followed during a full run:
1) process procA is launched on node nodeA
2) procA spawns: on -f nodeB scriptB
3) scriptB ends into: exec procB
4) our test/simulation goes on until a good reason for terminating
5) procA sends a SIGTERM to its on child (spawned at point 2), expecting procB to get terminated
6) procA expects SIGCHLD from on, or after a timeout it exits anyway
What sometimes happens is: on remains alive with a pending SIGTERM, and procB does not terminate.
I noticed this strange message into nodeB sloginfo, in correspondence with the termination attempt:
Jan 05 17:09:42 7 15 0 qnet(stats): kif_server@899 kif_server_msgs Overflow(0)
Can this explain why something gone wrong in the signal delivery procA->on->nodeB->procB ?
Is it a non recoverable qnet error?
Is there a way to avoid this kind of error / critical situation?
I'm running a x86 system with qnx 6.5.0. If other infos are needed feel free to ask :)
thanks in advance!
DavideDavide Ancri2017-01-12T10:36:52Zpost116952: Qnet and ethercat?Claudia Choihttp://community.qnx.com/sf/go/post1169522016-10-07T17:41:06Z2016-10-07T17:41:06ZHi all,
I am not familiar with ethercat at all, I have a customer asking the followings:
- Can QNet run on ethercat?
- Can they both reside on the same targets? I would like to be able to run PPS, remote messaging and other features all using QNet (multiple targets) and want to know if Ethercat is incompatible with QNet.
- Can QNet sevices (ex. PPS or remote message passing) use ethercat instead of standard Ethernet?
Any help would be appreciated.
Thanks,
ClaudiaClaudia Choi2016-10-07T17:41:06Zpost116818: libspi-master not found in QNX 6.6Bob Selby(deleted)http://community.qnx.com/sf/go/post1168182016-09-19T15:21:22Z2016-09-19T15:21:22ZI am trying to build an app that uses SPI via the SPI framework.
Under 6.5 on a different board the app had to be linked with LIBSPI-MASTER to resolve the likes of "spi_open()".
Under 6.6 on a zynq board using the "BSP_xilinx-zynq-7000-zc702_br-660_be-660_SVN755171_JBN24" BSP the file doesnt exist and is not created during the BSP build process - it is NOT in the prebuilt area.
In fact it is nowhere on the machine.
The spi_master and spi_xzynq.so files are created OK
Any help welcome
BobBob Selby(deleted)2016-09-19T15:21:22Zpost116816: Re: Where is libspi-master?Bob Selby(deleted)http://community.qnx.com/sf/go/post1168162016-09-19T15:01:37Z2016-09-19T15:01:37ZI have the same problem on v6.6 ... it's NOT in the prebuilt area and it's not builtBob Selby(deleted)2016-09-19T15:01:37Zpost116476: does qnx provide wpa_supplicant/hostapd for 64bitWenbin Fuhttp://community.qnx.com/sf/go/post1164762016-06-23T08:45:50Z2016-06-23T08:45:50ZHi,
We got one version of wpa_supplicant/hostApd from qnx, it works well in 32bits OS.
we are trying to build this version with SDP700, and run it in 64bit.
wpa_supplicant/hostApd are not stable, often crash in unreason.
does qnx provide the version of wpa_supplicant/hostApd for 64bit?
thanks
- wenbinWenbin Fu2016-06-23T08:45:50Zpost116053: Re: Server/Client app slow data transfer rateAnkur Patel(deleted)http://community.qnx.com/sf/go/post1160532016-04-06T01:15:08Z2016-04-06T01:15:08ZSecond testing is between (QNX and Windows)
Data transfer rate: 150 KBpsAnkur Patel(deleted)2016-04-06T01:15:08Zpost116052: Server/Client app slow data transfer rateAnkur Patel(deleted)http://community.qnx.com/sf/go/post1160522016-04-06T00:31:21Z2016-04-06T00:31:21ZHello,
I am connecting QNX and Windows under one network.
I am using nic for wifi on QNX.
I can ping from both side and works perfectly.
Testing of Server/Client app (Ubuntu and Windows)
Data transfer rate : 1.0 MBps (Approx)
------------------------------------------------------------------------------
Testing of Server/Client app (Ubuntu and Windows)
Data transfer rate : 150 KBps (Approx)
--------------------------------------------------------------------------------
I am using same code for both QNX and Ubuntu as Server and Windows as Client.
Question 1: Why is vast difference between data transfer rate between these process?
Question 2: What is possible reason behind this problem?
Question 3: How to solve this problem?
I am also attaching codes file!
Requirment,
Execute server side,
./ (executable file name) 2222
-'2222' is port no.
Execute Client side
(filename .exe) (IP address of QNX)Ankur Patel(deleted)2016-04-06T00:31:21Zpost116045: Re: Cellular modem and PPPNick Reillyhttp://community.qnx.com/sf/go/post1160452016-04-04T17:49:37Z2016-04-04T17:49:37ZThe pppd source code for QNX is part of the networking code and you will need a source code license to receive a copy of it.
I've had QNX pppd communicating to Linux pppd over a serial link, so there shouldn't be a problem as long as all the options are setup properly.Nick Reilly2016-04-04T17:49:37Zpost116043: Re: Cellular modem and PPPTodd Peterson(deleted)http://community.qnx.com/sf/go/post1160432016-04-04T16:53:02Z2016-04-04T16:53:02ZThe modem itself communicates over UART, so the chipset is not the problem. PPP does not work the same as it does on Linux. We have decided to port the same PPP from Linux to QNX. Then, we should be able to figure out what the problem is.
It would be nice if somebody could point us to the PPP for QNX source code.Todd Peterson(deleted)2016-04-04T16:53:02Zpost116040: Re: Cellular modem and PPPAnkur Patel(deleted)http://community.qnx.com/sf/go/post1160402016-04-01T15:08:11Z2016-04-01T15:08:11ZAs per my experience, First of all you have to check which chipset is used by modem?
Then check QNX have native driver for that chipset.
If it is, QNX will automatically give response.
What is aim behind this all stuff?
I was trying to send data wirelessly. In it, I can help you.Ankur Patel(deleted)2016-04-01T15:08:11Zpost116030: Cellular modem and PPPTodd Peterson(deleted)http://community.qnx.com/sf/go/post1160302016-03-29T16:37:26Z2016-03-29T16:37:26ZWe have an Beaglebone LTE cellular modem cape from Nimbelink. Using the instructions for setting up PPP on Linux (see http://nimbelink.com/wp-content/uploads/2015/11/Skywire-PPPd-for-LTE-Application-Note.pdf) the modem works as expected.
Tried the same thing under QNX 6.5 and have had no luck. Command that we run and scripts are below. Any suggestions? Nothing shows up in the syslog to give any clues as to why it does not work.
Thanks in advance,
Todd
# pppd call verizon
Connect script failed
# cat /etc/ppp/peers/verizon
/dev/serusb6
115200
connect "/fs/emmc/usr/bin/chat v -V f /fs/emmc/etc/ppp/peers/verizon chat"
noauth
defaultroute
usepeerdns
local
debug
updetach
# cat /etc/ppp/peers/verizon-chat
TIMEOUT 35
ECHO ON
ABORT '\nBUSY\r'
ABORT '\nERROR\r'
ABORT '\nNO ANSWER\r'
ABORT '\nNO CARRIER\r'
ABORT '\nNO DIALTONE\r'
ABORT '\nRINGING\r\n\r\nRINGING\r'
'' \rATZ
OK 'ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0'
OK AT+CGDCONT=3,"IP","vzwinternet","0.0.0.0",0,0
OK ATD*99***3#
CONNECT ''Todd Peterson(deleted)2016-03-29T16:37:26Zpost115940: Re: Wireless Data transferAnkur Patel(deleted)http://community.qnx.com/sf/go/post1159402016-03-09T15:40:15Z2016-03-09T15:40:15ZI am using PCIE module Airlink AWLH3026.
It works perfectly with QNX.
I connected with network.
In network, We should have to "Turn off" firewall.
So, we can ping to qnx and vice versa.
Uisng server client application possible to transfer data.Ankur Patel(deleted)2016-03-09T15:40:15Zpost115856: Re: How an application running on Windows, uses the serial port on the QNX target?Ankur Patel(deleted)http://community.qnx.com/sf/go/post1158562016-02-23T17:44:47Z2016-02-23T17:44:47ZAs I did recently,
i use twisted RS232 cable.
On windows side, I use software "Seriall port monitor".
On QNX side, I wrote code to open serial port and to write data over it.Ankur Patel(deleted)2016-02-23T17:44:47Zpost115842: Ad-Hoc networkAnkur Patel(deleted)http://community.qnx.com/sf/go/post1158422016-02-22T23:16:43Z2016-02-22T23:16:43ZI am using QNX Neutrino 6.5 on desktop.
I inserted wireless pci card Airlink AWLH3026 and internet is working perfectly.
Now I want to connect QNX with Windows PC via AD-Hoc network.
I tried to ping Windows ==> QNX and it shows me : unable to reach destination.
Can you suggest me implement this network?Ankur Patel(deleted)2016-02-22T23:16:43Zpost115729: Re: Wireless Data transferAnkur Patel(deleted)http://community.qnx.com/sf/go/post1157292016-02-11T16:34:14Z2016-02-11T16:34:14ZNick Reilly,
I am working on academic project. They need wireless communication between QNX Neutrino and Windows PCs.
We are doing simulation of Electric vehicle on QNX and Simulation data is stored in .csv file.
Requirments of Project,
1. Transmit Real time simulation data to Windows pc over Wireless communication with transfer rate minimum 5MBps.
2. Read simulation data on Windows pc.
3. Develop Real time graph using simulated data on Windows pc.
That's why I thinking in this way.
If you have better idea , it will help me & I appreciate it.Ankur Patel(deleted)2016-02-11T16:34:14Zpost115728: Re: Wireless Data transferAnkur Patel(deleted)http://community.qnx.com/sf/go/post1157282016-02-11T16:25:40Z2016-02-11T16:25:40ZMark Wakim,
I ordered those module. I will check it.
You know that it does't gonna work.
Those module doesn't have full size card slot.
You was talking about Mini PCIE based wifi module. Are those Broadcom and Atheros? Is it have supported driver?
How can i transmit Real time simulation data using this PCIE based module?Ankur Patel(deleted)2016-02-11T16:25:40Zpost115727: Re: Wireless Data transferNick Reillyhttp://community.qnx.com/sf/go/post1157272016-02-11T15:07:53Z2016-02-11T15:07:53ZBacking up a bit, why do you need to use WiFi?
We support most of the USB/Ethernet dongles that use ASIX and SMSC95xx chips internally, the USB2.0 with 100Mb/s max are better supported than any that are USB 3.0 and Gigabit. We do support some of the later, but more of the former.
Alternatively if you have USB OTG then you can run one of the Ethernet over USB protocols like NCM/ECM/RNDIS if you can get Windows to cooperate.Nick Reilly2016-02-11T15:07:53Zpost115726: Re: Wireless Data transferMark Wakimhttp://community.qnx.com/sf/go/post1157262016-02-11T14:56:50Z2016-02-11T14:56:50ZHi Ankur,
Right those NetBSD driver ports are quite old and are not supported. From
that link: "The ported drivers that have source publicly available are not
currently considered to be supported".
Does your board by any chance have a full size SD card slot? Some
companies for example TI and Silex have WiFi modules that can use an SDIO
slot. We also support some mini PCIE based WiFi modules.
MarkMark Wakim2016-02-11T14:56:50Zpost115721: Re: Wireless Data transferAnkur Patel(deleted)http://community.qnx.com/sf/go/post1157212016-02-11T01:00:12Z2016-02-11T01:00:12ZIn following link it's already mentioned that QNX supports USB 2.0 dongle in the Wireless drivers section :
http://community.qnx.com/sf/wiki/do/viewPage/projects.networking/wiki/Drivers_wiki_pageAnkur Patel(deleted)2016-02-11T01:00:12Zpost115714: Re: Wireless Data transferHugh Brownhttp://community.qnx.com/sf/go/post1157142016-02-10T12:41:48Z2016-02-10T12:41:48ZWe don¹t support any USB wireless adapters.
On 2016-02-09, 8:35 PM, "Ankur Patel" <community-noreply@qnx.com> wrote:
>I am trying to transfer Real time simulation data from QNX to Windows. I
>want to use Cisco-Linksys WUSB54GC or BELKIN F5D7050. It has QNX
>supporting chipset.
>How to configure this usb wireless adapter device to QNX?
>How to connect it with other PC?
>How to tranfer data to other PC?
>
>Guide me.
>Thanks in advance.
>
>
>
>_______________________________________________
>
>General
>http://community.qnx.com/sf/go/post115710
>To cancel your subscription to this discussion, please e-mail
>general-networking-unsubscribe@community.qnx.comHugh Brown2016-02-10T12:41:48Zpost115710: Wireless Data transferAnkur Patel(deleted)http://community.qnx.com/sf/go/post1157102016-02-10T01:35:23Z2016-02-10T01:35:23ZI am trying to transfer Real time simulation data from QNX to Windows. I want to use Cisco-Linksys WUSB54GC or BELKIN F5D7050. It has QNX supporting chipset.
How to configure this usb wireless adapter device to QNX?
How to connect it with other PC?
How to tranfer data to other PC?
Guide me.
Thanks in advance.Ankur Patel(deleted)2016-02-10T01:35:23Zpost115667: Re: "Missing" IP headers and pfil orderNick Reillyhttp://community.qnx.com/sf/go/post1156672016-02-03T17:51:08Z2016-02-03T17:51:08ZThe only way to see what is in the chain would be to walk the TAILQ yourself, see pfil_run_hooks() in the NetBSD code:
http://cvsweb.netbsd.org/bsdweb.cgi/src/sys/net/pfil.c?rev=1.28&content-type=text/x-cvsweb-markup&only_with_tag=MAINNick Reilly2016-02-03T17:51:08Zpost115665: Re: "Missing" IP headers and pfil orderpeter graham(deleted)http://community.qnx.com/sf/go/post1156652016-02-03T16:14:33Z2016-02-03T16:14:33ZThanks again for the quick reply! I'm not enabling QNX's IPSec (and actually changed the startup io-pkt-v4-hc command to io-pkt-v4 to try to eliminate any additional behavior). I've attached a screenshot of the output I'm seeing, which shows the AH packets, but in the input hook, ip_p is IPPROTO_UDP (17). I think one thing I'm not unclear on is whether or not something else in the filter chain is modifying the packet before my filter is called. Is there a way to view the actual chain? I tried some searching online but wasn't able to come up with anything that seemed to be what I was looking for. I feel like I'm missing something simple but can't pin it down.peter graham(deleted)2016-02-03T16:14:33Zpost115663: Re: "Missing" IP headers and pfil orderNick Reillyhttp://community.qnx.com/sf/go/post1156632016-02-03T13:53:57Z2016-02-03T13:53:57ZFor the documentation on this see the io-pkt documentation at:
http://www.qnx.com/developers/docs/am11/index.jsp?topic=%2Fcom.qnx.doc.neutrino.utilities%2Ftopic%2Fi%2Fio-pkt.html
I've noticed that it is missing from the "use" information and have filed a bug to address this.
Whether you need pfil_ipsec is going to depend on if you have set the "ipsec" option on the command line or not. If the ipsec option is enabled then the fact that it is an IPSec protocol (inner protocol is IPv4, IPv6, ESP, AH or IPComp) flags it as an IPSec packet and the pfil hooks will not see the packet until it is decrypted unless pfil_ipsec is set.
If the ipsec option is not set then all packets will be sent to the pfil hooks straight away.Nick Reilly2016-02-03T13:53:57Zpost115662: Re: "Missing" IP headers and pfil orderpeter graham(deleted)http://community.qnx.com/sf/go/post1156622016-02-03T13:43:53Z2016-02-03T13:43:53ZI'm actually integrating a third-party IPSec product into a packet filter, and not using QNX's IPSec. Is this command still relevant in this case? I can't find any reference to pfil_ipsec in the QNX docs or on the forumspeter graham(deleted)2016-02-03T13:43:53Zpost115660: Re: "Missing" IP headers and pfil orderNick Reillyhttp://community.qnx.com/sf/go/post1156602016-02-02T20:53:39Z2016-02-02T20:53:39ZYou need to add the "pfil_ipsec" option to the command line. From the io-pkt documentation
pfil_ipsec
(io-pkt-v4-hc and io-pkt-v6-hc only) Run packet filters on packets before encryption. The default is to do it after encryption.Nick Reilly2016-02-02T20:53:39Zpost115659: "Missing" IP headers and pfil orderpeter graham(deleted)http://community.qnx.com/sf/go/post1156592016-02-02T20:36:34Z2016-02-02T20:36:34ZI have a packet filter that operates on AH-encapsulated UDP packets, and while tcpdump shows the AH header is there, it is not available when my packet filter hook is called (at least, it isn't as far as I can tell. The source and destination are correct, but the ip_p field in the iphdr is only ever IPPROTO_UDP). I thought maybe something above my hook in the stack was de-encapsulating the packet, but I haven't been able to find a way to test this. Any thoughts on where I should look, or other possible causes?peter graham(deleted)2016-02-02T20:36:34Zpost114621: Enabling default passkey and legacy pin in BluetoothManoj R(deleted)http://community.qnx.com/sf/go/post1146212015-10-10T06:49:48Z2015-10-10T06:49:48ZHi,
I do not want the QNX Car system to ask for a pin and confirmation I want to set the default pin to 0000 so that when the android phone sees this system it can automatically connect without asking for the pin.I am using below commands to set the default and legacy pin and to authorize the phone but these commands are not working
echo "command::set_legacy_pin\ndata::65:3C:4F:D0:C9:88\ndata2::n:0000" >> /pps/services/bluetooth/control
echo "command::set_passkey\ndata::65:3C:4F:D0:C9:88\ndata2::n:0000" >> /pps/services/bluetooth/control
echo "command::user_confirm\ndata::65:3C:4F:D0:C9:88\ndata2::b:true" >> /pps/services/bluetooth/controlManoj R(deleted)2015-10-10T06:49:48Zpost114495: Re: Boost::Asio Async write failedK Seto(deleted)http://community.qnx.com/sf/go/post1144952015-09-22T22:17:23Z2015-09-22T22:17:23ZFound the problem:
async_write_some needs to hold on to the socket for writing later in write_handler; otherwise, the destructor of the socket cancels all async operations.K Seto(deleted)2015-09-22T22:17:23Zpost114493: Boost::Asio Async write failedK Seto(deleted)http://community.qnx.com/sf/go/post1144932015-09-22T17:43:50Z2015-09-22T17:43:50ZHi, I am porting an application to QNX 6.6 that uses boost::asio library.
I have already built the boost 1.57.0 binaries. To test the library working, I ran two http server example codes using synchronized and asynchronized writing respectively (as attached).
The Sync version runs fine; while the Async one failed at writing. It returned error "Operation canceled".
Can anyone point out where I should look for? Thanks.K Seto(deleted)2015-09-22T17:43:50Zpost114433: Re: Help learning to use the packet filtering toolsNick Reillyhttp://community.qnx.com/sf/go/post1144332015-09-08T13:34:13Z2015-09-08T13:34:13Zlibpcap.a and libpcapS.a are in the SDP in the target/qnx6/<CPU>/usr/lib directory:
E.g on my Linux install of 6.6.0 in /opt/qnx660:
$ find /opt/qnx660/target/qnx6 -name 'libpcap*'
/opt/qnx660/target/qnx6/x86/usr/lib/libpcap.a
/opt/qnx660/target/qnx6/x86/usr/lib/libpcapS.a
/opt/qnx660/target/qnx6/armle-v7/usr/lib/libpcap.a
/opt/qnx660/target/qnx6/armle-v7/usr/lib/libpcapS.a
$Nick Reilly2015-09-08T13:34:13Zpost114427: Re: Help learning to use the packet filtering toolsSamuel Hutchinson(deleted)http://community.qnx.com/sf/go/post1144272015-09-04T22:01:49Z2015-09-04T22:01:49ZTo repeat my previous question: where is the actual libpcap.a (or equivalent) file in the QNX directory structure?
I found lots of guides on programming with libpcap, but none of them mean anything if I can't access the functions declared in the header.
I found the header file and Momentics sees it fine, but when I tell it to include the libpcap.a file I've found (in target/qnx6/.../usr/lib) it does not give a file not found error (meaning it SEES the library), but doesn't load the function definitions (meaning it is the WRONG library), resulting in an 'undefined reference' error.Samuel Hutchinson(deleted)2015-09-04T22:01:49Zpost114426: Re: Help learning to use the packet filtering toolsNick Reillyhttp://community.qnx.com/sf/go/post1144262015-09-04T18:45:55Z2015-09-04T18:45:55ZSee the PCAP documentation on TCPDUMP page:
http://www.tcpdump.org/pcap.htmlNick Reilly2015-09-04T18:45:55Zpost114425: Re: Help learning to use the packet filtering toolsSamuel Hutchinson(deleted)http://community.qnx.com/sf/go/post1144252015-09-04T18:34:07Z2015-09-04T18:34:07ZI've looked into libpcap, but I'm not sure how to get it to work for QNX, since I'm using a windows host.
I've read that it's part of QNX's standard libraries so I tried just importing it, but it can't find the function definitions, and I can't figure out where I would get them.Samuel Hutchinson(deleted)2015-09-04T18:34:07Zpost114420: Re: Help learning to use the packet filtering toolsNick Reillyhttp://community.qnx.com/sf/go/post1144202015-09-04T13:04:31Z2015-09-04T13:04:31ZTo see packets sent to other addresses you will need to use BPF as that is the only way you can put the interface in promiscuous mode. Here's some example code that I found on a quick search:
https://gist.github.com/manuelvonthron-opalrt/8559997
Note that libpcap uses BPF so if you find it easier to program for that then it is an alternative.Nick Reilly2015-09-04T13:04:31Zpost114414: Help learning to use the packet filtering toolsSamuel Hutchinson(deleted)http://community.qnx.com/sf/go/post1144142015-09-03T22:28:20Z2015-09-03T22:28:20ZI'm looking for a good tutorial for getting started with the packet filtering/network sniffing tools.
From what I can see I want to use either pf or bpf.
I want to be able to open packets with address for machine other than mine, so whichever is best for that.Samuel Hutchinson(deleted)2015-09-03T22:28:20Zpost114050: io-char S/W buffer overrun errorSimon Barrett(deleted)http://community.qnx.com/sf/go/post1140502015-07-01T11:29:45Z2015-07-01T11:29:45ZHi,
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-01T11:29:45Zpost113688: RE: qnet: fast resolver configuration for local environmentDave Brownhttp://community.qnx.com/sf/go/post1136882015-04-07T14:45:53Z2015-04-07T14:45:53ZYou will need a resolver to resolve names to MAC addresses.
You could try using the file resolver instead of the ndp (Node Discovery Protocol) resolver. The drawback of the file resolver is that you will need to know your remote MAC addresses ahead of time and have it populated in the file. This resolver will not attempt check for a duplicate name.
There does not appear to be an option to disable the unique name check directly. Options that could affect behavior are generic and will affect other behavior as well. res_retries will affect all resolver queries, not just the unique name query for example.
Thanks
Dave
-----Original Message-----
From: Thomas Schickentanz [mailto:community-noreply@qnx.com]
Sent: April-07-15 2:45 AM
To: general-networking
Subject: qnet: fast resolver configuration for local environment
We are using qnet on a system with two nodes and we are sure that our hostnames are unique in our local environment. Communication between the two nodes should be available as fast as possible. What we see with default configuration is a delay of 400 msec on startup of qnet:
Jan 01 09:00:00.573 7 15 0 qnet(L4): lr_verify_my_name_and_domain(): starting resolution of our hostname hu-omap.dis2 to ensure unique
...
Jan 01 09:00:00.973 7 15 0 qnet(L4): lr_verify_my_name_and_domain(): qnet going online
I have set the "res_retries" to 0 which reduces the delay to 200 msec. I also tried to set "res_ticks" to 0, but this has no effect for the initial 200 msec delay. Setting "periodic_ticks" (default 200 msec) to a lower value seems quite dangerous, because it has impact on all timings.
What is your advice for saving additional time on resolution stage, if we do not need a resolver at all to ensure unique names?
Is it possible to write an own fast resolver and set it with "resolve=" option or set "resolve=none"?
_______________________________________________
General
http://community.qnx.com/sf/go/post113685
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.comDave Brown2015-04-07T14:45:53Zpost113685: qnet: fast resolver configuration for local environmentThomas Schickentanzhttp://community.qnx.com/sf/go/post1136852015-04-07T06:45:15Z2015-04-07T06:45:15ZWe are using qnet on a system with two nodes and we are sure that our hostnames are unique in our local environment. Communication between the two nodes should be available as fast as possible. What we see with default configuration is a delay of 400 msec on startup of qnet:
Jan 01 09:00:00.573 7 15 0 qnet(L4): lr_verify_my_name_and_domain(): starting resolution of our hostname hu-omap.dis2 to ensure unique
...
Jan 01 09:00:00.973 7 15 0 qnet(L4): lr_verify_my_name_and_domain(): qnet going online
I have set the "res_retries" to 0 which reduces the delay to 200 msec. I also tried to set "res_ticks" to 0, but this has no effect for the initial 200 msec delay. Setting "periodic_ticks" (default 200 msec) to a lower value seems quite dangerous, because it has impact on all timings.
What is your advice for saving additional time on resolution stage, if we do not need a resolver at all to ensure unique names?
Is it possible to write an own fast resolver and set it with "resolve=" option or set "resolve=none"?Thomas Schickentanz2015-04-07T06:45:15Zpost113654: Re: TFTP not working in QNX 6.5Nick Reillyhttp://community.qnx.com/sf/go/post1136542015-03-31T17:56:50Z2015-03-31T17:56:50ZI think you will need to raise this via your support channel and we will address it.Nick Reilly2015-03-31T17:56:50Zpost113652: Re: TFTP not working in QNX 6.5Deepankar Gaur(deleted)http://community.qnx.com/sf/go/post1136522015-03-31T17:14:20Z2015-03-31T17:14:20ZHey Nick thanks for your suggestions. After a lot of debugging I found out that the issue is not with the native TFTP package but it is with the package which supports ppcbe target (Power PC) target. Any idea on how to resolve this or debug this further ?Deepankar Gaur(deleted)2015-03-31T17:14:20Zpost113485: Re: TFTP not working in QNX 6.5Nick Reillyhttp://community.qnx.com/sf/go/post1134852015-03-03T15:17:46Z2015-03-03T15:17:46ZNo need to change the entire image, just copy syslogd, the syslog.conf and an empty logfile to /dev/shmem and run it all from there.
It also may be useful to take a look at what the actual packets going back and forth on the wire are doing with wireshark.Nick Reilly2015-03-03T15:17:46Zpost113479: Re: TFTP not working in QNX 6.5Deepankar Gaur(deleted)http://community.qnx.com/sf/go/post1134792015-03-03T08:03:23Z2015-03-03T08:03:23ZThanks for the pointer Nick but unfortunately the OS image that I am using does not have the syslogd daemon and I cannot change the image. Any other ideas ? ? ?Deepankar Gaur(deleted)2015-03-03T08:03:23Zpost113455: Re: TFTP not working in QNX 6.5Nick Reillyhttp://community.qnx.com/sf/go/post1134552015-03-02T15:23:40Z2015-03-02T15:23:40ZTry running a syslogd on machine A to capture the logging from tftpd and see what it reports.Nick Reilly2015-03-02T15:23:40Zpost113446: TFTP not working in QNX 6.5Deepankar Gaur(deleted)http://community.qnx.com/sf/go/post1134462015-03-02T08:16:39Z2015-03-02T08:16:39ZFellow Developers and Experts, I am facing the following problem while trying an TFTP connection from one QNX 6.5 machine to another. The scenario is explained below,
Machine A - Running on QNX 6.5 - Acting as TFTP Server
Machine B - Running on QNX 6.5 - Acting as TFTP Client
The inetd.conf file on A contains the following entry for TFTP,
tftp dgram udp nowait root /proc/boot/tftpd in.tftpd -el
Also, after giving the "SOCK=/sock1 netstat -an" command I am able to see tftp server running on port number 69 on A.
Now after confirming the above things I give the following command on the console of B,
SOCK=/sock1 tftp -e 128.0.1.3
rexmt 1
timeout 10
get /dir_a/parse.log /dir_b/parse.log
But it always give the error saying "Transfer Timed Out". I have made sure that the source and destination directories are having read and write permissions.
Can anyone give me any pointers on what might be going wrong here ? ? ?
Any help is much appreciated.Deepankar Gaur(deleted)2015-03-02T08:16:39Zpost113337: Re: DNS Lookup. How can we disable Reverse DNS lookup in QNXSajal Malhotra(deleted)http://community.qnx.com/sf/go/post1133372015-02-19T08:17:00Z2015-02-19T08:17:00ZThanks Nick for your prompt response.
We tried the -n option. However it seems that we have an old ftpd binary (Our HW has QNX v6.3.0 installed).
Is it possible to get the latest ftpd binary which supports this option?
I also discovered another workaround to prevent reverse lookup. Which is by defining the IP address to host name mapping in "/etc/hosts". This also then works for Telnet and FTP.
However the problem with this approach is that we also have to define the mapping of IP address of PC/Laptop which is connecting to our Host and from where we are doing the FTP. Now considering that my Host IP is fixed to 192.168.255.131, i need to create all entries in 192.168.255.0/24 subnet, because i am not sure what IP would be assigned to PC which is connecting to my host machine.
Is there any way to define 1 entry for a complete subnet in /etc/hosts file?Sajal Malhotra(deleted)2015-02-19T08:17:00Zpost113294: Re: DNS Lookup. How can we disable Reverse DNS lookup in QNXNick Reillyhttp://community.qnx.com/sf/go/post1132942015-02-11T13:39:52Z2015-02-11T13:39:52Zftpd supports the "-n" option to disable this behaviour
http://www.qnx.com/developers/docs/660/index.jsp?topic=%2Fcom.qnx.doc.neutrino.utilities%2Ftopic%2Ff%2Fftpd.html&resultof=%22ftpd%22%20
Unfortunately telnetd doesn't have the same capability, it doesn't require name services but if it has them it will use them, see
http://www.qnx.com/developers/docs/660/index.jsp?topic=%2Fcom.qnx.doc.neutrino.utilities%2Ftopic%2Ft%2Ftelnetd.html&resultof=%22telnetd%22%20Nick Reilly2015-02-11T13:39:52Zpost113293: Re: DNS Lookup. How can we disable Reverse DNS lookup in QNXGervais Mulongoyhttp://community.qnx.com/sf/go/post1132932015-02-11T13:21:48Z2015-02-11T13:21:48ZYou could probably achieve this using dnsmasq (check the 3rd party repo)
locally where you point all your DNS requests to 127.0.0.1 and you
configured dnsmasq with your real DNS servers and dnsmasq take care of
handling the reverse lookups. That should speed things up for you.Gervais Mulongoy2015-02-11T13:21:48Zpost113290: DNS Lookup. How can we disable Reverse DNS lookup in QNXSajal Malhotra(deleted)http://community.qnx.com/sf/go/post1132902015-02-11T12:51:50Z2015-02-11T12:51:50ZHi,
When I try to ftp (or telnet as well) to my QNX host it takes about 60 secs before I really get the connection.
Looking at Wireshark Logs i see that the host generates Reverse DNS Lookup packets towards DNS Servers configured in resolv.conf. (e.g. Queries of type 130.255.168.192.in-addr.arpa).
I do need DNS Server for Domain Name Resolution however there is no need for Reverse lookups.
Is there any way to disable these Reverse Lookups?
Thanks and Regards
Sajal MalhotraSajal Malhotra(deleted)2015-02-11T12:51:50Zpost113231: What else could be filtering besides pf?Philip Deneauhttp://community.qnx.com/sf/go/post1132312015-02-05T15:55:37Z2015-02-05T15:55:37ZHi,
I'm working with a QNX system based of 6.5.0. I have access to the code and root access to the board but no reasons why things are done the way they are.
There is pf.conf on the board it appears the board is behaving like it is using it. However pf or bfp is not a running process.
If I try this ...
pfctl -d -f /etc/pf.conf
pfctl: /dev/pf: No such file or directory
So what else on the system could be doing filtering? What other commands can I run to see where the packet get eaten at?
Thanks
Phil DeneauPhilip Deneau2015-02-05T15:55:37Zpost113117: Re: How to Fix the Source IP used in DNS Request sent from system.Nick Reillyhttp://community.qnx.com/sf/go/post1131172015-01-28T13:49:03Z2015-01-28T13:49:03Z6.3.0 is really really old. I'd suggest that if you really need this to work you purchase a support contract and come in through that way. Otherwise try 6.5.0 SP1 or 6.6.0.Nick Reilly2015-01-28T13:49:03Zpost113116: Re: How to Fix the Source IP used in DNS Request sent from system.Sajal Malhotra(deleted)http://community.qnx.com/sf/go/post1131162015-01-28T10:06:57Z2015-01-28T10:06:57ZHi Nick, Sean,
Any Inputs you could give on my queries in last post.
BR
Sajal
On Mon, Jan 19, 2015 at 1:32 PM, Sajal Malhotra <sajalmalhotra@gmail.com>
wrote:
> Hi Sean,
>
> Thanks for your help. Here are my findings after trying your suggestions:
> - The arp -an option worked fine. Thankyou for the same :)
> - timeout params in resolv.conf did not work(I have attached the
> resolv.conf we used).
> - However changing "res->retrans" and "res->retry" and res_init() *Did
> work fine*. (Please Note: res_ninit does not seem to be supported on our
> version of QNX OS (v6.3.0). Was getting compilation errors.)
>
> - Also regarding dns activity in FTP and Telnet, we do see still see the
> same. I have attached the wireshark logs of the time when we just executed
> a simple ftp command with numeric IP Addresses (ftp 192.168.255.131). The
> Telnet and FTP commands get stuck till these pkt transmissions are
> completed. (Please use "dns" filter in pcap file to see the query pkts that
> are generated by kernel)
>
> The moment we remove DNS Server IPs from resolv.conf, the issue is not
> seen. Can you put some light on this as well.
>
> PS: We are using QNX v6.3.0.
>
> BR
> Sajal
>
> On Wed, Jan 7, 2015 at 8:16 PM, Sean Boudreau <community-noreply@qnx.com>
> wrote:
>
>> On Wed, Jan 07, 2015 at 09:38:36AM -0500, Sean Boudreau wrote:
>> >
>> > For arp, pass the -n switch:
>> >
>> > # arp -an
>> >
>> > I don't see any dns activity with ftp if numeric addresses are used.
>> > If a hostname is used, dns is required to resolve it to a numeric
>> > address.
>> >
>> > You can change timeout parameters in resolv.conf:
>> >
>> > options timeout:x attempts:y
>> >
>> > Or from code:
>> >
>> > # include <resolv.h>
>> >
>> > struct __res_state * res = __res_get_state();
>> >
>> > res->retrans = x;
>> > res->retry = y;
>>
>> res_ninit(res);
>>
>> >
>> > getaddrinfo(...);
>>
>>
>>
>>
>> _______________________________________________
>>
>> General
>> http://community.qnx.com/sf/go/post112854
>> To cancel your subscription to this discussion, please e-mail
>> general-networking-unsubscribe@community.qnx.com
>>
>
>Sajal Malhotra(deleted)2015-01-28T10:06:57Zpost112987: Re: How to Fix the Source IP used in DNS Request sent from system.Sajal Malhotra(deleted)http://community.qnx.com/sf/go/post1129872015-01-19T08:02:59Z2015-01-19T08:02:59ZHi Sean,
Thanks for your help. Here are my findings after trying your suggestions:
- The arp -an option worked fine. Thankyou for the same :)
- timeout params in resolv.conf did not work(I have attached the
resolv.conf we used).
- However changing "res->retrans" and "res->retry" and res_init() *Did work
fine*. (Please Note: res_ninit does not seem to be supported on our version
of QNX OS (v6.3.0). Was getting compilation errors.)
- Also regarding dns activity in FTP and Telnet, we do see still see the
same. I have attached the wireshark logs of the time when we just executed
a simple ftp command with numeric IP Addresses (ftp 192.168.255.131). The
Telnet and FTP commands get stuck till these pkt transmissions are
completed. (Please use "dns" filter in pcap file to see the query pkts that
are generated by kernel)
The moment we remove DNS Server IPs from resolv.conf, the issue is not
seen. Can you put some light on this as well.
PS: We are using QNX v6.3.0.
BR
Sajal
On Wed, Jan 7, 2015 at 8:16 PM, Sean Boudreau <community-noreply@qnx.com>
wrote:
> On Wed, Jan 07, 2015 at 09:38:36AM -0500, Sean Boudreau wrote:
> >
> > For arp, pass the -n switch:
> >
> > # arp -an
> >
> > I don't see any dns activity with ftp if numeric addresses are used.
> > If a hostname is used, dns is required to resolve it to a numeric
> > address.
> >
> > You can change timeout parameters in resolv.conf:
> >
> > options timeout:x attempts:y
> >
> > Or from code:
> >
> > # include <resolv.h>
> >
> > struct __res_state * res = __res_get_state();
> >
> > res->retrans = x;
> > res->retry = y;
>
> res_ninit(res);
>
> >
> > getaddrinfo(...);
>
>
>
>
> _______________________________________________
>
> General
> http://community.qnx.com/sf/go/post112854
> To cancel your subscription to this discussion, please e-mail
> general-networking-unsubscribe@community.qnx.com
>Sajal Malhotra(deleted)2015-01-19T08:02:59Zpost112858: RE: Adaptative partitionningJoel Pilon(deleted)http://community.qnx.com/sf/go/post1128582015-01-07T17:41:35Z2015-01-07T17:41:35ZSince the System partition is not consuming it's whole budget, the DebugReserve partition gets the free cycles and runs over budget.
If you had a while 1 thread running in the system partition then the DebugReserve partition would only consume 15% of the CPU.
The OS forum would be a better place to ask questions related to APS,
-Joel
________________________________________
From: Gervot Olivier [community-noreply@qnx.com]
Sent: Tuesday, January 06, 2015 11:13 AM
To: general-networking
Subject: Adaptative partitionning
Hi
I am curently testing the adaptative partitionning
I wrote the following test program. It does the following tasks
Try to create a partition
If already created lookup for id
Joint the partition
Consume CPU (while loop)
#include <sys/sched_aps.h> // sched_aps_partition_info
#include <sys/neutrino.h> // SchedCtl
#include <stdlib.h>
#include <string.h>
#include <errno.h>
#include <stdio.h>
#include <unistd.h> // usleep
int main(void) {
_Int16t id = 0;
// create a partition
sched_aps_create_parms creation_data;
memset(&creation_data, 0, sizeof(creation_data));
creation_data.budget_percent = 15;
creation_data.critical_budget_ms = 0;
creation_data.name = "DebugReserve";
// Ne peut etre appelle qu'une fois avec un nom donne
int ret = SchedCtl( SCHED_APS_CREATE_PARTITION, &creation_data, sizeof(creation_data));
if (ret != EOK)
{
printf("Couldn t create partition \"%s\": %s (%d).\n", creation_data.name, strerror(errno), errno);
// already created
sched_aps_lookup_parms lookup_data;
memset(&lookup_data , 0 , sizeof ( lookup_data ) ) ;
lookup_data.name = "DebugReserve";
int ret = SchedCtl(SCHED_APS_LOOKUP, &lookup_data, sizeof(lookup_data) );
if (EOK != ret)
{
printf("err SchedCtl SCHED_APS_LOOKUP ret %d errno %d %s\n",ret, errno, sys_errlist[errno]);
}
else
{
//use output field
printf("SchedCtl SCHED_APS_LOOKUP OK id %d\n", lookup_data.id);
id = lookup_data.id;
}
}
else
{
printf ("The new partition ID is %d.\n", creation_data.id);
id = creation_data.id;
}
sched_aps_join_parms join_data;
memset(&join_data, 0, sizeof(join_data));
join_data.id = id;
join_data.pid = 0;
join_data.tid = 0;
ret = SchedCtl( SCHED_APS_JOIN_PARTITION, &join_data, sizeof(join_data));
if (ret != EOK)
{
printf("Couldn’t join partition %d: %s (%d).\n",
join_data.id, strerror(errno), errno);
}
else
{
printf ("Process is now in partition %d.\n", join_data.id);
}
// Consume max CPU
while(1)
{
//usleep(1);
}
return 0;
}
I run both 3 instance of this program
if execute: aps show -v
the display is
+----------- CPU Time ------------+-- Critical Time --
| | Used | |
Partition name id | Budget | 0.100s 1.00s 10.0s | Budget | Used
--------------------+---------------------------------+-------------------
System 0 | 85% | 0.13% 0.07% 0.23% | 400ms | 0.000ms
DebugReserve 1 | 15% | 74.04% 73.37% 64.13% | 0ms | 0.000ms
--------------------+---------------------------------+-------------------
Total | 100% | 74.17% 73.44% 64.36% |
The budget for the "DebugReserve" partition is 15% but the program overrun the budget of 15%
what is the problem, the code or my reasoning ?
_______________________________________________
General
http://community.qnx.com/sf/go/post112837
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.comJoel Pilon(deleted)2015-01-07T17:41:35Zpost112854: Re: How to Fix the Source IP used in DNS Request sent from system.Sean Boudreau(deleted)http://community.qnx.com/sf/go/post1128542015-01-07T14:46:53Z2015-01-07T14:46:53ZOn Wed, Jan 07, 2015 at 09:38:36AM -0500, Sean Boudreau wrote:
>
> For arp, pass the -n switch:
>
> # arp -an
>
> I don't see any dns activity with ftp if numeric addresses are used.
> If a hostname is used, dns is required to resolve it to a numeric
> address.
>
> You can change timeout parameters in resolv.conf:
>
> options timeout:x attempts:y
>
> Or from code:
>
> # include <resolv.h>
>
> struct __res_state * res = __res_get_state();
>
> res->retrans = x;
> res->retry = y;
res_ninit(res);
>
> getaddrinfo(...);Sean Boudreau(deleted)2015-01-07T14:46:53Zpost112853: Re: How to Fix the Source IP used in DNS Request sent from system.Sean Boudreau(deleted)http://community.qnx.com/sf/go/post1128532015-01-07T14:38:45Z2015-01-07T14:38:45ZFor arp, pass the -n switch:
# arp -an
I don't see any dns activity with ftp if numeric addresses are used.
If a hostname is used, dns is required to resolve it to a numeric
address.
You can change timeout parameters in resolv.conf:
options timeout:x attempts:y
Or from code:
# include <resolv.h>
struct __res_state * res = __res_get_state();
res->retrans = x;
res->retry = y;
getaddrinfo(...);
On Wed, Jan 07, 2015 at 01:48:14PM +0530, Sajal Malhotra wrote:
> Hi Nick,
>
> Thanks for your Reply.
> It seems in QNX we can configure multiple logical IP Addresses in Same Subnet
> on a particular ethernet interface.
> Now since this is not blocked by OS, we want to somehow control which IP
> Address the OS uses as Source IP while generating DNS Traffic. Is this possible
> somehow?
>
> Further needed help on another related topic:
> While we configured the DNS Server IP in resolv.conf:
> - We were observing that on calling "gethostbyname()" API, OS was generating
> DNS Request and on not getting any reply it was making re-attempts (6 times or
> so) before returning failure.
> - If 2 DNS Server IPs are configured in resolv.conf then we observe that the
> delay between subsequent attempts further increases with period of each attempt
> also increasing incremently.
> - Also we observed that when resolv.conf is in use, then on executing "arp -a"
> or doing FTP, we see that OS Starts generating DNS Traffic for each IP in ARP
> Table and there is a delay in output.
>
> Queries:
> - In Linux we know it is possible to control the number of attempts and
> interval between each attempt by configuring parameters in resolv.conf. Is the
> same also possible in QNX?
> - How can we stop generation of DNS Traffic on execution of commands like "arp
> -a" or ftp?
>
> Would really appreciate if you can provide some pointers for these queries.
>
> Thanks and Regards
> Sajal
>
> BR
> Sajal
>
> On Mon, Jan 5, 2015 at 8:30 PM, Nick Reilly <community-noreply@qnx.com> wrote:
>
> Hi Sajal,
> The DNS request will be sent to the servers specified in /etc/resolv.conf
> and the source address used will be the one that best routes to that
> address. As there cannot be multiple addresses in the same subnet, one
> address will always be chosen to access a particular DNS server.
>
> Can you explain in a bit more detail the issue that you are facing?
>
> Regards,
> Nick.
>
>
>
>
> _______________________________________________
>
> General
> http://community.qnx.com/sf/go/post112822
> To cancel your subscription to this discussion, please e-mail
> general-networking-unsubscribe@community.qnx.com
>
>Sean Boudreau(deleted)2015-01-07T14:38:45Zpost112849: Re: How to Fix the Source IP used in DNS Request sent from system.Sajal Malhotra(deleted)http://community.qnx.com/sf/go/post1128492015-01-07T08:18:35Z2015-01-07T08:18:35ZHi Nick,
Thanks for your Reply.
It seems in QNX we can configure multiple logical IP Addresses in Same
Subnet on a particular ethernet interface.
Now since this is not blocked by OS, we want to somehow control which IP
Address the OS uses as Source IP while generating DNS Traffic. Is this
possible somehow?
Further needed help on another related topic:
While we configured the DNS Server IP in resolv.conf:
- We were observing that on calling "gethostbyname()" API, OS was
generating DNS Request and on not getting any reply it was making
re-attempts (6 times or so) before returning failure.
- If 2 DNS Server IPs are configured in resolv.conf then we observe that
the delay between subsequent attempts further increases with period of each
attempt also increasing incremently.
- Also we observed that when resolv.conf is in use, then on executing "arp
-a" or doing FTP, we see that OS Starts generating DNS Traffic for each IP
in ARP Table and there is a delay in output.
Queries:
- In Linux we know it is possible to control the number of attempts and
interval between each attempt by configuring parameters in resolv.conf. Is
the same also possible in QNX?
- How can we stop generation of DNS Traffic on execution of commands like
"arp -a" or ftp?
Would really appreciate if you can provide some pointers for these queries.
Thanks and Regards
Sajal
BR
Sajal
On Mon, Jan 5, 2015 at 8:30 PM, Nick Reilly <community-noreply@qnx.com>
wrote:
> Hi Sajal,
> The DNS request will be sent to the servers specified in /etc/resolv.conf
> and the source address used will be the one that best routes to that
> address. As there cannot be multiple addresses in the same subnet, one
> address will always be chosen to access a particular DNS server.
>
> Can you explain in a bit more detail the issue that you are facing?
>
> Regards,
> Nick.
>
>
>
>
> _______________________________________________
>
> General
> http://community.qnx.com/sf/go/post112822
> To cancel your subscription to this discussion, please e-mail
> general-networking-unsubscribe@community.qnx.com
>Sajal Malhotra(deleted)2015-01-07T08:18:35Zpost112837: Adaptative partitionningGervot Olivier(deleted)http://community.qnx.com/sf/go/post1128372015-01-06T16:13:33Z2015-01-06T16:13:33ZHi
I am curently testing the adaptative partitionning
I wrote the following test program. It does the following tasks
Try to create a partition
If already created lookup for id
Joint the partition
Consume CPU (while loop)
#include <sys/sched_aps.h> // sched_aps_partition_info
#include <sys/neutrino.h> // SchedCtl
#include <stdlib.h>
#include <string.h>
#include <errno.h>
#include <stdio.h>
#include <unistd.h> // usleep
int main(void) {
_Int16t id = 0;
// create a partition
sched_aps_create_parms creation_data;
memset(&creation_data, 0, sizeof(creation_data));
creation_data.budget_percent = 15;
creation_data.critical_budget_ms = 0;
creation_data.name = "DebugReserve";
// Ne peut etre appelle qu'une fois avec un nom donne
int ret = SchedCtl( SCHED_APS_CREATE_PARTITION, &creation_data, sizeof(creation_data));
if (ret != EOK)
{
printf("Couldn t create partition \"%s\": %s (%d).\n", creation_data.name, strerror(errno), errno);
// already created
sched_aps_lookup_parms lookup_data;
memset(&lookup_data , 0 , sizeof ( lookup_data ) ) ;
lookup_data.name = "DebugReserve";
int ret = SchedCtl(SCHED_APS_LOOKUP, &lookup_data, sizeof(lookup_data) );
if (EOK != ret)
{
printf("err SchedCtl SCHED_APS_LOOKUP ret %d errno %d %s\n",ret, errno, sys_errlist[errno]);
}
else
{
//use output field
printf("SchedCtl SCHED_APS_LOOKUP OK id %d\n", lookup_data.id);
id = lookup_data.id;
}
}
else
{
printf ("The new partition ID is %d.\n", creation_data.id);
id = creation_data.id;
}
sched_aps_join_parms join_data;
memset(&join_data, 0, sizeof(join_data));
join_data.id = id;
join_data.pid = 0;
join_data.tid = 0;
ret = SchedCtl( SCHED_APS_JOIN_PARTITION, &join_data, sizeof(join_data));
if (ret != EOK)
{
printf("Couldn’t join partition %d: %s (%d).\n",
join_data.id, strerror(errno), errno);
}
else
{
printf ("Process is now in partition %d.\n", join_data.id);
}
// Consume max CPU
while(1)
{
//usleep(1);
}
return 0;
}
I run both 3 instance of this program
if execute: aps show -v
the display is
+----------- CPU Time ------------+-- Critical Time --
| | Used | |
Partition name id | Budget | 0.100s 1.00s 10.0s | Budget | Used
--------------------+---------------------------------+-------------------
System 0 | 85% | 0.13% 0.07% 0.23% | 400ms | 0.000ms
DebugReserve 1 | 15% | 74.04% 73.37% 64.13% | 0ms | 0.000ms
--------------------+---------------------------------+-------------------
Total | 100% | 74.17% 73.44% 64.36% |
The budget for the "DebugReserve" partition is 15% but the program overrun the budget of 15%
what is the problem, the code or my reasoning ?Gervot Olivier(deleted)2015-01-06T16:13:33Zpost112822: Re: How to Fix the Source IP used in DNS Request sent from system.Nick Reillyhttp://community.qnx.com/sf/go/post1128222015-01-05T15:00:57Z2015-01-05T15:00:57ZHi Sajal,
The DNS request will be sent to the servers specified in /etc/resolv.conf and the source address used will be the one that best routes to that address. As there cannot be multiple addresses in the same subnet, one address will always be chosen to access a particular DNS server.
Can you explain in a bit more detail the issue that you are facing?
Regards,
Nick.Nick Reilly2015-01-05T15:00:57Zpost112795: How to Fix the Source IP used in DNS Request sent from system.Sajal Malhotra(deleted)http://community.qnx.com/sf/go/post1127952014-12-30T07:36:59Z2014-12-30T07:36:59ZHi,
We were developing an application which requires DNS Resolution for certain configured URIs.
Now i understand that this can be done by using APIs gethostbyname or getaddrinfo.
However we have an additional problem to handle. The DNS request sent to the DNS server should use a fixed known Source IP address in the packets sent towards DNS Server. Is it possible to force/specify DNS Service to use a fixed Source IP?
We have multiple logical IP addresses configured on an interface. We just want that DNS resolution should somehow be carried out using 1 specific Source IP address in the pkts sent towards DNS Server.
BR
SajalSajal Malhotra(deleted)2014-12-30T07:36:59Zpost112718: Ad-Hoc mode for wl1271Steve Iribarne(deleted)http://community.qnx.com/sf/go/post1127182014-12-17T17:54:13Z2014-12-17T17:54:13ZAnyone ever tried to get this to work? I've seen conflicting reports out there about this chip/driver even supporting adhoc mode.
Thanks.Steve Iribarne(deleted)2014-12-17T17:54:13Zpost112363: XML ParserGervot Olivier(deleted)http://community.qnx.com/sf/go/post1123632014-11-18T10:44:21Z2014-11-18T10:44:21ZHi
I have to read a XML file on QNX
1 ) The parser must written in C code
2 ) The XML parser must be safety (SIL 1 requirements )
Is there an existing parser for theses cases ?
ThankGervot Olivier(deleted)2014-11-18T10:44:21Zpost112074: Re: Where is libspi-master?Mate Szarvashttp://community.qnx.com/sf/go/post1120742014-10-21T00:45:19Z2014-10-21T00:45:19ZPlease have a look into the prebuilt directory of your BSP if you have not yet done so.
On Oct 21, 2014, at 12:54 AM, Derek Ross <community-noreply@qnx.com> wrote:
> The online QNX help says: "The libspi-master library provides an interface to mediate access to the SPI master." However I can't seem to find the file anywhere after numerous greps.
>
> The hardware is based on the IMX6 SabreLite board.
>
>
>
> _______________________________________________
>
> General
> http://community.qnx.com/sf/go/post112072
> To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.comMate Szarvas2014-10-21T00:45:19Zpost112072: Where is libspi-master?Derek Ross(deleted)http://community.qnx.com/sf/go/post1120722014-10-20T15:54:33Z2014-10-20T15:54:33ZThe online QNX help says: "The libspi-master library provides an interface to mediate access to the SPI master." However I can't seem to find the file anywhere after numerous greps.
The hardware is based on the IMX6 SabreLite board.Derek Ross(deleted)2014-10-20T15:54:33Zpost111990: Re: GPMI NAND driverDerek Ross(deleted)http://community.qnx.com/sf/go/post1119902014-10-08T19:32:34Z2014-10-08T19:32:34ZForgot to mention that our development is based on the SabreLite board.Derek Ross(deleted)2014-10-08T19:32:34Zpost111989: GPMI NAND driverDerek Ross(deleted)http://community.qnx.com/sf/go/post1119892014-10-08T19:29:49Z2014-10-08T19:29:49ZHello,
Is there a QNX driver for a GPMI NAND controller? The specific chip is the MT29F16G08 .
I downloaded various BSPs and grepped through them, but could only find a few defines, but no actual code.
Thanks!Derek Ross(deleted)2014-10-08T19:29:49Zpost111913: Re: GPIO CrownbayWill Moore(deleted)http://community.qnx.com/sf/go/post1119132014-09-29T11:39:20Z2014-09-29T11:39:20ZHi Ivan,
We are using the Kontron COMe mTT10 which has the EG20T topcliff PCH (not sure what board you were using) and uses the EG20T GPIO to provide 4 off GPI and 4 off GPO which, to add confusion, share pins with an SD card interface. Anything you have to help would be appreciated, known working code for the EG20T GPIO gets me one step closer to working GPIO on the COMe mTT10 ...
Thanks!Will Moore(deleted)2014-09-29T11:39:20Zpost111912: Re: GPIO CrownbayIvan Cayonhttp://community.qnx.com/sf/go/post1119122014-09-29T11:13:13Z2014-09-29T11:13:13ZHi,
Yes, I don't have the source code with me but I could use INPUT and OUTPUT. If you are interested I can take a look at the code to tell you how I did it
Best Regards !Ivan Cayon2014-09-29T11:13:13Zpost111911: Re: GPIO CrownbayWill Moore(deleted)http://community.qnx.com/sf/go/post1119112014-09-29T10:45:58Z2014-09-29T10:45:58ZHi Iván, did you ever get the GPIO working?Will Moore(deleted)2014-09-29T10:45:58Zpost111888: Re: x86 6.6.0 APIC BSP terminal issueJaychander Thiru(deleted)http://community.qnx.com/sf/go/post1118882014-09-26T08:26:44Z2014-09-26T08:26:44ZSorted after setting
TERM=qansi-m
in terminalJaychander Thiru(deleted)2014-09-26T08:26:44Zpost111887: x86 6.6.0 APIC BSP terminal issueJaychander Thiru(deleted)http://community.qnx.com/sf/go/post1118872014-09-26T08:21:52Z2014-09-26T08:21:52ZHi
I have got a x86 board with QNX 6.6.0 BSP booted.
I am having trouble executing a ncurses based application on it. The error i am getting is:
Error opening terminal: qansi.
I tried the default ifs image to boot the board.
Adding this line
/usr/lib/terminfo/q/qansi-m=C:\qnx660\target\qnx6\usr\lib\terminfo\q\qansi-m
in build file does not help either.
Any pointers is greatly appareciated.
RegardsJaychander Thiru(deleted)2014-09-26T08:21:52Zpost111696: Re: Problem with USB on Atom based SBC and QNX 6.6 [solved]Eli Kozikarohttp://community.qnx.com/sf/go/post1116962014-09-11T05:17:44Z2014-09-11T05:17:44ZOne BIOS setting did the trick. In LPSS & SCC select ACPI mode.
LPSS stands for Low Power SubSystem and SCC stands for Storage Control Cluster.Eli Kozikaro2014-09-11T05:17:44Zpost111640: Problem with USB on Atom based SBC and QNX 6.6Eli Kozikarohttp://community.qnx.com/sf/go/post1116402014-09-04T20:18:59Z2014-09-04T20:18:59ZI'm hoping to get some help with a new Atom SBC from Versalogic. Running QNX 6.6 the USB is not working well. USB keyboard is sluggish and drops some keystrokes. Writing to a USB mass storage is very slow.
Board is booted with the generic x86 bios BSP.
I would suspect the board but Windows 7 and Ubuntu 14.04 have no issues with USB on the same board.
Any suggestions?
Thanks,
EliEli Kozikaro2014-09-04T20:18:59Zpost111608: Re: io-pkt avb library APINick Reillyhttp://community.qnx.com/sf/go/post1116082014-09-02T17:15:31Z2014-09-02T17:15:31ZThe lsm-avb.so is still changing as we add support for more of the AVB protocols. This is the current state.
The API isn't through sockets, instead lsm-avb.so runs its own resource manager under <SOCK prefix>/dev/socket/avb as this enables us to meet the low latency requirements in some AVB scenarios even when the main io-pkt resource manager is dealing with another message.
Note that an AVB enabled Ethernet driver is also required, this consists of supporting a few new ioctls along with supporting the multiple queues, shapers and time stamping that is required for AVB.
Under the avb directory there is a directory of all the interfaces that may be AVB capable. Under each interface is a "time" entry used for 802.1AS packets (driven by ptpd-avb) and then individual streams are opened and closed with the stream name containing the parameters specifying the stream.
Stream name is formed as:
"DestMac:VLAN:Priority:Subtype:StreamId:BitDepth:SampleRate:NumSamples:NumVoices"
1722 and 1722a Draft6 streams are currently supported and a clock reference stream can also be specified on the command line. Whole packets worth of data are meant to be written and read rather than reading and writing a partial packets. The lsm-avb.so adds the header to the data and transmits on a talker stream with the correct timestamp. For listener streams the data is buffered until the presentation timestamp is reached.
We do also have an io-audio driver that makes use of the lsm-avb.so.Nick Reilly2014-09-02T17:15:31Zpost111600: io-pkt avb library APIMarcin Górski(deleted)http://community.qnx.com/sf/go/post1116002014-09-01T09:32:52Z2014-09-01T09:32:52ZHello,
While browsing QNX 6.6.0 libraries I came across a library called "lsm-avb.so". I assume that this library can be loaded to add necessary protocols to socket API in order to enable AVB traffic. Is there a place where I can find API to that library?Marcin Górski(deleted)2014-09-01T09:32:52Zpost111511: Re: Running two drivers at same time, e1000 and mx6xSean Boudreau(deleted)http://community.qnx.com/sf/go/post1115112014-08-20T21:34:18Z2014-08-20T21:34:18ZStart both drivers in the same instance of io-pkt rather than starting two:
io-pkt -d e1000 -d dmx6x ...
Sent from my BlackBerry 10 smartphone on the Rogers network.
Original Message
From: Derek Ross
Sent: Wednesday, August 20, 2014 4:39 PM
To: general-networking
Reply To: general-networking@community.qnx.com
Subject: Running two drivers at same time, e1000 and mx6x
Hello,
I can run an e1000 networking driver, it works properly. The command is:
io-pkt-v4 -de1000 ...etc...
ifconfig shows a wm0 device, and ping and ftp operate properly.
But then if I run an MX6X ethernet driver with the command:
io-pkt-v4 -dmx6x speed=100,duplex=1
Then the wm0 device is gone, replaced with fec0. Also ftp and ping stop working.
However, if I kill the relevant process for fec0, then the wm0 interface re-appears, and ftp and ping start working again.
Should it be possible to run both of these in parallel? For example, two types of NIC hardware might be populated on the board.
Thanks!
_______________________________________________
General
http://community.qnx.com/sf/go/post111508
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.comSean Boudreau(deleted)2014-08-20T21:34:18Zpost111508: Running two drivers at same time, e1000 and mx6xDerek Ross(deleted)http://community.qnx.com/sf/go/post1115082014-08-20T20:39:44Z2014-08-20T20:39:44ZHello,
I can run an e1000 networking driver, it works properly. The command is:
io-pkt-v4 -de1000 ...etc...
ifconfig shows a wm0 device, and ping and ftp operate properly.
But then if I run an MX6X ethernet driver with the command:
io-pkt-v4 -dmx6x speed=100,duplex=1
Then the wm0 device is gone, replaced with fec0. Also ftp and ping stop working.
However, if I kill the relevant process for fec0, then the wm0 interface re-appears, and ftp and ping start working again.
Should it be possible to run both of these in parallel? For example, two types of NIC hardware might be populated on the board.
Thanks!Derek Ross(deleted)2014-08-20T20:39:44Zpost111434: Re: Manage socket during cable disconnectionGervot Olivier(deleted)http://community.qnx.com/sf/go/post1114342014-08-14T12:36:13Z2014-08-14T12:36:13ZThank for your reply
I ll try this
OlivierGervot Olivier(deleted)2014-08-14T12:36:13Zpost111408: Re: Manage socket during cable disconnectionNick Reillyhttp://community.qnx.com/sf/go/post1114082014-08-13T14:22:12Z2014-08-13T14:22:12ZIf you just want to look at the link state of the node then it is reported by ifconfig and can be fetched programatically by doing a SIOCGIFDATA and looking at the ifdata.ifdr_data.ifi_link_state
N.B. This only reports the node link state, if the path between the two TCP endpoints is broken somewhere in the middle then the node link state may still be up.
I think what you are actually looking for is the TCP Keepalive mechanism, please see our documentation and example code for it:
http://www.qnx.com/developers/docs/660/index.jsp?topic=%2Fcom.qnx.doc.neutrino.lib_ref%2Ftopic%2Fg%2Fgetsockopt.html&anchor=getsockopt__KeepaliveNick Reilly2014-08-13T14:22:12Zpost111402: Re: io-pkt-v4-hc (6.5.0SP1) memory leak??Hugh Brownhttp://community.qnx.com/sf/go/post1114022014-08-13T13:20:55Z2014-08-13T13:20:55ZOK, thanks.
On 2014/8/13, 9:19 AM, "Steve Iribarne" <community-noreply@qnx.com> wrote:
>It seems to be much better. So I'd say this is now solved.
>
>
>
>
>
>_______________________________________________
>
>General
>http://community.qnx.com/sf/go/post111401
>To cancel your subscription to this discussion, please e-mail
>general-networking-unsubscribe@community.qnx.comHugh Brown2014-08-13T13:20:55Zpost111401: Re: io-pkt-v4-hc (6.5.0SP1) memory leak??Steve Iribarne(deleted)http://community.qnx.com/sf/go/post1114012014-08-13T13:19:40Z2014-08-13T13:19:40ZIt seems to be much better. So I'd say this is now solved.Steve Iribarne(deleted)2014-08-13T13:19:40Zpost111398: Manage socket during cable disconnectionGervot Olivier(deleted)http://community.qnx.com/sf/go/post1113982014-08-13T08:49:34Z2014-08-13T08:49:34ZHi
I have to manage the case of the cable disconnection. Then it occured the "send" function work a little time (buffer filling) then the "send" function block during a very long time out (many minutes).
Is there a way to detect this case (cable disconnection) ?
Is there a way to manage this timeout ?
Thank
OlivierGervot Olivier(deleted)2014-08-13T08:49:34Zpost111378: Re: io-pkt-v4-hc (6.5.0SP1) memory leak??Steve Iribarne(deleted)http://community.qnx.com/sf/go/post1113782014-08-11T18:10:00Z2014-08-11T18:10:00ZThat driver looks much better.. I'll be testing it now in my "production" world.
I will report when/if I find something.
In addition I will report if everything works.Steve Iribarne(deleted)2014-08-11T18:10:00Zpost111374: Re: io-pkt-v4-hc (6.5.0SP1) memory leak??Hugh Brownhttp://community.qnx.com/sf/go/post1113742014-08-11T15:56:32Z2014-08-11T15:56:32ZDriver attached. This version is a native io-pkt driver.
On 2014/8/11, 11:51 AM, "Steve Iribarne" <community-noreply@qnx.com> wrote:
>ARM
>
>Thanks.. that would be fantastic!!
>
>
>
>
>_______________________________________________
>
>General
>http://community.qnx.com/sf/go/post111373
>To cancel your subscription to this discussion, please e-mail
>general-networking-unsubscribe@community.qnx.comHugh Brown2014-08-11T15:56:32Zpost111373: Re: io-pkt-v4-hc (6.5.0SP1) memory leak??Steve Iribarne(deleted)http://community.qnx.com/sf/go/post1113732014-08-11T15:51:08Z2014-08-11T15:51:08ZARM
Thanks.. that would be fantastic!!Steve Iribarne(deleted)2014-08-11T15:51:08Zpost111372: Re: io-pkt-v4-hc (6.5.0SP1) memory leak??Hugh Brownhttp://community.qnx.com/sf/go/post1113722014-08-11T15:45:53Z2014-08-11T15:45:53ZThere have been numerous updates to the Asix driver, so I can send you an
experimental version. What platform are you running on - x86 or ARM?
On 2014/8/11, 11:38 AM, "Steve Iribarne" <community-noreply@qnx.com> wrote:
>io-pkt-v4-hc -ptcpip prefix=/alt & <- this is in my build shell, this
>one doesn't ever leak.
>
>
>io-pkt-v4-hc -dasix -ptcpip prefix=/alt2 <- this is the one that leaks.
>
> use -i io-pkt-v4-hc
>NAME=io-pkt-v4-hc
>DESCRIPTION=TCP/IP protocol module.
>DATE=2012/06/20-13:36:20-EDT
>STATE=stable
>HOST=gusbuild4
>USER=builder
>VERSION=6.5.0
>TAGID=650SP1-166
>
>To simplify stuff I'm only loading this one right now. And I have no
>telnet either, just dhcp. It's been running for about 15 minutes no leak
>yet.
>
>I'll give it 5 more minutes and then start a telnet session to see if
>that causes the leak.
>
>
>
>
>
>
>_______________________________________________
>
>General
>http://community.qnx.com/sf/go/post111371
>To cancel your subscription to this discussion, please e-mail
>general-networking-unsubscribe@community.qnx.comHugh Brown2014-08-11T15:45:53Zpost111371: Re: io-pkt-v4-hc (6.5.0SP1) memory leak??Steve Iribarne(deleted)http://community.qnx.com/sf/go/post1113712014-08-11T15:38:45Z2014-08-11T15:38:45Zio-pkt-v4-hc -ptcpip prefix=/alt & <- this is in my build shell, this one doesn't ever leak.
io-pkt-v4-hc -dasix -ptcpip prefix=/alt2 <- this is the one that leaks.
use -i io-pkt-v4-hc
NAME=io-pkt-v4-hc
DESCRIPTION=TCP/IP protocol module.
DATE=2012/06/20-13:36:20-EDT
STATE=stable
HOST=gusbuild4
USER=builder
VERSION=6.5.0
TAGID=650SP1-166
To simplify stuff I'm only loading this one right now. And I have no telnet either, just dhcp. It's been running for about 15 minutes no leak yet.
I'll give it 5 more minutes and then start a telnet session to see if that causes the leak.Steve Iribarne(deleted)2014-08-11T15:38:45Zpost111370: Re: io-pkt-v4-hc (6.5.0SP1) memory leak??Gervais Mulongoyhttp://community.qnx.com/sf/go/post1113702014-08-11T15:32:36Z2014-08-11T15:32:36ZWhich devnp drivers are you using and can you confirm the version by
copying the output of "use -i" for each?Gervais Mulongoy2014-08-11T15:32:36Zpost111369: Re: io-pkt-v4-hc (6.5.0SP1) memory leak??Steve Iribarne(deleted)http://community.qnx.com/sf/go/post1113692014-08-11T15:15:58Z2014-08-11T15:15:58ZThanks for the quick replies.
Gervais --
Yes there is "some" networking traffic.
I have a dhcp client running on both interfaces.
I have telnet running on one of the interfaces.
I'll look at the unconfigure to see if that yields anything
Nick --
This is a leak. Memory will keep disappearing until the system "crashes". I can't fork, I can't do anything.
I'll check the netstat -m
no pppSteve Iribarne(deleted)2014-08-11T15:15:58Zpost111368: Re: io-pkt-v4-hc (6.5.0SP1) memory leak??Nick Reillyhttp://community.qnx.com/sf/go/post1113682014-08-11T15:07:51Z2014-08-11T15:07:51Zio-pkt uses a pool allocation mechanism that at startup can slowly grow until a steady state is achieved after a few minutes. Is this "leak" shortly after startup or is it once io-pkt has been running for a while?
Also check with "netstat -m" to see if the memory leak is perhaps an mbuf leak.
Do you have any ppp interfaces? We have addressed a leak in ppp dial on demand.Nick Reilly2014-08-11T15:07:51Zpost111367: Re: io-pkt-v4-hc (6.5.0SP1) memory leak??Gervais Mulongoyhttp://community.qnx.com/sf/go/post1113672014-08-11T15:07:18Z2014-08-11T15:07:18ZIs there any type of networking activity occurring on those two
instances? Or are you seeing the increase in memory consumption with the
interfaces configured or unconfigured?Gervais Mulongoy2014-08-11T15:07:18Zpost111366: io-pkt-v4-hc (6.5.0SP1) memory leak??Steve Iribarne(deleted)http://community.qnx.com/sf/go/post1113662014-08-11T15:02:22Z2014-08-11T15:02:22ZI'm seeing about a 4K memory leak from io-pkt-v4-hc.
I have QNX 6.5.0 SP1 installed.
I have three io-pkt-v4-hc loaded. Two of them show memory leaks...
1. Connected to enet.
2. Conneded to wifi.
# showmem -P
Process listing (Total, Code, Data, Heap, Stack, Other)
1097728 106496 53248 843776 94208 0 24594 io-pkt-v4-hc
3297280 974848 57344 2166784 98304 0 122906 io-pkt-v4-hc
a few minutes later.
1105920 106496 53248 851968 94208 0 24594 io-pkt-v4-hc
3305472 974848 57344 2174976 98304 0 122906 io-pkt-v4-hc
clearly we can see that the io-pkt-v4-hc's Heap is growing.
Any help would be appreciated.
-stvSteve Iribarne(deleted)2014-08-11T15:02:22Zpost111067: Re: How to configure ntp?andi Smith(deleted)http://community.qnx.com/sf/go/post1110672014-07-16T10:55:35Z2014-07-16T10:55:35ZI had a very similar issue to the one described above. I was using NTP to synchronize to a local GPS NTP server (http://www.timetoolsglobal.com/information/gps-ntp-server/) and had similar results to above - specifically synchronizing to a stratum 16 server. It turns out that 16 is an invalid stratum indicating that the NTP server is not synchronized. Try specifying a local clock stratum of less than 16 - say 10. It should then be OK.
Andiandi Smith(deleted)2014-07-16T10:55:35Zpost110840: Re: Verifying for a hardware loopback connectionPrashant Singh Pariharhttp://community.qnx.com/sf/go/post1108402014-06-24T11:16:27Z2014-06-24T11:16:27ZI tried the method you suggested, as I verified by checking for 'ls /alt1' and 'ls /alt2' but I am not sure that they are still in same layer, as when I tried I got following o/p:
I tried to ping 192.168.2.14 (wm0 interface).
# SOCK=/alt2 ping 192.168.2.14
PING 192.168.2.14 (192.168.2.14): 56 data bytes
ping: sendto: No route to host
ping: sendto: No route to host
ping: sendto: No route to host
ping: sendto: No route to host
here '/alt2' is assigned to en1 ( physically USB to ethernet dongle) with IP as 192.168.3.11
Both the interfaces are physically connected.
This doesn't works for me.
Any suggestions will be helpful in this respect?
Thanks,
PrashantPrashant Singh Parihar2014-06-24T11:16:27Zpost110754: Re: Verifying for a hardware loopback connectionNick Reillyhttp://community.qnx.com/sf/go/post1107542014-06-18T17:26:59Z2014-06-18T17:26:59ZPacket filtering with lsm-pf is different from the BPF API. However BPF is still going to require root access.Nick Reilly2014-06-18T17:26:59Zpost110753: Re: Verifying for a hardware loopback connectionPrashant Singh Pariharhttp://community.qnx.com/sf/go/post1107532014-06-18T17:02:33Z2014-06-18T17:02:33ZThanks for replying!
I tried to implement Packet Filtering before this posting this problem in Forum, but as it is a Target Board, with very limited permission, and that needs other configuration to be setup like pf.conf etc to use which I am not able to configure, thus that possibility is ruled out.Prashant Singh Parihar2014-06-18T17:02:33Zpost110743: Re: Verifying for a hardware loopback connectionNick Reillyhttp://community.qnx.com/sf/go/post1107432014-06-18T12:30:26Z2014-06-18T12:30:26ZDoes it have to be a ping? Using BPF it's possible to send a particular packet and also receive packets. It would be quite simple to build a ping-like application.Nick Reilly2014-06-18T12:30:26Zpost110742: Re: Verifying for a hardware loopback connectionGervais Mulongoyhttp://community.qnx.com/sf/go/post1107422014-06-18T11:27:57Z2014-06-18T11:27:57ZIf your interfaces are on the same layer 3 network then this won't work
since all packets will always leave from only one interface because of
how the routing table works. To work around this you would either need
make sure the interfaces are on different layer 3 networks and setup
static routes for each OR you will need to run two instances of io-pkt,
one for each interface then you can have both interfaces on the same
layer 3 - you will also need to give set io-pkt option "-ptcpip
prefix=/altX" (where X is the instance number) for each instance so that
applications can target a specific instance:
SOCK=/alt1 ping <destination address2>
SOCK=/alt2 ping <destination address1>
See the online documentation for io-pkt for details.
On 14-06-18 06:14 AM, Prashant Singh Parihar wrote:
> Hi,
>
> I had a requirement in which I need to verify for a hardware loopback connection running in QNX on a Target Board. In order to test for the loopback connection I need to ping via one interface (assume en0) to other interface ( assume wm0 ) and vice versa. The ping should only respond if the two interfaces are physically connected, and shouldn't respond when not connected physically.
> I am not able to find any suitable method to implement this, as QNX doesnt have support for ping via interface as in Linux using '-I' as selected interface neither it has support for IP Tables in my knowledge.
> Any guidance to implement hardware loopback connection will be of great help.
>
> Thanks,
> Prashant.
>
>
>
> _______________________________________________
>
> General
> http://community.qnx.com/sf/go/post110740
> To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.comGervais Mulongoy2014-06-18T11:27:57Zpost110740: Verifying for a hardware loopback connectionPrashant Singh Pariharhttp://community.qnx.com/sf/go/post1107402014-06-18T10:14:44Z2014-06-18T10:14:44ZHi,
I had a requirement in which I need to verify for a hardware loopback connection running in QNX on a Target Board. In order to test for the loopback connection I need to ping via one interface (assume en0) to other interface ( assume wm0 ) and vice versa. The ping should only respond if the two interfaces are physically connected, and shouldn't respond when not connected physically.
I am not able to find any suitable method to implement this, as QNX doesnt have support for ping via interface as in Linux using '-I' as selected interface neither it has support for IP Tables in my knowledge.
Any guidance to implement hardware loopback connection will be of great help.
Thanks,
Prashant.Prashant Singh Parihar2014-06-18T10:14:44Zpost110491: Re: Timing resolution for tcpdump / libpcapArmin Steinhoffhttp://community.qnx.com/sf/go/post1104912014-05-27T09:37:52Z2014-05-27T09:37:52ZJ Sinton wrote:
> Thank you for pointing in that direction.
Just a proposal for an other direction ... a solution could be:
http://community.qnx.com/sf/discussion/do/listPosts/projects.networking/discussion.drivers.topc24497
"testpmd" is using pollmode drivers from Intel for Intel adapters. These
drivers are UIO based Linux drivers (user space drivers) ported to QNX6.x
Please have also a look to this;
http://community.qnx.com/sf/discussion/do/listPosts/projects.networking/discussion.drivers.topc24497?_pagenum=2
You will get a time resolution in the range of microseconds ...
--Armin
>
> It seems perhaps I was experiencing two problems with different causes.
>
> I wrote a beautiful and inspiring post that had all the details, but it just vanished. I'm afraid the replacement will have to be quite a bit shorter.
>
> Following the above suggestion, I found a good post that explained exactly the resolution issue of tcpdump, unfortunately searching for it again I can't find it a second time. But around 8 to 10mS is the limit, so trying to use tcpdump to see what's happening at a finer resolution is not currently useful.
>
> I should have noticed that the 'clumping' in tcpdump was different from the 'clumping' I saw (I had confirmed the messages were arriving very close together - not just timestamped together - by using the equivalent of clockcycles()). The tcpdump grouping was multiple messages receiving the same timestamp because of limited resolution, where the pcap grouping is for another reason.
>
> There is a parameter to pcap open live that gives the milliseconds to wait on receive. However, entering zero does NOT cause it to return immediately, and it appears that QNX correctly implements the zero behaviour defined by BSD, which is that on zero it will return after one buffer - how many messages that is depends on the size of the buffer you specify, and how big incoming messages are. If all messages were more than 1/2 the size of the buffer, then it would work as 'immediate'.
>
> But experimenting with the BPF alternative led me eventually to this post:
>
> http://community.qnx.com/sf/discussion/do/listPosts/projects.networking/discussion.technology.topc3493
>
> ... which led to ...
>
> http://hostap.epitest.fi/wpa_supplicant/
>
> I added this ioctl after the pcap open:
> unsigned int iOn = 1;
> if( 0 > ioctl( pcap_fileno( g_psPlatformPcapDesc ), BIOCIMMEDIATE, &iOn ) )
> {
> fprintf(stderr, "Error: %.40s: %d: Cannot enable immediate mode on interface %s\n", __func__, __LINE__, strerror(errno)); // TODO ideally add interface name here
> return -1;
> }
>
> Timing of individual incoming messages was within 500uS of the expected value. I actually then had more problem with sending, as for some reason I was getting up to 900uS of jitter (as measured by clock cycles around the sending function). I'm guessing this is a result of needing to understand more now of priorities etc. on QNX, as I can get normally better than that on Linux and Windows. I'd hope for about 10X better than that, maybe with using processor affinity etc. (though on this QNX platform I only have two cores, so I was hoping QNX magic would allow me to avoid dedicating a core to this).
>
> In both cases, the timing limits above were exceeded about 30 times in the first 10 million 5mS message group tests, but nearly 40 million 5mS frames since then, all send and receive messages have been under the above limits without exception. More work to do to understand why, but the original issue is solved.
>
> Summary:
>
> 1. It would be misleading to use tcpdump on 6.5 to investigate message resolution finer than 10mS,
>
> 2. To get immediate notification of received messages in libpcap, use a zero (some examples show -1) parameter for the receive wait time, and use an ioctl with BIOCIMMEDIATE on the handle when it is opened.
>
> Thanks!
>
>
>
> _______________________________________________
>
> General
> http://community.qnx.com/sf/go/post110490
> To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.com
>Armin Steinhoff2014-05-27T09:37:52Zpost110490: Re: Timing resolution for tcpdump / libpcapJ Sinton(deleted)http://community.qnx.com/sf/go/post1104902014-05-26T15:04:00Z2014-05-26T15:04:00ZThank you for pointing in that direction.
It seems perhaps I was experiencing two problems with different causes.
I wrote a beautiful and inspiring post that had all the details, but it just vanished. I'm afraid the replacement will have to be quite a bit shorter.
Following the above suggestion, I found a good post that explained exactly the resolution issue of tcpdump, unfortunately searching for it again I can't find it a second time. But around 8 to 10mS is the limit, so trying to use tcpdump to see what's happening at a finer resolution is not currently useful.
I should have noticed that the 'clumping' in tcpdump was different from the 'clumping' I saw (I had confirmed the messages were arriving very close together - not just timestamped together - by using the equivalent of clockcycles()). The tcpdump grouping was multiple messages receiving the same timestamp because of limited resolution, where the pcap grouping is for another reason.
There is a parameter to pcap open live that gives the milliseconds to wait on receive. However, entering zero does NOT cause it to return immediately, and it appears that QNX correctly implements the zero behaviour defined by BSD, which is that on zero it will return after one buffer - how many messages that is depends on the size of the buffer you specify, and how big incoming messages are. If all messages were more than 1/2 the size of the buffer, then it would work as 'immediate'.
But experimenting with the BPF alternative led me eventually to this post:
http://community.qnx.com/sf/discussion/do/listPosts/projects.networking/discussion.technology.topc3493
... which led to ...
http://hostap.epitest.fi/wpa_supplicant/
I added this ioctl after the pcap open:
unsigned int iOn = 1;
if( 0 > ioctl( pcap_fileno( g_psPlatformPcapDesc ), BIOCIMMEDIATE, &iOn ) )
{
fprintf(stderr, "Error: %.40s: %d: Cannot enable immediate mode on interface %s\n", __func__, __LINE__, strerror(errno)); // TODO ideally add interface name here
return -1;
}
Timing of individual incoming messages was within 500uS of the expected value. I actually then had more problem with sending, as for some reason I was getting up to 900uS of jitter (as measured by clock cycles around the sending function). I'm guessing this is a result of needing to understand more now of priorities etc. on QNX, as I can get normally better than that on Linux and Windows. I'd hope for about 10X better than that, maybe with using processor affinity etc. (though on this QNX platform I only have two cores, so I was hoping QNX magic would allow me to avoid dedicating a core to this).
In both cases, the timing limits above were exceeded about 30 times in the first 10 million 5mS message group tests, but nearly 40 million 5mS frames since then, all send and receive messages have been under the above limits without exception. More work to do to understand why, but the original issue is solved.
Summary:
1. It would be misleading to use tcpdump on 6.5 to investigate message resolution finer than 10mS,
2. To get immediate notification of received messages in libpcap, use a zero (some examples show -1) parameter for the receive wait time, and use an ioctl with BIOCIMMEDIATE on the handle when it is opened.
Thanks!J Sinton(deleted)2014-05-26T15:04:00Zpost110486: Re: Timing resolution for tcpdump / libpcapGervais Mulongoyhttp://community.qnx.com/sf/go/post1104862014-05-26T12:15:56Z2014-05-26T12:15:56ZI will start by saying this is a known issue and there's already a
solution in the works.
1) Unfortunately io-pkt is deciding on the timing resolution of the
timestamps this affects pcap and tcpdump - there isn't anyway to
workaround it at this time
2) The timing resolution doesn't affect packet reception/transmission it
only affects the timestamp - you can still use BPF, for example, to
monitor the packets as they arrive and stamp them yourself.
The timing resolution is decided by io-pkt
On 14-05-23 04:11 PM, J Sinton wrote:
> Two questions:
>
> 1. Where could this timing granularity be coming from, and is there any way to configure or code around it?
>
> 2. Using some other approach, such as BPF (seems that may be old) or lsm-nraw, can anyone confirm that they are able to receive Ethernet messages at the application level with timing granularity in the 200uS or better range? What general hardware/OS/software approach did you use to achieve it?Gervais Mulongoy2014-05-26T12:15:56Zpost110480: Timing resolution for tcpdump / libpcapJ Sinton(deleted)http://community.qnx.com/sf/go/post1104802014-05-23T20:11:00Z2014-05-23T20:11:00ZHi,
I have an application that must send and receive various UDP packets (including unicast, broadcast, multicast - it's for a test simulator) within fairly small time windows (500uS or less). I am currently desktop test hardware QNX localhost 6.5.0 2010/07/09-14:44:03EDT x86pc x86. The specific Ethernet adapter info is below.
By setting the tick resolution to a small value (around 10uS), and setting the NIC driver in enum to promiscuous mode, and hand-tuning the delay in a timer calls, I can send UDP packets as I need using libpcap, which is what I've done on other non-QNX platforms.
However, when I use libpcap to receive packets, it appears that packets are clumped together, and only delivered on specific time intervals (about every 8.39mS on this system). I've tried using both pcap_loop and pcap_dispatch, changing the priority of the receiving thread all the way to 63 (priority seems to make no difference, high or low), and verifying using Wireshark from another platform that the incoming packets are at the expected times and are properly separated in time. The load on the machine during testing is typically very low - hogs reports idle in very high 90s, and the problem persists even when sending very few packets (e.g. one every 5mS). All time measurement in the application code are using CLOCK_MONOTONIC. nanosleep is used on the sending side between outgoing messages, and the receiver is message driven from pcap_loop or pcap_dispatch from a high-priority thread with nothing else (no GUI) running on the box.
When I tried to investigate further on the machine with tcpdump, I discovered that the messages shown there seem to be subject to the same clumping: Groups of messages all have the same timestamp, and groups of messages all have time gaps of about 8.4mS.
Knowing little about QNX, it looks like there is timing granularity (<>10mS) that affects both libpcap and tcpdump, even when the granularity at the user application level is successfully much less (<>10uS).
libpcap normally works wonderfully for what I need once the OS tick is OK (Linux and Windows), but I just need to deliver the application and I'm not tied to it if this is a difficult-to-surmount libpcap issue.
Two questions:
1. Where could this timing granularity be coming from, and is there any way to configure or code around it?
2. Using some other approach, such as BPF (seems that may be old) or lsm-nraw, can anyone confirm that they are able to receive Ethernet messages at the application level with timing granularity in the 200uS or better range? What general hardware/OS/software approach did you use to achieve it?
Many thanks for any suggestions for solutions or further investigation. I'm stuck!
Best regards,
John
Ethernet driver / NIC info
io-pkt-v4-hc -d speedo promiscuous -p tcpip
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 .......................... EnabledJ Sinton(deleted)2014-05-23T20:11:00Zpost110220: Re: Duplicate packets and foward into two NICGervais Mulongoyhttp://community.qnx.com/sf/go/post1102202014-05-08T12:11:49Z2014-05-08T12:11:49ZI am not sure I understand what you are asking, but I attached and
updated and simpler version of the port mirroring module. Again it is
provided as-is, but it works a lot better than my initial version.
On 14-05-08 03:22 AM, rich lee wrote:
> Use new program to send two NIC is OK now. But when I break the original line, the mirror line also stop to work. I hope when i break the original line , the mirror line can still transmit. How can i do?
>
>
>
> _______________________________________________
>
> General
> http://community.qnx.com/sf/go/post110211
> To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.comGervais Mulongoy2014-05-08T12:11:49Zpost110211: Re: Duplicate packets and foward into two NICrich lee(deleted)http://community.qnx.com/sf/go/post1102112014-05-08T07:22:03Z2014-05-08T07:22:03ZUse new program to send two NIC is OK now. But when I break the original line, the mirror line also stop to work. I hope when i break the original line , the mirror line can still transmit. How can i do?rich lee(deleted)2014-05-08T07:22:03Zpost109729: Re: RE: RE: RE: gps coordinatesmarco spinetti(deleted)http://community.qnx.com/sf/go/post1097292014-04-01T14:50:01Z2014-04-01T14:50:01ZI could try to listen to socket opened by gpsd or similar in the MMI.
Using qnx how can I find opened sockets and runnings processes?
Can I run these commands?
ps auxww > $SDPath/f1.txt || true
ps -elfww > $SDPath/f2.txt || true
netstat -an > $SDPath/f3.txt || truemarco spinetti(deleted)2014-04-01T14:50:01Zpost109726: RE: RE: RE: gps coordinatesMario Charesthttp://community.qnx.com/sf/go/post1097262014-04-01T13:06:46Z2014-04-01T13:06:46ZYou could but that will most probably interfere with what ever software is using the gps.
-----Message d'origine-----
De : marco spinetti [mailto:community-noreply@qnx.com]
Envoyé : Tuesday, April 01, 2014 9:12 AM
À : general-networking
Objet : Re: RE: RE: gps coordinates
Ok.
It is clear.
Anyway can I install in sdcard a daemon (for example gpsd) to read gps coordinates?
When I insert an sdcard I'm able to read it using:
#!/bin/ksh
sdcard=`ls /mnt|grep sdcard.*t`
SDPath=/mnt/$sdcard
mount -u $SDPath
How to execute a daemon gpsd and query it?
Thanks
_______________________________________________
General
http://community.qnx.com/sf/go/post109719
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.comMario Charest2014-04-01T13:06:46Zpost109724: Re: RE: RE: gps coordinatesmarco spinetti(deleted)http://community.qnx.com/sf/go/post1097242014-04-01T12:40:58Z2014-04-01T12:40:58ZI think I can solve my problem if I could execute command tool gpspipe from sdcard.
How can I do it?
Thanksmarco spinetti(deleted)2014-04-01T12:40:58Zpost109719: Re: RE: RE: gps coordinatesmarco spinetti(deleted)http://community.qnx.com/sf/go/post1097192014-04-01T12:11:41Z2014-04-01T12:11:41ZOk.
It is clear.
Anyway can I install in sdcard a daemon (for example gpsd) to read gps coordinates?
When I insert an sdcard I'm able to read it using:
#!/bin/ksh
sdcard=`ls /mnt|grep sdcard.*t`
SDPath=/mnt/$sdcard
mount -u $SDPath
How to execute a daemon gpsd and query it?
Thanksmarco spinetti(deleted)2014-04-01T12:11:41Zpost109662: RE: RE: gps coordinatesMario Charesthttp://community.qnx.com/sf/go/post1096622014-03-28T10:11:15Z2014-03-28T10:11:15ZQNX doesn`t provide an API for GPS and GPS are very simple device connected to serial port. Blackberry OS probably has one because it needs to be shared/managed across applications, don`t confuse the two OSes ;-)
That being said even if there was, Audi might have decided not to use it. Car systems are NOT opened , they are totally proprietary, any expectations you have could turn out to be wrong.
-----Message d'origine-----
De : marco spinetti [mailto:community-noreply@qnx.com]
Envoyé : Friday, March 28, 2014 7:01 AM
À : general-networking
Objet : Re: RE: gps coordinates
Are you telling me that they are not using an api of qnx to get them?
I supposed that there was an api to get this information.
_______________________________________________
General
http://community.qnx.com/sf/go/post109661
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.comMario Charest2014-03-28T10:11:15Zpost109661: Re: RE: gps coordinatesmarco spinetti(deleted)http://community.qnx.com/sf/go/post1096612014-03-28T10:00:43Z2014-03-28T10:00:43ZAre you telling me that they are not using an api of qnx to get them?
I supposed that there was an api to get this information.marco spinetti(deleted)2014-03-28T10:00:43Zpost109660: RE: gps coordinatesMario Charesthttp://community.qnx.com/sf/go/post1096602014-03-28T09:58:21Z2014-03-28T09:58:21ZYou would need to contact Audi or whoever made the system for them.
-----Message d'origine-----
De : marco spinetti [mailto:community-noreply@qnx.com]
Envoyé : Friday, March 28, 2014 5:57 AM
À : general-networking
Objet : gps coordinates
Hi all,
I'm trying to undestand how to develop an application web based for Audi MMI 3G system.
Audi MMi 3G unit is based on qnx 6.4 and I'd like to find a way to get gps coordinates to use in an application.
Is there any api I can call to get current gps coordinates?
Thansk
_______________________________________________
General
http://community.qnx.com/sf/go/post109659
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.comMario Charest2014-03-28T09:58:21Zpost109659: gps coordinatesmarco spinetti(deleted)http://community.qnx.com/sf/go/post1096592014-03-28T08:57:01Z2014-03-28T08:57:01ZHi all,
I'm trying to undestand how to develop an application web based for Audi MMI 3G system.
Audi MMi 3G unit is based on qnx 6.4 and I'd like to find a way to get gps coordinates to use in an application.
Is there any api I can call to get current gps coordinates?
Thanskmarco spinetti(deleted)2014-03-28T08:57:01Zpost109451: Re: tso4 and checksumHugh Brownhttp://community.qnx.com/sf/go/post1094512014-03-17T11:47:38Z2014-03-17T11:47:38ZThis has been fixed since the release of 6.6.0. I haven¹t done any
throughput tests comparing TSO4 with checksum offload, so I guess that it
is best to experiment and see which gives you the better throughput.
On 2014/3/14, 3:47 PM, "Mario Charest" <community-noreply@qnx.com> wrote:
>The doc of 6.6 didn't mention that tso4 and checksums capability couldn't
>be activated together with e1000. I was told a while ago that they
>couldn't. Seems that hasn't changed with 6.6. Steve if you are reading
>this maybe it worth mentionning in the doc.
>
>I find it strange though because on the same hardware windows driver does
>have all these options actived without any issue.
>
>What's best for cpu load and/or throughput, TSO4 or CHECKSUM ?
>
>
>
>_______________________________________________
>
>General
>http://community.qnx.com/sf/go/post109442
>To cancel your subscription to this discussion, please e-mail
>general-networking-unsubscribe@community.qnx.comHugh Brown2014-03-17T11:47:38Zpost109442: tso4 and checksumMario Charesthttp://community.qnx.com/sf/go/post1094422014-03-14T19:47:51Z2014-03-14T19:47:51ZThe doc of 6.6 didn't mention that tso4 and checksums capability couldn't be activated together with e1000. I was told a while ago that they couldn't. Seems that hasn't changed with 6.6. Steve if you are reading this maybe it worth mentionning in the doc.
I find it strange though because on the same hardware windows driver does have all these options actived without any issue.
What's best for cpu load and/or throughput, TSO4 or CHECKSUM ?Mario Charest2014-03-14T19:47:51Zpost108976: Re: Duplicate packets and foward into two NICGervais Mulongoyhttp://community.qnx.com/sf/go/post1089762014-02-21T13:05:36Z2014-02-21T13:05:36ZMy patch missed a line:
Add p = mtod(m1, char*); after line 89 (memset()). I have updated the
support ticket with this same response. See attached file which has the
correct patch.
Sorry about that.
On 14-02-20 07:24 PM, rich lee wrote:
> The pointer *p address null, so the program crash. What should I write for this pointer? Take destination ip 192.168.1.1 for example, how to fill-in this p pointer? Or, do you mean take ip from output_hook mbuf?
>
>
>
> _______________________________________________
>
> General
> http://community.qnx.com/sf/go/post108966
> To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.comGervais Mulongoy2014-02-21T13:05:36Zpost108966: Re: Duplicate packets and foward into two NICrich lee(deleted)http://community.qnx.com/sf/go/post1089662014-02-21T00:24:37Z2014-02-21T00:24:37ZThe pointer *p address null, so the program crash. What should I write for this pointer? Take destination ip 192.168.1.1 for example, how to fill-in this p pointer? Or, do you mean take ip from output_hook mbuf?rich lee(deleted)2014-02-21T00:24:37Zpost108925: Re: Duplicate packets and foward into two NICGervais Mulongoyhttp://community.qnx.com/sf/go/post1089252014-02-20T13:23:31Z2014-02-20T13:23:31ZThe issue was that in the sample provided there's an expectation that
the full frame was being passed to the output hook in this particular
case the IP packet was in the mbuf, need to set AF_INET and to set the
destination IP address so the stack resolves it and prepends the
ethernet header prior to sending the packet. See the attached sample.Gervais Mulongoy2014-02-20T13:23:31Zpost108909: Re: Duplicate packets and foward into two NICRobert Perahttp://community.qnx.com/sf/go/post1089092014-02-20T00:35:18Z2014-02-20T00:35:18ZI am interesting in this topic, too
The attached jpgs shows that the duplicated outgoing packet did not include the source Ethernet MAC address of the 2nd interface. It is very strange situation that the Ethernet driver did not prefix MAC and pass it out directly.
Does the pfil of QNX is 100% equal to FreeBSD?Robert Pera2014-02-20T00:35:18Zpost108854: Re: Duplicate packets and foward into two NICGervais Mulongoyhttp://community.qnx.com/sf/go/post1088542014-02-18T12:22:52Z2014-02-18T12:22:52ZSee the support ticket for a response.
On 14-02-16 10:38 PM, rich lee wrote:
> I try to duplicate packets and foward into two NIC using pfil, the source code as follow. But the pfil can't catch ethernet header. Is any one help me how can catch ethernet header using pfil.
>
>
>
> _______________________________________________
>
> General
> http://community.qnx.com/sf/go/post108826
> To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.comGervais Mulongoy2014-02-18T12:22:52Zpost108826: Duplicate packets and foward into two NICrich lee(deleted)http://community.qnx.com/sf/go/post1088262014-02-17T03:38:58Z2014-02-17T03:38:58ZI try to duplicate packets and foward into two NIC using pfil, the source code as follow. But the pfil can't catch ethernet header. Is any one help me how can catch ethernet header using pfil.rich lee(deleted)2014-02-17T03:38:58Zpost108115: Re: asix usb ethernet dongle problema l(deleted)http://community.qnx.com/sf/go/post1081152014-01-23T09:30:50Z2014-01-23T09:30:50ZTurned out the target had some custom enum system..
That system prevented my manually loaded driver from working..
I changed the vid&pid in the system img (hexedit) so it loads my dongle driver with the custom enum system..and it works like a charm.
Thanks for your help !!a l(deleted)2014-01-23T09:30:50Zpost108095: Re: asix usb ethernet dongle problemHugh Brownhttp://community.qnx.com/sf/go/post1080952014-01-22T17:37:00Z2014-01-22T17:37:00ZIt sounds to me as though you have a USB problem with that target, rather
than a network driver problem. We have a lot of those DLink dongles here
that we use all the time, so I know that the driver works.
I cannot help you with USB problems, so maybe you should post this
question on another conference.
On 2014/1/22, 12:32 PM, "a l" <community-noreply@qnx.com> wrote:
>The dongle currently works on the vm-ware x86 image..and on a other
>target (also arm-le)
>
>I tried driver from that target , same result.
>Difference is that the other target is prepared for this dongle (driver
>loaded via enum..ect).
>
>Can there be something on the target that causes this error..?
>it's giving me a lot of trouble..
>Also can't load devc-serusb (can't create /dev/serusb error)..so no comm
>at the moment..other that the boot script from usb.
>
>Thanks
>
>
>
>
>
>_______________________________________________
>
>General
>http://community.qnx.com/sf/go/post108094
>To cancel your subscription to this discussion, please e-mail
>general-networking-unsubscribe@community.qnx.comHugh Brown2014-01-22T17:37:00Zpost108094: Re: asix usb ethernet dongle problema l(deleted)http://community.qnx.com/sf/go/post1080942014-01-22T17:32:15Z2014-01-22T17:32:15ZThe dongle currently works on the vm-ware x86 image..and on a other target (also arm-le)
I tried driver from that target , same result.
Difference is that the other target is prepared for this dongle (driver loaded via enum..ect).
Can there be something on the target that causes this error..?
it's giving me a lot of trouble..
Also can't load devc-serusb (can't create /dev/serusb error)..so no comm at the moment..other that the boot script from usb.
Thanksa l(deleted)2014-01-22T17:32:15Zpost108091: Re: asix usb ethernet dongle problemHugh Brownhttp://community.qnx.com/sf/go/post1080912014-01-22T15:36:46Z2014-01-22T15:36:46ZYes, io-pkt drivers don¹t create a /dev/io-net.
Has this dongle worked before? The fact that both drivers indicate the
same problem, seems to indicate a hardware problem.
On 2014/1/22, 10:26 AM, "a l" <community-noreply@qnx.com> wrote:
>Thanks for your help , really appreciated !!
>
>With the new driver.. (mount -Tio-pkt /fs/U0/devnp-asix.so)
>- The dongle start..led turn on (same as old driver)
>- No /dev/io-net is created
>
>syslog:
>Jan 01 00:00:22 5 10 0 ax_detect: attached [bus 0, dev 5]
>Jan 01 00:00:22 5 14 0 ax0
>Jan 01 00:00:25 5 10 0 ax_detect: attached AX interfaces 0
>Jan 01 00:00:25 5 10 0 ax_detect: found 1 device
>Jan 01 00:00:56 2 10 0 error 2
>Jan 01 00:00:56 2 10 0 ax_initialize: unable to enqueue rcv
>buffer 13
>
>
>
>
>
>_______________________________________________
>
>General
>http://community.qnx.com/sf/go/post108090
>To cancel your subscription to this discussion, please e-mail
>general-networking-unsubscribe@community.qnx.comHugh Brown2014-01-22T15:36:46Zpost108090: Re: asix usb ethernet dongle problema l(deleted)http://community.qnx.com/sf/go/post1080902014-01-22T15:26:49Z2014-01-22T15:26:49ZThanks for your help , really appreciated !!
With the new driver.. (mount -Tio-pkt /fs/U0/devnp-asix.so)
- The dongle start..led turn on (same as old driver)
- No /dev/io-net is created
syslog:
Jan 01 00:00:22 5 10 0 ax_detect: attached [bus 0, dev 5]
Jan 01 00:00:22 5 14 0 ax0
Jan 01 00:00:25 5 10 0 ax_detect: attached AX interfaces 0
Jan 01 00:00:25 5 10 0 ax_detect: found 1 device
Jan 01 00:00:56 2 10 0 error 2
Jan 01 00:00:56 2 10 0 ax_initialize: unable to enqueue rcv buffer 13a l(deleted)2014-01-22T15:26:49Zpost108088: Re: asix usb ethernet dongle problemHugh Brownhttp://community.qnx.com/sf/go/post1080882014-01-22T14:44:40Z2014-01-22T14:44:40ZWe have ported the Asix driver to a native io-pkt driver, so will you
please run the attached driver and see if it works for you.
On 2014/1/22, 9:37 AM, "a l" <community-noreply@qnx.com> wrote:
>USB 0 (dm816x) v1.10, v1.01 DDK, v1.01 HCD
> Control, Interrupt, Bulk(SG), Isoch(Stream), High speed
>
>Device Address : 1
>Upstream Host Controller : 0
>Upstream Device Address : 0
>Upstream Port : 0
>Upstream Port Speed : High
>Vendor : 0x04b8
>Product : 0x090a
>Device Release : r0.90
>Class : 0x09 (Hub)
>Subclass : 0x00
>Protocol : 0x01
>Max PacketSize0 : 64
>Hub Number Ports : 2
>Hub Characteristics : 0x0020 (Ganged power, Global over-current)
>Hub Power On->Good : 0 ms
>Hub Power Requirements : 100 mA
>Configurations : 1
> Configuration : 1
> Attributes : 0xe0 (Self-powered, Remote-wakeup)
> Max Power : 100 mA
>
>Device Address : 2
>Upstream Host Controller : 0
>Upstream Device Address : 1
>Upstream Port : 2
>Upstream Port Speed : High
>Vendor : 0x2101 (Action Star)
>Product : 0x8500 (USB2.0 Hub)
>Device Release : r1.06
>Class : 0x09 (Hub)
>Subclass : 0x00
>Protocol : 0x02
>Max PacketSize0 : 64
>Hub Number Ports : 5
>Hub Characteristics : 0x00e4 (Ganged power, Compound, Global
>over-current)
>Hub Power On->Good : 100 ms
>Hub Power Requirements : 100 mA
>Configurations : 1
> Configuration : 1
> Attributes : 0xe0 (Self-powered, Remote-wakeup)
> Max Power : 100 mA
>
>Device Address : 3
>Upstream Host Controller : 0
>Upstream Device Address : 2
>Upstream Port : 1
>Upstream Port Speed : High
>Vendor : 0x2101 (Action Star)
>Product : 0x8501 (USB HID)
>Device Release : r6.05
>Class : 0x00 (Independent per interface)
>Max PacketSize0 : 64
>Configurations : 1
> Configuration : 1
> Attributes : 0xa0 (Bus-powered, Remote-wakeup)
> Max Power : 20 mA
>
>Device Address : 4
>Upstream Host Controller : 0
>Upstream Device Address : 2
>Upstream Port : 2
>Upstream Port Speed : High
>Vendor : 0x1307 (USBest Technology)
>Product : 0x0163 (USB Mass Storage Device)
>Device Release : r1.00
>Class : 0x00 (Independent per interface)
>Max PacketSize0 : 64
>Configurations : 1
> Configuration : 1
> Attributes : 0x80 (Bus-powered)
> Max Power : 80 mA
>
>Device Address : 5
>Upstream Host Controller : 0
>Upstream Device Address : 2
>Upstream Port : 3
>Upstream Port Speed : High
>Vendor : 0x2001 (D-Link Corporation)
>Product : 0x3c05 (DUB-E100)
>Device Release : r0.01
>Class : 0xff (Vendor-specific)
>Subclass : 0xff
>Protocol : 0x00
>Max PacketSize0 : 64
>Configurations : 1
> Configuration : 1 (0)
> Attributes : 0x80 (Bus-powered)
> Max Power : 250 mA
>
>USB 1 (dm816x) v1.10, v1.01 DDK, v1.01 HCD
> Control, Interrupt, Bulk, Isoch(Stream), High speed
>
>
>
>
>_______________________________________________
>
>General
>http://community.qnx.com/sf/go/post108087
>To cancel your subscription to this discussion, please e-mail
>general-networking-unsubscribe@community.qnx.comHugh Brown2014-01-22T14:44:40Zpost108087: Re: asix usb ethernet dongle problema l(deleted)http://community.qnx.com/sf/go/post1080872014-01-22T14:37:57Z2014-01-22T14:37:57ZUSB 0 (dm816x) v1.10, v1.01 DDK, v1.01 HCD
Control, Interrupt, Bulk(SG), Isoch(Stream), High speed
Device Address : 1
Upstream Host Controller : 0
Upstream Device Address : 0
Upstream Port : 0
Upstream Port Speed : High
Vendor : 0x04b8
Product : 0x090a
Device Release : r0.90
Class : 0x09 (Hub)
Subclass : 0x00
Protocol : 0x01
Max PacketSize0 : 64
Hub Number Ports : 2
Hub Characteristics : 0x0020 (Ganged power, Global over-current)
Hub Power On->Good : 0 ms
Hub Power Requirements : 100 mA
Configurations : 1
Configuration : 1
Attributes : 0xe0 (Self-powered, Remote-wakeup)
Max Power : 100 mA
Device Address : 2
Upstream Host Controller : 0
Upstream Device Address : 1
Upstream Port : 2
Upstream Port Speed : High
Vendor : 0x2101 (Action Star)
Product : 0x8500 (USB2.0 Hub)
Device Release : r1.06
Class : 0x09 (Hub)
Subclass : 0x00
Protocol : 0x02
Max PacketSize0 : 64
Hub Number Ports : 5
Hub Characteristics : 0x00e4 (Ganged power, Compound, Global over-current)
Hub Power On->Good : 100 ms
Hub Power Requirements : 100 mA
Configurations : 1
Configuration : 1
Attributes : 0xe0 (Self-powered, Remote-wakeup)
Max Power : 100 mA
Device Address : 3
Upstream Host Controller : 0
Upstream Device Address : 2
Upstream Port : 1
Upstream Port Speed : High
Vendor : 0x2101 (Action Star)
Product : 0x8501 (USB HID)
Device Release : r6.05
Class : 0x00 (Independent per interface)
Max PacketSize0 : 64
Configurations : 1
Configuration : 1
Attributes : 0xa0 (Bus-powered, Remote-wakeup)
Max Power : 20 mA
Device Address : 4
Upstream Host Controller : 0
Upstream Device Address : 2
Upstream Port : 2
Upstream Port Speed : High
Vendor : 0x1307 (USBest Technology)
Product : 0x0163 (USB Mass Storage Device)
Device Release : r1.00
Class : 0x00 (Independent per interface)
Max PacketSize0 : 64
Configurations : 1
Configuration : 1
Attributes : 0x80 (Bus-powered)
Max Power : 80 mA
Device Address : 5
Upstream Host Controller : 0
Upstream Device Address : 2
Upstream Port : 3
Upstream Port Speed : High
Vendor : 0x2001 (D-Link Corporation)
Product : 0x3c05 (DUB-E100)
Device Release : r0.01
Class : 0xff (Vendor-specific)
Subclass : 0xff
Protocol : 0x00
Max PacketSize0 : 64
Configurations : 1
Configuration : 1 (0)
Attributes : 0x80 (Bus-powered)
Max Power : 250 mA
USB 1 (dm816x) v1.10, v1.01 DDK, v1.01 HCD
Control, Interrupt, Bulk, Isoch(Stream), High speeda l(deleted)2014-01-22T14:37:57Zpost108084: Re: asix usb ethernet dongle problemHugh Brownhttp://community.qnx.com/sf/go/post1080842014-01-22T14:04:00Z2014-01-22T14:04:00ZPlease can you post the output from ³usb -v² so that I can see which
version of the Asix chip you have.
On 2014/1/22, 9:01 AM, "a l" <community-noreply@qnx.com> wrote:
>Thanks...
>
>I did put a sleep between it...
>
>After running ifconfig it also lists the interface with the configured ip
>address.
>Also disabling packet filtering did not help.
>
>After network setup i can ping to the configured target ip address..but
>nothing to host..
>
>
>
>
>> If you are starting io-pkt in a script and then running ifconfig
>> immediately after, that could be your problem. You should have a delay
>> after starting the driver and running ifconfig to allow the driver to
>> initialize the hardware.
>
>
>
>
>_______________________________________________
>
>General
>http://community.qnx.com/sf/go/post108083
>To cancel your subscription to this discussion, please e-mail
>general-networking-unsubscribe@community.qnx.comHugh Brown2014-01-22T14:04:00Zpost108083: Re: asix usb ethernet dongle problema l(deleted)http://community.qnx.com/sf/go/post1080832014-01-22T14:01:47Z2014-01-22T14:01:47ZThanks...
I did put a sleep between it...
After running ifconfig it also lists the interface with the configured ip address.
Also disabling packet filtering did not help.
After network setup i can ping to the configured target ip address..but nothing to host..
> If you are starting io-pkt in a script and then running ifconfig
> immediately after, that could be your problem. You should have a delay
> after starting the driver and running ifconfig to allow the driver to
> initialize the hardware.a l(deleted)2014-01-22T14:01:47Zpost108082: Re: asix usb ethernet dongle problemHugh Brownhttp://community.qnx.com/sf/go/post1080822014-01-22T13:02:34Z2014-01-22T13:02:34ZIf you are starting io-pkt in a script and then running ifconfig
immediately after, that could be your problem. You should have a delay
after starting the driver and running ifconfig to allow the driver to
initialize the hardware.
On 2014/1/21, 6:05 PM, "a l" <community-noreply@qnx.com> wrote:
>Hi all,
>
>I'm trying to connect to o (armle) target.
>the target starts a script from usb on boot.
>I can load the devn-asix driver , and that fires up the usb adaptor
>(lights on)
>
>This is what i try :
>io-pkt-v4-hc -d /fs/U0/devn-asix.so lan=2
>ifconfig en2 192.168.6.2
>
>i can ping 192.168.6.2 , but can't ping to the other end of the ethernet..
>
>in syslog :
>Jan 01 00:00:27 5 14 0 tcpip starting
>Jan 01 00:00:28 3 14 0 Unable to attach to pci server: No such
>file or directory
>Jan 01 00:00:28 3 14 0 Using pseudo random generator. See
>"random" option
>Jan 01 00:00:28 5 14 0 initializing IPsec... done
>Jan 01 00:00:28 5 14 0 IPsec: Initialized Security Association
>Processing.
>Jan 01 00:00:30 5 14 0 en2
>Jan 01 00:00:30 2 14 0 ax_initialize: unable to enqueue rcv
>buffer 13
>
>Any help is welcome..
>
>
>
>
>_______________________________________________
>
>General
>http://community.qnx.com/sf/go/post108074
>To cancel your subscription to this discussion, please e-mail
>general-networking-unsubscribe@community.qnx.comHugh Brown2014-01-22T13:02:34Zpost108074: asix usb ethernet dongle problema l(deleted)http://community.qnx.com/sf/go/post1080742014-01-21T23:05:04Z2014-01-21T23:05:04ZHi all,
I'm trying to connect to o (armle) target.
the target starts a script from usb on boot.
I can load the devn-asix driver , and that fires up the usb adaptor (lights on)
This is what i try :
io-pkt-v4-hc -d /fs/U0/devn-asix.so lan=2
ifconfig en2 192.168.6.2
i can ping 192.168.6.2 , but can't ping to the other end of the ethernet..
in syslog :
Jan 01 00:00:27 5 14 0 tcpip starting
Jan 01 00:00:28 3 14 0 Unable to attach to pci server: No such file or directory
Jan 01 00:00:28 3 14 0 Using pseudo random generator. See "random" option
Jan 01 00:00:28 5 14 0 initializing IPsec... done
Jan 01 00:00:28 5 14 0 IPsec: Initialized Security Association Processing.
Jan 01 00:00:30 5 14 0 en2
Jan 01 00:00:30 2 14 0 ax_initialize: unable to enqueue rcv buffer 13
Any help is welcome..a l(deleted)2014-01-21T23:05:04Zpost107724: Re: scripts to detect the networkLi frankhttp://community.qnx.com/sf/go/post1077242013-12-27T02:08:58Z2013-12-27T02:08:58ZThank you very much.
> http://www.qnx.com/developers/docs/6.5.0/topic/com.qnx.doc.
> neutrino_utilities/i/ifwatchd.html
>
> Sent from my BlackBerry 10 smartphone on the Rogers network.
> Original Message
> From: Li frank
> Sent: Wednesday, December 25, 2013 4:51 AM
> To: general-networking
> Reply To: general-networking@community.qnx.com
> Subject: Re: scripts to detect the network
>
>
> Great, how to use the ifwatchd utility?Any example? Thank you.
> > The ifwatchd utility can accomplish this.
> >
> > Regards,
> >
> > -seanb
> >
> > Sent from my BlackBerry 10 smartphone on the Rogers network.
> > Original Message
> > From: Li frank
> > Sent: Tuesday, December 24, 2013 12:39 AM
> > To: general-networking
> > Reply To: general-networking@community.qnx.com
> > Subject: scripts to detect the network
> >
> >
> > I would like to write a script in boot.sh. which is used to detect if we
> get
> > the IP address from dhcp.client. If the IP address is got, then it will
> start
> > a program which use network funciton. If not, the wait some time and check
> it
> > again. Is that possible? Or maybe there is example? Thanks.
> >
> >
> >
> >
> >
> > _______________________________________________
> >
> > General
> > http://community.qnx.com/sf/go/post107702
> > To cancel your subscription to this discussion, please e-mail general-
> > networking-unsubscribe@community.qnx.com
>
>
>
>
>
>
> _______________________________________________
>
> General
> http://community.qnx.com/sf/go/post107714
> To cancel your subscription to this discussion, please e-mail general-
> networking-unsubscribe@community.qnx.comLi frank2013-12-27T02:08:58Zpost107719: Re: scripts to detect the networkSean Boudreau(deleted)http://community.qnx.com/sf/go/post1077192013-12-26T12:31:53Z2013-12-26T12:31:53Zhttp://www.qnx.com/developers/docs/6.5.0/topic/com.qnx.doc.neutrino_utilities/i/ifwatchd.html
Sent from my BlackBerry 10 smartphone on the Rogers network.
Original Message
From: Li frank
Sent: Wednesday, December 25, 2013 4:51 AM
To: general-networking
Reply To: general-networking@community.qnx.com
Subject: Re: scripts to detect the network
Great, how to use the ifwatchd utility?Any example? Thank you.
> The ifwatchd utility can accomplish this.
>
> Regards,
>
> -seanb
>
> Sent from my BlackBerry 10 smartphone on the Rogers network.
> Original Message
> From: Li frank
> Sent: Tuesday, December 24, 2013 12:39 AM
> To: general-networking
> Reply To: general-networking@community.qnx.com
> Subject: scripts to detect the network
>
>
> I would like to write a script in boot.sh. which is used to detect if we get
> the IP address from dhcp.client. If the IP address is got, then it will start
> a program which use network funciton. If not, the wait some time and check it
> again. Is that possible? Or maybe there is example? Thanks.
>
>
>
>
>
> _______________________________________________
>
> General
> http://community.qnx.com/sf/go/post107702
> To cancel your subscription to this discussion, please e-mail general-
> networking-unsubscribe@community.qnx.com
_______________________________________________
General
http://community.qnx.com/sf/go/post107714
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.comSean Boudreau(deleted)2013-12-26T12:31:53Zpost107714: Re: scripts to detect the networkLi frankhttp://community.qnx.com/sf/go/post1077142013-12-25T09:51:06Z2013-12-25T09:51:06ZGreat, how to use the ifwatchd utility?Any example? Thank you.
> The ifwatchd utility can accomplish this.
>
> Regards,
>
> -seanb
>
> Sent from my BlackBerry 10 smartphone on the Rogers network.
> Original Message
> From: Li frank
> Sent: Tuesday, December 24, 2013 12:39 AM
> To: general-networking
> Reply To: general-networking@community.qnx.com
> Subject: scripts to detect the network
>
>
> I would like to write a script in boot.sh. which is used to detect if we get
> the IP address from dhcp.client. If the IP address is got, then it will start
> a program which use network funciton. If not, the wait some time and check it
> again. Is that possible? Or maybe there is example? Thanks.
>
>
>
>
>
> _______________________________________________
>
> General
> http://community.qnx.com/sf/go/post107702
> To cancel your subscription to this discussion, please e-mail general-
> networking-unsubscribe@community.qnx.comLi frank2013-12-25T09:51:06Zpost107704: Re: scripts to detect the networkSean Boudreau(deleted)http://community.qnx.com/sf/go/post1077042013-12-24T11:57:36Z2013-12-24T11:57:36ZThe ifwatchd utility can accomplish this.
Regards,
-seanb
Sent from my BlackBerry 10 smartphone on the Rogers network.
Original Message
From: Li frank
Sent: Tuesday, December 24, 2013 12:39 AM
To: general-networking
Reply To: general-networking@community.qnx.com
Subject: scripts to detect the network
I would like to write a script in boot.sh. which is used to detect if we get the IP address from dhcp.client. If the IP address is got, then it will start a program which use network funciton. If not, the wait some time and check it again. Is that possible? Or maybe there is example? Thanks.
_______________________________________________
General
http://community.qnx.com/sf/go/post107702
To cancel your subscription to this discussion, please e-mail general-networking-unsubscribe@community.qnx.comSean Boudreau(deleted)2013-12-24T11:57:36Zpost107702: scripts to detect the networkLi frankhttp://community.qnx.com/sf/go/post1077022013-12-24T05:39:53Z2013-12-24T05:39:53ZI would like to write a script in boot.sh. which is used to detect if we get the IP address from dhcp.client. If the IP address is got, then it will start a program which use network funciton. If not, the wait some time and check it again. Is that possible? Or maybe there is example? Thanks.Li frank2013-12-24T05:39:53Zpost107507: Re: Beta test: high speed raw ethernet interface based on DPDK ( 1GB Intel adapters)Armin Steinhoffhttp://community.qnx.com/sf/go/post1075072013-12-12T20:18:56Z2013-12-12T20:18:56ZSteve,
I used in my test scenario the original I210 board from Intel.
This board wasn't recognized and wasn't handled by the QNX 6.4.
The test utility "testpmd" sets in general the link up.
Did you disable your board by the network configuration of QNX ?
Are you using QNX6.4 or QNX6.5 ?
There seems to be a conflict in handling of the link status
Thanks a lot for your valuable response!
Best Regards
--ArminArmin Steinhoff2013-12-12T20:18:56Zpost107494: Re: Beta test: high speed raw ethernet interface based on DPDK ( 1GB Intel adapters)Armin Steinhoffhttp://community.qnx.com/sf/go/post1074942013-12-12T19:58:37Z2013-12-12T19:58:37ZSteve Iribarne wrote:
> After a TON of testing and debugging the issue was that the interface wasn't "up".
>
> So after I loaded the supplicant I just do:
>
> ifconfig tiw_sta0 up
>
> and everything works.
>
> I just wanted to update.
>
>Armin Steinhoff2013-12-12T19:58:37Zpost107317: Re: Intel Pro/Wireless 2915ABG network card and QNX 6.5Hugh Brownhttp://community.qnx.com/sf/go/post1073172013-12-09T17:56:25Z2013-12-09T17:56:25ZThe only chipsets that work on x86 PCI are the Atheros AR5210,11,12 & 13,
and the Broadcom BCM43xx.
On 2013/12/9, 12:04 PM, "H. S." <community-noreply@qnx.com> wrote:
>
>If I were to try to buy a minipci wireless adapter to use in the machine,
>which one is the best bet in support and stability in QNX 6.5?
>
>Thanks.
>
>
>
>
>_______________________________________________
>
>General
>http://community.qnx.com/sf/go/post107316
>To cancel your subscription to this discussion, please e-mail
>general-networking-unsubscribe@community.qnx.comHugh Brown2013-12-09T17:56:25Zpost107316: Re: Intel Pro/Wireless 2915ABG network card and QNX 6.5H. S.http://community.qnx.com/sf/go/post1073162013-12-09T17:04:33Z2013-12-09T17:04:33ZIf I were to try to buy a minipci wireless adapter to use in the machine, which one is the best bet in support and stability in QNX 6.5?
Thanks.H. S.2013-12-09T17:04:33Zpost107314: Re: Intel Pro/Wireless 2915ABG network card and QNX 6.5Hugh Brownhttp://community.qnx.com/sf/go/post1073142013-12-09T16:49:37Z2013-12-09T16:49:37ZNo, this adapter isn¹t supported.
On 2013/12/9, 11:43 AM, "H. S." <community-noreply@qnx.com> wrote:
>I installed QNX 6.5 from its installation CD on an old Dell Precision M20
>laptop. The "pci -v" command lists the Intel Pro/Wireless 2915ABG network
>card. However, I am not sure how to make it work in the QNX OS.
>
>First, is this card supported by QNX 6.5 OS. Next, if yes, could somebody
>help me with steps on bringing up the wireless interface?
>
>Thanks.
>
>
>
>
>_______________________________________________
>
>General
>http://community.qnx.com/sf/go/post107312
>To cancel your subscription to this discussion, please e-mail
>general-networking-unsubscribe@community.qnx.comHugh Brown2013-12-09T16:49:37Zpost107312: Intel Pro/Wireless 2915ABG network card and QNX 6.5H. S.http://community.qnx.com/sf/go/post1073122013-12-09T16:43:22Z2013-12-09T16:43:22ZI installed QNX 6.5 from its installation CD on an old Dell Precision M20 laptop. The "pci -v" command lists the Intel Pro/Wireless 2915ABG network card. However, I am not sure how to make it work in the QNX OS.
First, is this card supported by QNX 6.5 OS. Next, if yes, could somebody help me with steps on bringing up the wireless interface?
Thanks.H. S.2013-12-09T16:43:22Zpost107299: Network Interface Card (NIC) Teaming matter.Patrick Wonghttp://community.qnx.com/sf/go/post1072992013-12-07T10:56:55Z2013-12-07T10:56:55ZHi,
My embedded PC is running QNX Neutrino OS 6.5 and it has 2 network card with name "wm0" and "wm1".
How do i configure them so that they can act as NIC Teaming ?
One of the articles that i found from internet
(http://www.tecmint.com/ethernet-channel-bonding-aka-nic-teaming-on-linux-systems/) teaches us how to create a NIC teaming in linux.
I tried to follow the steps and applied them on the embedded PC but it does not have the path
"/etc/sysconfig/network-scripts". I was unable to proceed after that.
Can you advise me on how to create OR is it possible to create a NIC Teaming in QNX ?Patrick Wong2013-12-07T10:56:55Zpost106900: Beta test: high speed raw ethernet interface based on DPDK ( 1GB Intel adapters)Armin Steinhoffhttp://community.qnx.com/sf/go/post1069002013-11-20T23:53:51Z2013-11-20T23:53:51ZHi,
in the attachment is a test application of the DPDK framework (dpdk.org)
working with QNX6.4 and QNX6.5.
Supported are all 1GB adapters from Intel. "testpmd" is completely
independend from the network infrastructure of QNX Neutrino.
Required is at least a dual core CPU and an 1GB Intel Ethernet adapter.
Application start for a dual core system and a single channel *I210*
adapter e.g.: "testpmd -c 3 -n 1"
For a different Intel adapter must be specified its PCI sub device ID by
the -D switch: "testpmd -c 3 -n1 -D nnn" ("nnn" hex number w/o "0x" prefix)
The application terminates with an abort() call if the requested PCI
adapter couldn't be found ...
Start and stop of the "sniff function":
*testpmd>*set fwd rxonly
*testpmd>*start
*testpmd>*stop
Start and stop of the "UDP packet generator ":
*testpmd>*set fwd txonly
*testpmd>*start
*testpmd>*stop
The maximal number of packets/sec is limitted to 40.000 packets/sec by a
nanospin() delay of 20us.
(Slower networks creates dropped packets .. "testpmd" must be used
carefully on your own risk)
There are a lot of additional test cases included ... some are not
supported because of architectural differences between QNX6 and Linux
Only the "Link status change" interrupt is currently supported.
Please let me know if there are issues with your 1GB Intel adapter.
Regards
--ArminArmin Steinhoff2013-11-20T23:53:51Zpost106738: How can I get Financial presentation captioningJackson Benhttp://community.qnx.com/sf/go/post1067382013-11-13T12:34:39Z2013-11-13T12:34:39ZCaptioning is an art of providing customers with every image that they have been searching. An individual has a different entity with different thoughts and perceptions. If you ask one person to search a picture from internet, he will search it with a keyword which he thinks better to suite the subject. Similarly if you assign this job to 10 people, all 10 will search in different ways. Captioning is done to satisfy the needs of people with different taste and viewpoints. With the help of captioning, all tem people will get their search even if their way of searching is different. You can now find various facilities provided by closed captioning US with regards to financial presentation captioning. <a href="http://www.closed-captioning-us.com/Closed-Captioning-Services.php">closed captioning Company</a>Jackson Ben2013-11-13T12:34:39Zpost106564: Support for Intel's Q87 chipsetChris Richter(deleted)http://community.qnx.com/sf/go/post1065642013-11-06T10:26:55Z2013-11-06T10:26:55ZHi,
according to
http://www.advantech.de/products/QNX-Evaluation-Kit/mod_d208b14e-93e2-40b5-afc1-9482b563716d/News/A1EACAA1-4FF8-46AE-963A-42A3739F9B21/
Advantech offers support for the Q87 chipset with the AIMB-584.
Does the latest version of the "x86 BIOS Board Support Package QNX 6.5.0 SP1" already support
the Q87?
At least in the latest BSP source code I found the HW support for "Q87 Express LPC Controller" .
Thanks in advance and regards,
ChrisChris Richter(deleted)2013-11-06T10:26:55Z