1b2441318SGreg Kroah-Hartman /* SPDX-License-Identifier: GPL-2.0 */ 21da177e4SLinus Torvalds #ifndef _NET_INET_DATALINK_H_ 31da177e4SLinus Torvalds #define _NET_INET_DATALINK_H_ 41da177e4SLinus Torvalds 5*949d6b40SJakub Kicinski #include <linux/list.h> 6*949d6b40SJakub Kicinski 7*949d6b40SJakub Kicinski struct llc_sap; 8*949d6b40SJakub Kicinski struct net_device; 9*949d6b40SJakub Kicinski struct packet_type; 10*949d6b40SJakub Kicinski struct sk_buff; 11*949d6b40SJakub Kicinski 121da177e4SLinus Torvalds struct datalink_proto { 131da177e4SLinus Torvalds unsigned char type[8]; 141da177e4SLinus Torvalds 151da177e4SLinus Torvalds struct llc_sap *sap; 161da177e4SLinus Torvalds 171da177e4SLinus Torvalds unsigned short header_length; 181da177e4SLinus Torvalds 191da177e4SLinus Torvalds int (*rcvfunc)(struct sk_buff *, struct net_device *, 20f2ccd8faSDavid S. Miller struct packet_type *, struct net_device *); 211da177e4SLinus Torvalds int (*request)(struct datalink_proto *, struct sk_buff *, 222ef6db76SJakub Kicinski const unsigned char *); 231da177e4SLinus Torvalds struct list_head node; 241da177e4SLinus Torvalds }; 251da177e4SLinus Torvalds 261da177e4SLinus Torvalds #endif 27