ns3::NixVector Class Reference
[Packet]
Neighbor-index data structure for nix-vector routing.
More...
#include <nix-vector.h>
List of all members.
Detailed Description
Neighbor-index data structure for nix-vector routing.
This data structure holds a vector of "neighbor-indexes" for a simulation specific routing protocol, nix-vector routing. Theses neighbor-indexes correspond to the net-device which a node should use to route a packet. A nix-vector is built (or fetched from a cache) on-demand. The nix-vector is transmitted with the packet, and along each hop of the route, the current node extracts the appropriate neighbor-index and routes the packet.
Constructor & Destructor Documentation
ns3::NixVector::NixVector |
( |
const NixVector & |
o |
) |
|
Member Function Documentation
void ns3::NixVector::AddNeighborIndex |
( |
uint32_t |
newBits, |
|
|
uint32_t |
numberOfBits | |
|
) |
| | |
- Parameters:
-
| newBits | the neighbor-index to be added to the vector |
| numberOfBits | the number of bits that newBits contains |
Adds the neighbor index to the vector using a fair amount of bit manipulation to pack everything in efficiently.
Note: This function assumes that the number of bits to be added is always less than or equal to 32, ie., you can only span one entry of a nix-vector at a time. This is reasonable, since 32 bits gives you 2^32 possible neighbors.
uint32_t ns3::NixVector::BitCount |
( |
uint32_t |
numberOfNeighbors |
) |
const |
- Returns:
- number of bits of numberOfNeighbors
- Parameters:
-
| numberOfNeighbors | the total number of neighbors |
This function is used to determine the number of bits of numberOfNeighbors so that this value can be passed in to AddNeighborIndex or ExtractNeighborIndex.
- Returns:
- a copy of this nix-vector
uint32_t ns3::NixVector::Deserialize |
( |
const uint32_t * |
buffer, |
|
|
uint32_t |
size | |
|
) |
| | |
- Returns:
- zero if a complete nix-vector is not deserialized
- Parameters:
-
| buffer | points to buffer for deserialization |
| size | number of bytes to deserialize |
The raw character buffer containing all the nix-vector information is deserialized into this nix-vector.
uint32_t ns3::NixVector::ExtractNeighborIndex |
( |
uint32_t |
numberOfBits |
) |
|
- Returns:
- the neighbor index
- Parameters:
-
| numberOfBits | the number of bits to extract from the vector |
Extracts the number of bits specified from the vector and returns the value extracted
Note: This function assumes that the number of bits to be extracted is always less than or equal to 32, ie., you can only span one entry of a nix-vector at a time. This is reasonable, since 32 bits gives you 2^32 possible neighbors.
uint32_t ns3::NixVector::GetRemainingBits |
( |
void |
|
) |
|
- Returns:
- number of bits remaining in the nix-vector (ie m_total - m_used)
uint32_t ns3::NixVector::GetSerializedSize |
( |
void |
|
) |
const |
- Returns:
- the number of bytes required for serialization
uint32_t ns3::NixVector::Serialize |
( |
uint32_t * |
buffer, |
|
|
uint32_t |
maxSize | |
|
) |
| | const |
- Returns:
- zero if buffer not large enough
- Parameters:
-
| buffer | points to serialization buffer |
| maxSize | max number of bytes to write |
This nix-vector is serialized into the raw character buffer parameter.
The documentation for this class was generated from the following file: