/* * NET3: Support for 802.2 demultiplexing off Ethernet * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License * as published by the Free Software Foundation; either version * 2 of the License, or (at your option) any later version. * * Demultiplex 802.2 encoded protocols. We match the entry by the * SSAP/DSAP pair and then deliver to the registered datalink that * matches. The control byte is ignored and handling of such items * is up to the routine passed the frame. * * Unlike the 802.3 datalink we have a list of 802.2 entries as * there are multiple protocols to demux. The list is currently * short (3 or 4 entries at most). The current demux assumes this. */ #include #include #include #include #include #include #include #include #include #include static int p8022_request(struct datalink_proto *dl, struct sk_buff *skb, unsigned char *dest) { llc_build_and_send_ui_pkt(dl->sap, skb, dest, dl->sap->laddr.lsap); return 0; } struct datalink_proto *register_8022_client(unsigned char type, int (*func)(struct sk_buff *skb, struct net_device *dev, struct packet_type *pt, struct net_device *orig_dev)) { struct datalink_proto *proto; proto = kmalloc(sizeof(*proto), GFP_ATOMIC); if (proto) { proto->type[0] = type; proto->header_length = 3; proto->request = p8022_request; proto->sap = llc_sap_open(type, func); if (!proto->sap) { kfree(proto); proto = NULL; } } return proto; } void unregister_8022_client(struct datalink_proto *proto) { llc_sap_put(proto->sap); kfree(proto); } EXPORT_SYMBOL(register_8022_client); EXPORT_SYMBOL(unregister_8022_client); MODULE_LICENSE("GPL"); ref='/cgit.cgi/linux/net-next.git/commit/drivers/usb/gadget/usbstring.c?id=9a393b5d5988ea4eaa3e0da138321abe0dc03a68'>commitdiff
diff options
context:
space:
mode:
authorSainath Grandhi <sainath.grandhi@intel.com>2017-02-10 16:03:51 -0800
committerDavid S. Miller <davem@davemloft.net>2017-02-11 20:59:41 -0500
commit9a393b5d5988ea4eaa3e0da138321abe0dc03a68 (patch)
tree5a006ee32965ff9c76984aa7ce7c870d966be7ac /drivers/usb/gadget/usbstring.c
parentd9f1f61c0801a73ff36d416a7ede54229b231e1d (diff)
tap: tap as an independent module
This patch makes tap a separate module for other types of virtual interfaces, for example, ipvlan to use. Signed-off-by: Sainath Grandhi <sainath.grandhi@intel.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/usb/gadget/usbstring.c')