![]() |
User Manual, Developers Guide and API Documentation |
![]() |
00001 /******************************************************************************* 00002 * This file is part of openWNS (open Wireless Network Simulator) 00003 * _____________________________________________________________________________ 00004 * 00005 * Copyright (C) 2004-2007 00006 * Chair of Communication Networks (ComNets) 00007 * Kopernikusstr. 5, D-52074 Aachen, Germany 00008 * phone: ++49-241-80-27910, 00009 * fax: ++49-241-80-22242 00010 * email: info@openwns.org 00011 * www: http://www.openwns.org 00012 * _____________________________________________________________________________ 00013 * 00014 * openWNS is free software; you can redistribute it and/or modify it under the 00015 * terms of the GNU Lesser General Public License version 2 as published by the 00016 * Free Software Foundation; 00017 * 00018 * openWNS is distributed in the hope that it will be useful, but WITHOUT ANY 00019 * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR 00020 * A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more 00021 * details. 00022 * 00023 * You should have received a copy of the GNU Lesser General Public License 00024 * along with this program. If not, see <http://www.gnu.org/licenses/>. 00025 * 00026 ******************************************************************************/ 00027 00028 #ifndef LTE_CONTROLPLANE_FLOWMANAGER_IFLOWMANAGER_HPP 00029 #define LTE_CONTROLPLANE_FLOWMANAGER_IFLOWMANAGER_HPP 00030 00031 #include <LTE/helper/TransactionID.hpp> 00032 00033 #include <WNS/service/dll/Address.hpp> 00034 #include <WNS/service/dll/FlowID.hpp> 00035 #include <WNS/service/tl/FlowID.hpp> 00036 00037 namespace lte { namespace controlplane { namespace flowmanagement { 00038 00039 class IFlowSwitching 00040 { 00041 public: 00042 typedef std::string ModeName; 00043 typedef std::map<wns::service::qos::QoSClass, 00044 wns::service::dll::FlowID> ControlPlaneFlowIDs; 00045 00046 virtual ~IFlowSwitching () {}; 00047 00048 virtual wns::service::dll::FlowID 00049 getFlowIDin(wns::service::dll::FlowID flowIDout) = 0; 00050 00051 virtual wns::service::dll::FlowID 00052 getFlowIDout(wns::service::dll::FlowID flowIDin) = 0; 00053 00054 virtual wns::service::qos::QoSClass 00055 getQoSClassForBSFlowID(wns::service::dll::FlowID dllFlowID) const = 0; 00056 00057 virtual wns::service::qos::QoSClass 00058 getQoSClassForUTFlowID(wns::service::dll::FlowID dllFlowID) const = 0; 00059 00060 virtual ControlPlaneFlowIDs 00061 getControlPlaneFlowIDs(wns::service::dll::UnicastAddress peerAddress) = 0; 00062 00063 virtual void 00064 setControlPlaneFlowIDs(wns::service::dll::UnicastAddress peerAddress, ControlPlaneFlowIDs flowIDs) = 0; 00065 00066 virtual bool 00067 isValidFlow(const wns::ldk::ConstKeyPtr& key) const = 0; 00068 }; 00069 00070 class IFlowManagerUE: 00071 virtual public IFlowSwitching 00072 { 00073 public: 00074 00075 virtual void 00076 buildFlow(wns::service::tl::FlowID, 00077 wns::service::qos::QoSClass) = 0; 00078 00079 virtual void 00080 releaseFlow(wns::service::tl::FlowID flowID) = 0; 00081 00082 virtual void 00083 onAssociatedPerMode(wns::service::dll::UnicastAddress rapAdr, bool preserved) = 0; 00084 00085 virtual void 00086 onPlainDisassociation(ModeName mode) = 0; 00087 00088 virtual void 00089 onDisassociatedPerMode(wns::service::dll::UnicastAddress bsAdr, ModeName mode, bool preserved) = 0; 00090 00091 virtual void 00092 disassociating(ModeName mode) = 0; 00093 00094 }; 00095 00096 class IFlowManagerENB: 00097 virtual public IFlowSwitching 00098 { 00099 public: 00100 typedef std::string ModeName; 00101 00102 virtual void 00103 onDisassociationReq(wns::service::dll::UnicastAddress userAdr, ModeName mode, bool preserved) = 0; 00104 }; 00105 00106 } // flowmanager 00107 } // controlplane 00108 } // lte 00109 #endif //LTE_CONTROLPLANE_IFLOWMANAGER_HPP
1.5.5