Bridge documentation (#286)
authorGustavo J. A. M. Carneiro <gjc@inescporto.pt>
Tue Aug 26 12:25:08 2008 +0100 (17 months ago)
changeset 35666d041a5be1db
parent 3563 cecda7126440
child 3574 bfea2a4da368
Bridge documentation (#286)
src/devices/bridge/bridge-channel.h
src/devices/bridge/bridge-net-device.h
     1.1 --- a/src/devices/bridge/bridge-channel.h	Sat Aug 23 22:35:10 2008 +0100
     1.2 +++ b/src/devices/bridge/bridge-channel.h	Tue Aug 26 12:25:08 2008 +0100
     1.3 @@ -25,9 +25,13 @@
     1.4  namespace ns3 {
     1.5  
     1.6  /**
     1.7 - * \ingroup netdevice
     1.8 + * \ingroup bridge
     1.9   * 
    1.10 - * \brief bridge net device for bridge things and testing
    1.11 + * \brief Virtual channel implementation for bridges (BridgeNetDevice).
    1.12 + *
    1.13 + * Just like BridgeNetDevice aggregates multiple NetDevices,
    1.14 + * BridgeChannel aggregates multiple channels and make them appear as
    1.15 + * a single channel to upper layers.
    1.16   */
    1.17  class BridgeChannel : public Channel
    1.18  {
     2.1 --- a/src/devices/bridge/bridge-net-device.h	Sat Aug 23 22:35:10 2008 +0100
     2.2 +++ b/src/devices/bridge/bridge-net-device.h	Tue Aug 26 12:25:08 2008 +0100
     2.3 @@ -31,9 +31,37 @@
     2.4  class Node;
     2.5  
     2.6  /**
     2.7 - * \ingroup netdevice
     2.8 + * \ingroup devices
     2.9 + * \defgroup bridge Bridge
    2.10   * 
    2.11 - * \brief bridge net device for bridge things and testing
    2.12 + * \brief a virtual net device that bridges multiple LAN segments
    2.13 + *
    2.14 + * The BridgeNetDevice object is a "virtual" netdevice that aggregates
    2.15 + * multiple "real" netdevices and implements the data plane forwarding
    2.16 + * part of IEEE 802.1D.  By adding a BridgeNetDevice to a Node, it
    2.17 + * will act as a "bridge", or "switch", to multiple LAN segments.
    2.18 + * 
    2.19 + * By default the bridge netdevice implements a "learning bridge"
    2.20 + * algorithm (see 802.1D), where incoming unicast frames from one port
    2.21 + * may occasionally be forwarded throughout all other ports, but
    2.22 + * usually they are forwarded only to a single correct output port.
    2.23 + *
    2.24 + * \attention The Spanning Tree Protocol part of 802.1D is not
    2.25 + * implemented.  Therefore, you have to be careful not to create
    2.26 + * bridging loops, or else the network will collapse.
    2.27 + *
    2.28 + * \attention Bridging is designed to work only with NetDevices
    2.29 + * modelling IEEE 802-style technologies, such as CsmaNetDevice and
    2.30 + * WifiNetDevice.
    2.31 + *
    2.32 + * \attention If including a WifiNetDevice in a bridge, the wifi
    2.33 + * device must be in Access Point mode.  Adhoc mode is not supported
    2.34 + * with bridging.
    2.35 + */
    2.36 +
    2.37 +/**
    2.38 + * \ingroup bridge
    2.39 + * \brief a virtual net device that bridges multiple LAN segments
    2.40   */
    2.41  class BridgeNetDevice : public NetDevice
    2.42  {
    2.43 @@ -41,6 +69,17 @@
    2.44    static TypeId GetTypeId (void);
    2.45    BridgeNetDevice ();
    2.46  
    2.47 +  /** \brief Add a 'port' to a bridge device
    2.48 +   *
    2.49 +   * This method adds a new bridge port to a BridgeNetDevice, so that
    2.50 +   * the new bridge port NetDevice becomes part of the bridge and L2
    2.51 +   * frames start being forwarded to/from this NetDevice.
    2.52 +   *
    2.53 +   * \attention The netdevice that is being added as bridge port must
    2.54 +   * _not_ have an IP address.  In order to add IP connectivity to a
    2.55 +   * bridging node you must enable IP on the BridgeNetDevice itself,
    2.56 +   * never on its port netdevices.
    2.57 +   */
    2.58    void AddBridgePort (Ptr<NetDevice> bridgePort);
    2.59  
    2.60    // inherited from NetDevice base class.