aboutsummaryrefslogtreecommitdiff
path: root/pcap-linux.c
diff options
context:
space:
mode:
Diffstat (limited to 'pcap-linux.c')
-rw-r--r--pcap-linux.c22
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