6 #include <netinet/in.h>
7 #include <netinet/tcp.h>
8 #include <netinet/udp.h>
10 #include <virtual_machine_types.h>
11 #include <virtual_network_types.h>
12 #include <vrouter_types.h>
29 : tcp_sport_(), tcp_dport_(), udp_sport_(), udp_dport_() {
54 if (counts_[idx] == 1) {
61 bmap.push_back(bitmap_[i]);
68 if (bitmap_[i] != bitmap_old_[i]) {
69 bitmap_old_[i] = bitmap_[i];
76 bmap.push_back(bitmap_old_[i]);
84 if (proto == IPPROTO_UDP) {
89 if (proto == IPPROTO_TCP) {
96 std::vector<uint32_t> tmp;
98 bmap.set_tcp_sport_bitmap(tmp);
102 bmap.set_tcp_dport_bitmap(tmp);
106 bmap.set_udp_sport_bitmap(tmp);
110 bmap.set_udp_dport_bitmap(tmp);
static const uint16_t kBmapCount
static const uint16_t kBucketCount
void AddPort(uint8_t proto, uint16_t sport, uint16_t dport)
static const uint16_t kBitsPerEntry
uint32_t bitmap_old_[kBmapCount]
void Encode(std::vector< uint32_t > &bmap)
uint32_t bitmap_[kBmapCount]
bool Sync(std::vector< uint32_t > &bmap)
void AddPort(uint16_t port)
uint32_t counts_[kBucketCount]
void Encode(PortBucketBitmap &bmap)