OpenSDN source code
linux_fdb.h
Go to the documentation of this file.
1
/*
2
* Copyright (c) 2014 Juniper Networks, Inc. All rights reserved.
3
*/
4
5
#ifndef vnsw_agent_ksync_linux_fdb_h
6
#define vnsw_agent_ksync_linux_fdb_h
7
8
class
KSyncLinuxVrfObject
;
9
class
KSyncLinuxFdbObject
;
10
11
/**************************************************************************
12
* Implements KSyncVxlanVrfObject for Linux
13
**************************************************************************/
14
class
KSyncLinuxVrfObject
:
public
KSyncVxlanVrfObject
{
15
public
:
16
KSyncLinuxVrfObject
(
KSyncLinuxVxlan
*
ksync
);
17
virtual
~KSyncLinuxVrfObject
();
18
19
// Allocates a KSyncVxlanFdbObject for every VRF
20
KSyncVxlanRouteObject
*
AllocBridgeRouteTable
(
const
VrfEntry
*entry);
21
private
:
22
DISALLOW_COPY_AND_ASSIGN
(
KSyncLinuxVrfObject
);
23
};
24
25
/**************************************************************************
26
* Implements KSyncVxlanRouteObject for Linux
27
**************************************************************************/
28
class
KSyncLinuxFdbObject
:
public
KSyncVxlanRouteObject
{
29
public
:
30
KSyncLinuxFdbObject
(
KSyncLinuxVrfObject
*vrf,
AgentRouteTable
*rt_table);
31
virtual
~KSyncLinuxFdbObject
();
32
33
// Allocates an entry of type KSyncLinuxFdbEntry from DBEntry of type
34
// BridgeRouteEntry
35
KSyncEntry
*
DBToKSyncEntry
(
const
DBEntry
*e);
36
// Allocate and initialize an entry of type KSyncLinuxFdbEntry
37
KSyncEntry
*
Alloc
(
const
KSyncEntry
*entry, uint32_t index);
38
private
:
39
DISALLOW_COPY_AND_ASSIGN
(
KSyncLinuxFdbObject
);
40
};
41
42
/**************************************************************************
43
* Implements KSyncVxlanFdbEntry for Linux
44
**************************************************************************/
45
class
KSyncLinuxFdbEntry
:
public
KSyncVxlanFdbEntry
{
46
public
:
47
KSyncLinuxFdbEntry
(
KSyncLinuxFdbObject
*obj,
const
BridgeRouteEntry
*route);
48
KSyncLinuxFdbEntry
(
KSyncLinuxFdbObject
*obj,
49
const
KSyncLinuxFdbEntry
*entry);
50
virtual
~KSyncLinuxFdbEntry
();
51
52
// Creates a FDB entry in Vxlan Bridge
53
// Handles FDB entries on local port as well as those reachable on tunnel
54
bool
Add
();
55
// Modify a FDB entry in Vxlan Bridge
56
bool
Change
();
57
// Modify a FDB entry from Vxlan Bridge
58
bool
Delete
();
59
private
:
60
DISALLOW_COPY_AND_ASSIGN
(
KSyncLinuxFdbEntry
);
61
};
62
#endif
// vnsw_agent_ksync_linux_fdb_h
AgentRouteTable
Agent supports multiple route tables - Inet-unicast (IPv4/IPv6), Inet-multicast, bridge,...
Definition:
agent_route.h:109
BridgeRouteEntry
Definition:
bridge_route.h:100
DBEntry
Definition:
db_entry.h:97
KSyncEntry
Definition:
ksync_entry.h:33
KSyncLinuxFdbEntry
Definition:
linux_fdb.h:45
KSyncLinuxFdbEntry::Add
bool Add()
Definition:
linux_vxlan.cc:244
KSyncLinuxFdbEntry::DISALLOW_COPY_AND_ASSIGN
DISALLOW_COPY_AND_ASSIGN(KSyncLinuxFdbEntry)
KSyncLinuxFdbEntry::Delete
bool Delete()
Definition:
linux_vxlan.cc:270
KSyncLinuxFdbEntry::KSyncLinuxFdbEntry
KSyncLinuxFdbEntry(KSyncLinuxFdbObject *obj, const BridgeRouteEntry *route)
Definition:
linux_vxlan.cc:226
KSyncLinuxFdbEntry::Change
bool Change()
Definition:
linux_vxlan.cc:266
KSyncLinuxFdbEntry::~KSyncLinuxFdbEntry
virtual ~KSyncLinuxFdbEntry()
Definition:
linux_vxlan.cc:231
KSyncLinuxFdbObject
Definition:
linux_fdb.h:28
KSyncLinuxFdbObject::Alloc
KSyncEntry * Alloc(const KSyncEntry *entry, uint32_t index)
Definition:
linux_vxlan.cc:302
KSyncLinuxFdbObject::~KSyncLinuxFdbObject
virtual ~KSyncLinuxFdbObject()
Definition:
linux_vxlan.cc:299
KSyncLinuxFdbObject::DISALLOW_COPY_AND_ASSIGN
DISALLOW_COPY_AND_ASSIGN(KSyncLinuxFdbObject)
KSyncLinuxFdbObject::DBToKSyncEntry
KSyncEntry * DBToKSyncEntry(const DBEntry *e)
Definition:
linux_vxlan.cc:309
KSyncLinuxFdbObject::KSyncLinuxFdbObject
KSyncLinuxFdbObject(KSyncLinuxVrfObject *vrf, AgentRouteTable *rt_table)
Definition:
linux_vxlan.cc:294
KSyncLinuxVrfObject
Definition:
linux_fdb.h:14
KSyncLinuxVrfObject::AllocBridgeRouteTable
KSyncVxlanRouteObject * AllocBridgeRouteTable(const VrfEntry *entry)
Definition:
linux_vxlan.cc:325
KSyncLinuxVrfObject::KSyncLinuxVrfObject
KSyncLinuxVrfObject(KSyncLinuxVxlan *ksync)
Definition:
linux_vxlan.cc:317
KSyncLinuxVrfObject::~KSyncLinuxVrfObject
virtual ~KSyncLinuxVrfObject()
Definition:
linux_vxlan.cc:321
KSyncLinuxVrfObject::DISALLOW_COPY_AND_ASSIGN
DISALLOW_COPY_AND_ASSIGN(KSyncLinuxVrfObject)
KSyncLinuxVxlan
Definition:
linux_vxlan.h:24
KSyncVxlanFdbEntry
Definition:
ksync_vxlan_route.h:118
KSyncVxlanRouteObject
Definition:
ksync_vxlan_route.h:62
KSyncVxlanVrfObject
Definition:
ksync_vxlan_route.h:23
KSyncVxlanVrfObject::ksync
KSyncVxlan * ksync() const
Definition:
ksync_vxlan_route.h:43
VrfEntry
Definition:
vrf.h:86
contrail
controller
src
vnsw
agent
vxlan_agent
linux
linux_fdb.h
Generated by
1.9.1