RAW Socket Porting

Hi, I am porting an linux application which uses socket call for send and receive RAW Ethernet packets. I am using QNX 6.3.2.
socket (PF_PACKET, SOCK_RAW, htons (ETH_P_ALL).

In QNX PF_PACKET and ETH_P_ALL is not available.
I read that BPF can be used to implement send/receive raw Ethernet packets.And also QNX 6.3.2 doesn’t support BPF. Is there any other approach to achive this.
Also ETH_P_ALL is used to receive all kinds of packets in linux.What is the equivalent in QNX.

There isn’t one


Here is a suggestion for 6.4.1


Here is another one with a sample filter



I also need this functionality for version 6.3.2 because I need to insert QOS and VLAN tag dynamically into the ethernet header.

I notice that I can use the socket(PF_INET,SOCK_RAW,0) call. What does this do for me?
Really I want access to the sockaddr_ll structure which isn’t available but I notice a sockaddr_dl (for DLI )is.

Can I use the latter instead.

Does any of the later versions of QNX support the functionality I need?