SocketCAN
Linux'ta CAN controller'larını karakter aygıtı yerine network interface olarak sunup Berkeley socket modeliyle erişilebilir yapan CAN ağ yığını.
SocketCAN'ın güçlü tarafı CAN'i özel bir device API'si olmaktan çıkarıp Linux network stack'in doğal bir parçası yapmasıdır. Bir CAN arayüzü can0 gibi network device olarak görünür; user space tarafında PF_CAN socket'leri kullanılır.
Çoklu Süreç ve Filtreleme
Birden fazla süreç aynı CAN arayüzünü dinleyebilir. Raw socket filtreleri kernel tarafında uygulanabildiği için uygulamanın bütün frame'leri user space'e taşıması gerekmez. Timestamping ve error frame desteği de capture/diagnostic araçları için önemlidir.
CAN'in arbitration ve bounded frame boyutu özellikleri Ethernet/TCP semantiğiyle aynı değildir. Socket API benzerliği, transport garantilerinin aynı olduğu anlamına gelmez.
Kaynak
- https://docs.kernel.org/networking/can.html