1 /* pack_type.c - implements raw packet sockets. */ 2 /* 3 Copyright (C) 1992 Ross Biro 4 5 This program is free software; you can redistribute it and/or modify 6 it under the terms of the GNU General Public License as published by 7 the Free Software Foundation; either version 2, or (at your option) 8 any later version. 9 10 This program is distributed in the hope that it will be useful, 11 but WITHOUT ANY WARRANTY; without even the implied warranty of 12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 GNU General Public License for more details. 14 15 You should have received a copy of the GNU General Public License 16 along with this program; if not, write to the Free Software 17 Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. 18 19 The Author may be reached as bir7@leland.stanford.edu or 20 C/O Department of Mathematics; Stanford University; Stanford, CA 94305 21 */ 22 /* $Id: pack_type.c,v 0.8.4.2 1992/11/10 10:38:48 bir7 Exp $ */ 23 /* $Log: pack_type.c,v $ 24 * Revision 0.8.4.2 1992/11/10 10:38:48 bir7 25 * Change free_s to kfree_s and accidently changed free_skb to kfree_skb. 26 * 27 * Revision 0.8.4.1 1992/11/10 00:17:18 bir7 28 * version change only. 29 * 30 * Revision 0.8.3.2 1992/11/10 00:14:47 bir7 31 * Changed malloc to kmalloc and added $iId$ 32 * */ 33 34 #include <linux/stddef.h> 35 #include "dev.h" 36 #include "eth.h" 37 38 extern int arp_rcv (struct sk_buff *skb, struct device *dev, 39 struct packet_type *pt); 40 41 static struct packet_type arp_packet_type= 42 { 43 NET16(ETHERTYPE_ARP), 44 0, /* copy */ 45 arp_rcv, 46 NULL, 47 NULL /* next */ 48 }; 49 50 extern int ip_rcv (struct sk_buff *skb, struct device *dev, 51 struct packet_type *pt); 52 53 static struct packet_type ip_packet_type= 54 { 55 NET16(ETHERTYPE_IP), 56 0, /* copy */ 57 ip_rcv, 58 NULL, 59 &arp_packet_type 60 }; 61 62 struct packet_type *ptype_base = &ip_packet_type; 63 64 65 66 67