NS-3 based Named Data Networking (NDN) simulator
ndnSIM: NDN, CCN, CCNx, content centric networks
API Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Groups Pages
per-fib-limits.cc
1 /* -*- Mode: C++; c-file-style: "gnu"; indent-tabs-mode:nil; -*- */
2 /*
3  * Copyright (c) 2012 University of California, Los Angeles
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 version 2 as
7  * published by the Free Software Foundation;
8  *
9  * This program is distributed in the hope that it will be useful,
10  * but WITHOUT ANY WARRANTY; without even the implied warranty of
11  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12  * GNU General Public License for more details.
13  *
14  * You should have received a copy of the GNU General Public License
15  * along with this program; if not, write to the Free Software
16  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
17  *
18  * Author: Alexander Afanasyev <alexander.afanasyev@ucla.edu>
19  */
20 
21 #include "per-fib-limits.h"
22 #include "per-out-face-limits.h"
23 
24 #include "ns3/ndn-l3-protocol.h"
25 #include "ns3/ndn-interest.h"
26 #include "ns3/ndn-data.h"
27 
28 #include "best-route.h"
29 #include "flooding.h"
30 #include "smart-flooding.h"
31 
32 namespace ns3 {
33 namespace ndn {
34 namespace fw {
35 
36 extern template class PerOutFaceLimits<BestRoute>;
37 extern template class PerOutFaceLimits<Flooding>;
38 extern template class PerOutFaceLimits<SmartFlooding>;
39 
40 template class PerFibLimits< PerOutFaceLimits<BestRoute> >;
41 typedef PerFibLimits< PerOutFaceLimits<BestRoute> > PerFibLimitsPerOutFaceLimitsBestRoute;
42 NS_OBJECT_ENSURE_REGISTERED (PerFibLimitsPerOutFaceLimitsBestRoute);
43 
44 template class PerFibLimits< PerOutFaceLimits<Flooding> >;
45 typedef PerFibLimits< PerOutFaceLimits<Flooding> > PerFibLimitsPerOutFaceLimitsFlooding;
46 NS_OBJECT_ENSURE_REGISTERED (PerFibLimitsPerOutFaceLimitsFlooding);
47 
48 template class PerFibLimits< PerOutFaceLimits<SmartFlooding> >;
49 typedef PerFibLimits< PerOutFaceLimits<SmartFlooding> > PerFibLimitsPerOutFaceLimitsSmartFlooding;
50 NS_OBJECT_ENSURE_REGISTERED (PerFibLimitsPerOutFaceLimitsSmartFlooding);
51 
52 #ifdef DOXYGEN
53 // /**
54 // * \brief Strategy implementing per-fib-per-out-face limits on top of BestRoute strategy
55 // */
56 class BestRoute::PerOutFaceLimits::PerFibLimits : public ::ns3::ndn::fw::PerFibLimits< ::ns3::ndn::fw::PerOutFaceLimits<BestRoute> > { };
57 
61 class Flooding::PerOutFaceLimits::PerFibLimits : public ::ns3::ndn::fw::PerFibLimits< ::ns3::ndn::fw::PerOutFaceLimits<Flooding> > { };
62 
66 class SmartFlooding::PerOutFaceLimits::PerFibLimits : public ::ns3::ndn::fw::PerFibLimits< ::ns3::ndn::fw::PerOutFaceLimits<SmartFlooding> > { };
67 
68 #endif
69 
70 } // namespace fw
71 } // namespace ndn
72 } // namespace ns3
Strategy implementing per-fib-per-out-face limits on top of BestRoute strategy.
Strategy implementing per-fib-per-out-face limits on top of SmartFlooding strategy.
Strategy implementing per-FIB entry limits.
Strategy implementing per-fib-per-out-face limits on top of Flooding strategy.