|
xorp
|
00001 // -*- c-basic-offset: 4; tab-width: 8; indent-tabs-mode: t -*- 00002 00003 // Copyright (c) 2007-2011 XORP, Inc and Others 00004 // 00005 // This program is free software; you can redistribute it and/or modify 00006 // it under the terms of the GNU General Public License, Version 2, June 00007 // 1991 as published by the Free Software Foundation. Redistribution 00008 // and/or modification of this program under the terms of any other 00009 // version of the GNU General Public License is not permitted. 00010 // 00011 // This program is distributed in the hope that it will be useful, but 00012 // WITHOUT ANY WARRANTY; without even the implied warranty of 00013 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For more details, 00014 // see the GNU General Public License, Version 2, a copy of which can be 00015 // found in the XORP LICENSE.gpl file. 00016 // 00017 // XORP Inc, 2953 Bunker Hill Lane, Suite 204, Santa Clara, CA 95054, USA; 00018 // http://xorp.net 00019 00020 // $XORP: xorp/fea/data_plane/managers/fea_data_plane_manager_bsd.hh,v 1.8 2008/10/02 21:57:12 bms Exp $ 00021 00022 #ifndef __FEA_DATA_PLANE_MANAGERS_FEA_DATA_PLANE_MANAGER_BSD_HH__ 00023 #define __FEA_DATA_PLANE_MANAGERS_FEA_DATA_PLANE_MANAGER_BSD_HH__ 00024 00025 #include <xorp_config.h> 00026 #if defined(HOST_OS_BSDI) \ 00027 || defined(HOST_OS_DRAGONFLYBSD) \ 00028 || defined(HOST_OS_FREEBSD) \ 00029 || defined(HOST_OS_MACOSX) \ 00030 || defined(HOST_OS_NETBSD) \ 00031 || defined(HOST_OS_OPENBSD) 00032 00033 00034 #include "fea/fea_data_plane_manager.hh" 00035 00036 00040 class FeaDataPlaneManagerBsd : public FeaDataPlaneManager { 00041 public: 00047 FeaDataPlaneManagerBsd(FeaNode& fea_node); 00048 00052 virtual ~FeaDataPlaneManagerBsd(); 00053 00060 int load_plugins(string& error_msg); 00061 00067 int register_plugins(string& error_msg); 00068 00081 IoLink* allocate_io_link(const IfTree& iftree, 00082 const string& if_name, 00083 const string& vif_name, 00084 uint16_t ether_type, 00085 const string& filter_program); 00086 00096 IoIp* allocate_io_ip(const IfTree& iftree, int family, 00097 uint8_t ip_protocol); 00098 00109 IoTcpUdp* allocate_io_tcpudp(const IfTree& iftree, int family, 00110 bool is_tcp); 00111 00112 private: 00113 }; 00114 00115 #endif 00116 #endif // __FEA_DATA_PLANE_MANAGERS_FEA_DATA_PLANE_MANAGER_BSD_HH__