|
|
| 33 |
/** |
33 |
/** |
| 34 |
* \ingroup netdevice |
34 |
* \ingroup netdevice |
| 35 |
* |
35 |
* |
| 36 |
* \brief bridge net device for bridge things and testing |
36 |
* \brief a virtual net device that bridges multiple LAN segments |
|
|
37 |
* |
| 38 |
* The BridgeNetDevice object is a "virtual" netdevice that aggregates |
| 39 |
* multiple "real" netdevices and implements the data plane forwarding |
| 40 |
* part of IEEE 802.1D. By adding a BridgeNetDevice to a Node, it |
| 41 |
* will act as a "bridge", or "switch", to multiple LAN segments. |
| 42 |
* |
| 43 |
* By default the bridge netdevice implements a "learning bridge" |
| 44 |
* algorithm (see 802.1D), where incoming unicast frames from one port |
| 45 |
* may occasionally be forwarded throughout all other ports, but |
| 46 |
* usually they are forwarded only to a single correct output port. |
| 47 |
* |
| 48 |
* \attention The Spanning Tree Protocol part of 802.1D is not |
| 49 |
* implemented. Therefore, you have to be careful not to create |
| 50 |
* bridging loops, or else the network will collapse. |
| 51 |
* |
| 52 |
* \attention Bridging is designed to work only with NetDevices |
| 53 |
* modelling IEEE 802-style technologies, such as CsmaNetDevice and |
| 54 |
* WifiNetDevice. |
| 55 |
* |
| 56 |
* \attention If including a WifiNetDevice in a bridge, the wifi |
| 57 |
* device must be in Access Point mode. Adhoc mode is not supported |
| 58 |
* with bridging. |
| 37 |
*/ |
59 |
*/ |
| 38 |
class BridgeNetDevice : public NetDevice |
60 |
class BridgeNetDevice : public NetDevice |
| 39 |
{ |
61 |
{ |
|
|
| 41 |
static TypeId GetTypeId (void); |
63 |
static TypeId GetTypeId (void); |
| 42 |
BridgeNetDevice (); |
64 |
BridgeNetDevice (); |
| 43 |
|
65 |
|
|
|
66 |
/** \brief Add a 'port' to a bridge device |
| 67 |
* |
| 68 |
* This method adds a new bridge port to a BridgeNetDevice, so that |
| 69 |
* the new bridge port NetDevice becomes part of the bridge and L2 |
| 70 |
* frames start being forwarded to/from this NetDevice. |
| 71 |
* |
| 72 |
* \attention The netdevice that is being added as bridge port must |
| 73 |
* _not_ have an IP address. In order to add IP connectivity to a |
| 74 |
* bridging node you must enable IP on the BridgeNetDevice itself, |
| 75 |
* never on its port netdevices. |
| 76 |
*/ |
| 44 |
void AddBridgePort (Ptr<NetDevice> bridgePort); |
77 |
void AddBridgePort (Ptr<NetDevice> bridgePort); |
| 45 |
|
78 |
|
| 46 |
// inherited from NetDevice base class. |
79 |
// inherited from NetDevice base class. |