packet.h revision 0a0e9771ca0211c15f3ac4466b661c145feeb9e4
/*
* CDDL HEADER START
*
* The contents of this file are subject to the terms of the
* Common Development and Distribution License (the "License").
* You may not use this file except in compliance with the License.
*
* You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
* See the License for the specific language governing permissions
* and limitations under the License.
*
* When distributing Covered Code, include this CDDL HEADER in each
* file and include the License file at usr/src/OPENSOLARIS.LICENSE.
* If applicable, add the following below this CDDL HEADER, with the
* fields enclosed by brackets "[]" replaced with your own identifying
* information: Portions Copyright [yyyy] [name of copyright owner]
*
* CDDL HEADER END
*/
/*
* Copyright 2009 Sun Microsystems, Inc. All rights reserved.
* Use is subject to license terms.
*/
#ifndef _PACKET_H
#define _PACKET_H
#include <sys/socket_impl.h>
/*
* With which we do the reverse of what it libpcap does....
*/
#define PACKET_OUTGOING LINUX_SLL_OUTGOING
#define PACKET_HOST LINUX_SLL_HOST
#define PACKET_BROADCAST LINUX_SLL_BROADCAST
#define PACKET_MULTICAST LINUX_SLL_MULTICAST
#define PACKET_OTHERHOST LINUX_SLL_OTHERHOST
#define PACKET_STATISTICS 1
#define PACKET_ADD_MEMBERSHIP 2
#define PACKET_DROP_MEMBERSHIP 3
#define PACKET_AUXDATA 4
struct packet_mreq {
};
#define PACKET_MR_MULTICAST 1
#define PACKET_MR_PROMISC 2
#define PACKET_MR_ALLMULTI 3
typedef enum tpkt_status_e {
struct tpacket_auxdata { /* tp_macoff/tp_netoff ?? */
};
struct tpacket_hdr { /* tp_macoff/tp_netoff ?? */
};
struct tpacket2_hdr { /* tp_macoff/tp_netoff ?? */
};
struct tpacket_stats {
};
struct sock_filter { /* Fields named from bpf_insn */
uint32_t k;
};
struct sock_fprog {
struct sock_filter *filter;
};
/*
* Linux ARPHRD_ symbols needed...
*
* The numbers above 50000 are because their real value is unknown from
* libpcap's source, so a number has been chosen that is unlikely to be
* confused with the real one on Linux.
*/
#define ARPHRD_ADAPT 50001
#define ARPHRD_ARCNET 50002
#define ARPHRD_ATM 19
#define ARPHRD_AX25 50003
#define ARPHRD_CHAOS 50004
#define ARPHRD_CISCO 513
#define ARPHRD_CSLIP 50005
#define ARPHRD_CSLIP6 50006
#define ARPHRD_DLCI 15
#define ARPHRD_EETHER 50007
#define ARPHRD_ETHER 50008
#define ARPHRD_FCAL 785
#define ARPHRD_FCFABRIC 787
#define ARPHRD_FCPL 786
#define ARPHRD_FCPP 784
#define ARPHRD_FRAD 770
#define ARPHRD_FDDI 774
#define ARPHRD_IEEE802 50009
#define ARPHRD_IEEE802_TR 800
#define ARPHRD_IEEE80211 801
#define ARPHRD_IEEE80211_PRISM 802
#define ARPHRD_IEEE80211_RADIOTAP 803
#define ARPHRD_IRDA 783
#define ARPHRD_LAPD 8445
#define ARPHRD_LOCALTLK 50010
#define ARPHRD_LOOPBACK 50011
#define ARPHRD_METRICOM 50012
#define ARPHRD_PRONET 50013
#define ARPHRD_PPP 50014
#define ARPHRD_RAWHDLC 518
#define ARPHRD_SIT 776
#define ARPHRD_SLIP6 50015
#define ARPHRD_SLIP 50016
#define ARPHRD_TUNNEL 50017
#ifdef _KERNEL
/*
* PFP socket structure.
*/
typedef struct pfpsock {
struct bpf_program ps_bpf;
int ps_type;
int ps_proto;
struct tpacket_stats ps_stats;
} pfpsock_t;
typedef struct pfp_kstats_s {
} pfp_kstats_t;
#endif /* _KERNEL */
#endif /* _PACKET_H */