diff options
Diffstat (limited to 'pcap-linux.c')
-rw-r--r-- | pcap-linux.c | 22 |
1 files changed, 6 insertions, 16 deletions
diff --git a/pcap-linux.c b/pcap-linux.c index a2ace7b7..b7fb6889 100644 --- a/pcap-linux.c +++ b/pcap-linux.c @@ -2944,23 +2944,13 @@ static void map_arphrd_to_dlt(pcap_t *handle, int sock_fd, int arptype, #endif case ARPHRD_CAN: /* - * DLT_CAN_SOCKETCAN_BIGENDIAN is defined to have the - * can_id field of the pseudo-header in big-endian - * (network) byte order. - * - * The packets delivered to sockets have that field - * in host byte order. - * - * The code that implements it in packet-can-linux.c - * passes that field to htonl() to put it into network - * byte order. - * - * The code that reads from a PF_PACKET socket doesn't - * change the byte order of that field, so we define - * a new DLT_CAN_SOCKETCAN_HOSTENDIAN, where the can_id - * is in host byte order. + * Map this to DLT_LINUX_SLL; that way, CAN frames will + * have ETH_P_CAN/LINUX_SLL_P_CAN as the protocol and + * CAN FD frames will have ETH_P_CANFD/LINUX_SLL_P_CANFD + * as the protocol, so they can be distinguished by the + * protocol in the SLL header. */ - handle->linktype = DLT_CAN_SOCKETCAN_HOSTENDIAN; + handle->linktype = DLT_LINUX_SLL; break; #ifndef ARPHRD_IEEE802_TR |