**Hardware Platform:**DRIVE AGX Xavier™
**Software Version:** DRIVE-V5.0.13-E3550-EB-Aurix-With3LSS-3.01.03
**Host Machine Version:** QNX localhost 7.0.255 2018/06/06-16:06:46EDT ARMv8_nVidia-Parker aarch64le
**SDK Manager Version:** 5.0.13
We have to use j59 connector on the board for Ethernet communication.
The following configuration setup is required in our project:
export SOCK=/sock2
ifconfig
lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> mtu 33136
inet 127.0.0.1 netmask 0xff000000
inet6 ::1 prefixlen 128
inet6 fe80::1%lo0 prefixlen 64 scopeid 0x1
eth0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 9000
capabilities rx=1f<IP4CSUM,TCP4CSUM,UDP4CSUM,TCP6CSUM,UDP6CSUM>
capabilities tx=7f<IP4CSUM,TCP4CSUM,UDP4CSUM,TCP6CSUM,UDP6CSUM,TSO4,TSO6>
enabled rx=7<IP4CSUM,TCP4CSUM,UDP4CSUM>
enabled tx=27<IP4CSUM,TCP4CSUM,UDP4CSUM,TSO4>
address: 00:04:4b:a4:ef:6d
media: Ethernet autoselect (1000baseT full-duplex,flowcontrol,rxpause,txpause)
status: active
inet 0.0.0.0 netmask 0xff000000 broadcast 255.255.255.255
inet6 fe80::204:4bff:fea4:ef6d%eth0 prefixlen 64 scopeid 0x11
vlan2: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 8996
vlan: 2 priority: 0 parent: eth0
address: 00:04:4b:a4:ef:6d
inet 192.168.1.60 netmask 0xffffff00 broadcast 192.168.1.255
inet6 fe80::204:4bff:fea4:ef6d%vlan2 prefixlen 64 scopeid 0x12
In given code example we tested binding bpf to specific interfaces:
#include <stdint.h>
#include <errno.h>
#include <net/if_ether.h>
#include <net/if.h>
#include <net/bpf.h>
#include <pthread.h>
#include <signal.h>
#include <stdbool.h>
#include <stddef.h>
#include <string.h>
#include <sys/ioctl.h>
#include <sys/socket.h>
#include <sys/types.h>
#include <sys/time.h>
#include <stdio.h>
#include <fcntl.h>
#include <stdlib.h>
static int bpf = -1;
int main(int argc, char **argv){
if (argc != 3) {
fprintf(stderr,"usage: %s <bpf full path> <ethernet interface>\n", argv[0]);
exit(0);
}
printf("\n------------------------------------------------------");
bpf = open(argv[1], O_RDWR);
if (bpf < 0) {
printf("\nFailed opening %s! Error number: %d\n%s\n", argv[1], errno, strerror (errno));
(void) close(bpf);
bpf = -1;
}
else
printf("\nFile %s is opened!\n", argv[1]);
if (ioctl(bpf, BIOCSETIF, argv[2]) < 0) {
printf("\nCan't bind %s to %s! \nErrno: %d\nStrerror: %s\n", argv[1], argv[2], errno, strerror (errno));
(void) close(bpf);
bpf = -1;
}
else
printf("\n%s is binded to %s!\n", argv[1], argv[2]);
printf("------------------------------------------------------\n\n");
return 0;
}
and we got the next results:
# /app/etc/bind_test /dev/bpf eq0
------------------------------------------------------
File /dev/bpf is opened!
/dev/bpf is binded to eq0!
------------------------------------------------------
# /app/etc/bind_test /dev/bpf0 eq0
------------------------------------------------------
File /dev/bpf0 is opened!
/dev/bpf0 is binded to eq0!
------------------------------------------------------
# /app/etc/bind_test /dev/bpf vlan200
------------------------------------------------------
File /dev/bpf is opened!
/dev/bpf is binded to vlan200!
------------------------------------------------------
# /app/etc/bind_test /dev/bpf0 vlan200
------------------------------------------------------
File /dev/bpf0 is opened!
/dev/bpf0 is binded to vlan200!
------------------------------------------------------
# /app/etc/bind_test /dev/bpf hv0
------------------------------------------------------
File /dev/bpf is opened!
/dev/bpf is binded to hv0!
------------------------------------------------------
#/app/etc/bind_test /dev/bpf0 hv0
------------------------------------------------------
File /dev/bpf0 is opened!
/dev/bpf0 is binded to hv0!
------------------------------------------------------
#/app/etc/bind_test /dev/bpf hv1
------------------------------------------------------
File /dev/bpf is opened!
/dev/bpf is binded to hv1!
------------------------------------------------------
#/app/etc/bind_test /dev/bpf0 hv1
------------------------------------------------------
File /dev/bpf0 is opened!
/dev/bpf0 is binded to hv1!
------------------------------------------------------
export SOCK=/sock2
#/app/etc/bind_test /dev/bpf eth0
------------------------------------------------------
File /dev/bpf is opened!
Can't bind /dev/bpf to eth0!
Errno: 6
Strerror: No such device or address
------------------------------------------------------
# /app/etc/bind_test /dev/bpf0 eth0
------------------------------------------------------
File /dev/bpf0 is opened!
Can't bind /dev/bpf0 to eth0!
Errno: 6
Strerror: No such device or address
------------------------------------------------------
# /app/etc/bind_test /dev/bpf vlan2
------------------------------------------------------
File /dev/bpf is opened!
Can't bind /dev/bpf to vlan2!
Errno: 6
Strerror: No such device or address
------------------------------------------------------
# /app/etc/bind_test /dev/bpf0 vlan2
------------------------------------------------------
File /dev/bpf0 is opened!
Can't bind /dev/bpf0 to vlan2!
Errno: 6
Strerror: No such device or address
------------------------------------------------------
Does anyone know what could be an issue here, and what we can do to resolve it?
Hi @mihajloj,
This forum category is intended to support devzone releases (NVIDIA DRIVE Downloads | NVIDIA Developer).
Till now all the releases are DRIVE OS Linux so let us clarify who should support your QNX issue via personal messages. Thanks!