From 78c896b3b3127515478090c19447e27dc406427e Mon Sep 17 00:00:00 2001 From: Jianfeng Tan Date: Mon, 18 Nov 2019 06:59:50 +0000 Subject: TLDKv2 Signed-off-by: Jianfeng Tan Signed-off-by: Jielong Zhou Signed-off-by: Jian Zhang Signed-off-by: Chen Zhao Change-Id: I55c39de4c6cd30f991f35631eb507f770230f08e --- test/packetdrill/platforms.h | 121 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 121 insertions(+) create mode 100644 test/packetdrill/platforms.h (limited to 'test/packetdrill/platforms.h') diff --git a/test/packetdrill/platforms.h b/test/packetdrill/platforms.h new file mode 100644 index 0000000..b61aad6 --- /dev/null +++ b/test/packetdrill/platforms.h @@ -0,0 +1,121 @@ +/* + * Copyright 2013 Google Inc. + * + * 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. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA + * 02110-1301, USA. + */ +/* + * Author: ncardwell@google.com (Neal Cardwell) + * + * Declarations for platform-specific information. + */ + +#ifndef __PLATFORMS_H__ +#define __PLATFORMS_H__ + + +/* ------------------------- Linux --------------------- */ + +#ifdef linux + +#include +#include + +#define HAVE_OPEN_MEMSTREAM 1 +#define HAVE_FMEMOPEN 1 +#define TUN_PATH "/dev/net/tun" +#define HAVE_TCP_INFO 1 +#define HAVE_TCP_CC_INFO 1 +#define HAVE_SO_MEMINFO 1 + +#include "uapi_linux.h" + +#else + +/* The underscore variants of the kernel-style names are defined in + * linux/types.h, but we must define them explicitly for other platforms. */ +typedef u8 __u8; +typedef u16 __u16; +typedef u32 __u32; +typedef u64 __u64; + +/* We also use kernel-style names for endian-specific unsigned types. */ +typedef u16 __le16; +typedef u16 __be16; +typedef u32 __le32; +typedef u32 __be32; +typedef u64 __le64; +typedef u64 __be64; + +typedef u16 __sum16; +typedef u32 __wsum; + +#endif /* linux */ + + +/* ------------------------- FreeBSD --------------------- */ + +#if defined(__FreeBSD__) + +#define USE_LIBPCAP 1 +#define TUN_PATH "/dev/tun0" +#define TUN_DEV "tun0" + +#define HAVE_TCP_INFO 1 +#if (__FreeBSD_version < 1000000 && __FreeBSD_version > 902000) || __FreeBSD_version > 1000028 +#define HAVE_FMEMOPEN 1 +#endif + +#include "open_memstream.h" +#include "fmemopen.h" + +#endif /* __FreeBSD__ */ + +/* ------------------------- OpenBSD --------------------- */ + +#if defined(__OpenBSD__) + +#define USE_LIBPCAP 1 +#define TUN_PATH "/dev/tun0" +#define TUN_DEV "tun0" + +#define HAVE_TCP_INFO 0 + +#include "open_memstream.h" +#include "fmemopen.h" + +#define __always_inline __attribute__((__always_inline__)) + +#endif /* __OpenBSD__ */ + +/* ------------------------- NetBSD --------------------- */ + +#if defined(__NetBSD__) + +#define USE_LIBPCAP 1 +#define TUN_PATH "/dev/tun0" +#define TUN_DEV "tun0" + +#define HAVE_TCP_INFO 0 + +#define HAVE_FMEMOPEN 1 +#include "open_memstream.h" + +#define __always_inline __attribute__((__always_inline__)) + +#endif /* __NetBSD__ */ + + +#endif /* __PLATFORMS_H__ */ -- cgit 1.2.3-korg