OpenSDN source code
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
vn_uve_table.h
Go to the documentation of this file.
1 /*
2  * Copyright (c) 2013 Juniper Networks, Inc. All rights reserved.
3  */
4 
5 #ifndef vnsw_agent_vn_uve_table_h
6 #define vnsw_agent_vn_uve_table_h
7 
8 #include <string>
9 #include <set>
10 #include <map>
11 #include <vector>
12 #include <virtual_network_types.h>
13 #include <oper/vn.h>
14 #include "pkt/flow_proto.h"
15 #include "pkt/flow_table.h"
16 #include <tbb/mutex.h>
17 #include <uve/l4_port_bitmap.h>
18 #include <uve/vn_uve_entry.h>
19 #include <uve/vn_uve_table_base.h>
21 
22 //The container class for objects representing VirtualNetwork UVEs
23 //Defines routines for storing and managing (add, delete, change and send)
24 //VirtualNetwork UVEs
25 class VnUveTable : public VnUveTableBase {
26 public:
27  VnUveTable(Agent *agent, uint32_t default_intvl);
28  virtual ~VnUveTable();
29 
30  void UpdateBitmap(const std::string &vn, uint8_t proto, uint16_t sport,
31  uint16_t dport);
32  void SendVnStats();
33  void UpdateInterVnStats(const std::string &src, const std::string &dst,
34  uint64_t bytes, uint64_t pkts, bool outgoing);
35  void IncrVnAceStats(const FlowUveVnAcePolicyInfo &info);
36 
37 protected:
38  //The following API is made protected for UT.
39  void SendVnStatsMsg(const VnEntry *vn);
40  void SendVnAceStats(VnUveEntryBase *entry, const VnEntry *vn);
41 private:
42  virtual VnUveEntryPtr Allocate(const VnEntry *vn);
43  virtual VnUveEntryPtr Allocate();
44  bool SendUnresolvedVnMsg(const std::string &vn, UveVirtualNetworkAgent &u);
45 
49 };
50 
51 #endif // vnsw_agent_vn_uve_table_h
void IncrVnAceStats(const FlowUveVnAcePolicyInfo &info)
bool SendUnresolvedVnMsg(const std::string &vn, UveVirtualNetworkAgent &u)
Definition: vn_uve_table.cc:26
DBTableBase::ListenerId vn_listener_id_
Definition: vn_uve_table.h:46
int ListenerId
Definition: db_table.h:62
DBTableBase::ListenerId intf_listener_id_
Definition: vn_uve_table.h:47
Definition: agent.h:358
DISALLOW_COPY_AND_ASSIGN(VnUveTable)
void SendVnStatsMsg(const VnEntry *vn)
Definition: vn_uve_table.cc:71
void UpdateInterVnStats(const std::string &src, const std::string &dst, uint64_t bytes, uint64_t pkts, bool outgoing)
Definition: vn_uve_table.cc:99
virtual ~VnUveTable()
Definition: vn_uve_table.cc:13
Definition: vn.h:151
void SendVnStats()
Definition: vn_uve_table.cc:50
VnUveTable(Agent *agent, uint32_t default_intvl)
Definition: vn_uve_table.cc:9
void SendVnAceStats(VnUveEntryBase *entry, const VnEntry *vn)
boost::shared_ptr< VnUveEntryBase > VnUveEntryPtr
virtual VnUveEntryPtr Allocate()
Definition: vn_uve_table.cc:21
void UpdateBitmap(const std::string &vn, uint8_t proto, uint16_t sport, uint16_t dport)
Definition: vn_uve_table.cc:87