forest-net
an overlay networks for large-scale virtual worlds
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator
RouterControl.h
Go to the documentation of this file.
1 
9 #ifndef RTRCTL_H
10 #define RTRCTL_H
11 
12 #include <queue>
13 #include <map>
14 #include "RouterCore.h"
15 
16 using namespace chrono;
17 using std::thread;
18 using std::unique_lock;
19 using std::defer_lock;
20 
21 namespace forest {
22 
29 public:
30  RouterControl(Router*, int, Quu<int>, Quu<pair<int,int>>);
31  ~RouterControl();
32  static void start(RouterControl*)
33 
34 private:
35  Router *rtr;
36  int myThx;
37  int inQ;
38  int outQ;
39 
40  void run();
41 
42  // methods for handling incoming signalling requests
43  void handleRequest(pktx, CtlPkt&);
44  void returnToSender(pktx, CtlPkt&);
45 
46  // interface table packets
47  void addIface(CtlPkt&);
48  void dropIface(CtlPkt&);
49  void getIface(CtlPkt&);
50  void modIface(CtlPkt&);
51  void getIfaceSet(CtlPkt&);
52 
53  // link table packets
54  void addLink(CtlPkt&);
55  void dropLink(CtlPkt&);
56  void dropLink(int,fAdr_t=0);
57  void getLink(CtlPkt&);
58  void modLink(CtlPkt&);
59  void getLinkSet(CtlPkt&);
60 
61  // comtree table packets
62  void addComtree(CtlPkt&);
63  void dropComtree(CtlPkt&);
64  void getComtree(CtlPkt&);
65  void modComtree(CtlPkt&);
66  void getComtreeSet(CtlPkt&);
67 
68  void addComtreeLink(CtlPkt&);
69  void dropComtreeLink(CtlPkt&);
70  void dropComtreeLink(int, int, int);
71  void modComtreeLink(CtlPkt&);
72  void getComtreeLink(CtlPkt&);
73 
74  // route table packets
75  void addRoute(CtlPkt&);
76  void dropRoute(CtlPkt&);
77  void getRoute(CtlPkt&);
78  void modRoute(CtlPkt&);
79  void getRouteSet(CtlPkt&);
80 
81  // interface table packets
82  void addFilter(CtlPkt&);
83  void dropFilter(CtlPkt&);
84  void getFilter(CtlPkt&);
85  void modFilter(CtlPkt&);
86  void getFilterSet(CtlPkt&);
87  void getLoggedPackets(CtlPkt&);
88  void enablePacketLog(CtlPkt&);
89 
90  // comtree setup packets
91  void joinComtree(CtkPkt&);
92  void leaveComtree(CtkPkt&);
93  void addBranch(CtkPkt&);
94  void prune(CtkPkt&);
95  void confirm(CtkPkt&);
96 
97  // comtree setup packets
98  bool sendAddBranch(..);
99  bool sendPrune(..);
100  bool sendConfirm(..);
101  bool sendAbort(..);
102  bool sendAddNode(..);
103  bool sendDropNode(..);
104 };
105 
106 } // ends namespace
107 
108 #endif