OpenSDN source code
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
mac_learning_event.h
Go to the documentation of this file.
1 /*
2  * Copyright (c) 2017 Juniper Networks, Inc. All rights reserved.
3  */
4 
5 #ifndef SRC_VNSW_AGENT_MAC_LEARNING_MAC_LEARNING_EVENT_H_
6 #define SRC_VNSW_AGENT_MAC_LEARNING_MAC_LEARNING_EVENT_H_
7 
8 #include "cmn/agent.h"
9 #include "mac_learning_key.h"
10 #include "mac_learning_base.h"
11 
13 class MacIpLearningTable;
14 
16 public:
17  enum Event {
27 
28  };
29 
31  event_(event), pkt_info_(pkt) {}
33  event_(event), mac_learning_entry_(ptr) {
34  }
35 
37  event_(event), vrf_id_(vrf_id) {
38  }
41  event_(event), vrf_id_(vrf_id), ip_(ip), mac_(mac) {
42  }
43 
45  uint32_t gen_id):
46  event_(event), db_entry_(entry), gen_id_(gen_id) {}
47 
49  return mac_learning_entry_;
50  }
51 
53  return event_;
54  }
55 
56  const DBEntry *db_entry() {
57  return db_entry_;
58  }
59 
61  return pkt_info_;
62  }
63 
64  uint32_t vrf_id() {
65  return vrf_id_;
66  }
67 
68  uint32_t gen_id() {
69  return gen_id_;
70  }
72  return ip_;
73  }
75  return mac_;
76  }
77 
78 private:
82  uint32_t vrf_id_;
84  uint32_t gen_id_;
87 };
88 //typedef boost::shared_ptr<MacLearningEntryRequest> MacLearningEntryRequestPtr;
89 
91 public:
94  TokenPool *pool);
96  void Shutdown() {}
97  virtual bool HandleEvent(MacLearningEntryRequestPtr ptr);
98  virtual bool TokenCheck();
99 
101  queue_.Enqueue(ptr);
102  }
103 
106  }
107 
108  void SetQueueDisable(bool disable) {
109  queue_.set_disable(disable);
110  }
111 
112 private:
117 };
119 public:
123  void Shutdown() {}
125 
127  queue_.Enqueue(ptr);
128  }
129 
132  }
133 
134  void SetQueueDisable(bool disable) {
135  queue_.set_disable(disable);
136  }
137 
138 private:
142 };
143 #endif
MacLearningEntryPtr mac_learning_entry_
void SetQueueDisable(bool disable)
DISALLOW_COPY_AND_ASSIGN(MacIpLearningRequestQueue)
WorkQueue< MacLearningEntryRequestPtr > Queue
MacLearningEntryRequest(Event event, uint32_t vrf_id)
MacLearningPartition * partition_
boost::asio::ip::address IpAddress
Definition: address.h:13
MacLearningEntryRequest(Event event, uint32_t vrf_id, IpAddress &ip, MacAddress &mac)
virtual bool TokenCheck()
MacLearningEntryRequest(Event event, PktInfoPtr pkt)
MacIpLearningTable * table_
WorkQueue< MacLearningEntryRequestPtr > Queue
MacLearningEntryRequest(Event event, MacLearningEntryPtr ptr)
MacLearningRequestQueue(MacLearningPartition *partition, TokenPool *pool)
virtual bool HandleEvent(MacLearningEntryRequestPtr ptr)
boost::shared_ptr< MacLearningEntryRequest > MacLearningEntryRequestPtr
void MayBeStartRunner()
Definition: queue_task.h:281
void Enqueue(MacLearningEntryRequestPtr ptr)
void Enqueue(MacLearningEntryRequestPtr ptr)
void set_disable(bool disabled)
Definition: queue_task.h:319
bool HandleEvent(MacLearningEntryRequestPtr ptr)
MacLearningEntryRequest(Event event, const DBEntry *entry, uint32_t gen_id)
void SetQueueDisable(bool disable)
MacLearningEntryPtr mac_learning_entry()
const DBEntry * db_entry()
DISALLOW_COPY_AND_ASSIGN(MacLearningRequestQueue)
bool Enqueue(QueueEntryT entry)
Definition: queue_task.h:248
MacIpLearningRequestQueue(MacIpLearningTable *table)
boost::shared_ptr< PktInfo > PktInfoPtr
Definition: pkt_handler.h:61
boost::shared_ptr< MacLearningEntry > MacLearningEntryPtr