Public Member Functions | Static Public Member Functions

ns3::Ipv4Header Class Reference

Packet header for IPv4. More...

#include <ipv4-header.h>

Inheritance diagram for ns3::Ipv4Header:
Inheritance graph
[legend]
Collaboration diagram for ns3::Ipv4Header:
Collaboration graph
[legend]

List of all members.

Public Member Functions

 Ipv4Header ()
 Construct a null IPv4 header.
void EnableChecksum (void)
 Enable checksum calculation for this header.
void SetPayloadSize (uint16_t size)
void SetIdentification (uint16_t identification)
void SetTos (uint8_t tos)
void SetMoreFragments (void)
void SetLastFragment (void)
void SetDontFragment (void)
void SetMayFragment (void)
void SetFragmentOffset (uint16_t offset)
void SetTtl (uint8_t ttl)
void SetProtocol (uint8_t num)
void SetSource (Ipv4Address source)
void SetDestination (Ipv4Address destination)
uint16_t GetPayloadSize (void) const
uint16_t GetIdentification (void) const
uint8_t GetTos (void) const
bool IsLastFragment (void) const
bool IsDontFragment (void) const
uint16_t GetFragmentOffset (void) const
uint8_t GetTtl (void) const
uint8_t GetProtocol (void) const
Ipv4Address GetSource (void) const
Ipv4Address GetDestination (void) const
bool IsChecksumOk (void) const
virtual TypeId GetInstanceTypeId (void) const
virtual void Print (std::ostream &os) const
virtual uint32_t GetSerializedSize (void) const
virtual void Serialize (Buffer::Iterator start) const
virtual uint32_t Deserialize (Buffer::Iterator start)

Static Public Member Functions

static TypeId GetTypeId (void)
 This method returns the TypeId associated to ns3::Ipv4Header.

Detailed Description

Packet header for IPv4.


Member Function Documentation

virtual uint32_t ns3::Ipv4Header::Deserialize ( Buffer::Iterator  start ) [virtual]
Parameters:
startan iterator which points to where the header should written.
Returns:
the number of bytes read.

This method is used by Packet::RemoveHeader to re-create a header from the byte buffer of a packet. The data read is expected to match bit-for-bit the representation of this header in real networks.

Implements ns3::Header.

Ipv4Address ns3::Ipv4Header::GetDestination ( void   ) const
Returns:
the destination address of this packet
uint16_t ns3::Ipv4Header::GetFragmentOffset ( void   ) const
Returns:
the offset of this fragment.
uint16_t ns3::Ipv4Header::GetIdentification ( void   ) const
Returns:
the identification field of this packet.
virtual TypeId ns3::Ipv4Header::GetInstanceTypeId ( void   ) const [virtual]
Returns:
the TypeId associated to the most-derived type of this instance.

This method is typically implemented by ns3::Object::GetInstanceTypeId but some classes which derive from ns3::ObjectBase directly have to implement it themselves.

Implements ns3::ObjectBase.

uint16_t ns3::Ipv4Header::GetPayloadSize ( void   ) const
Returns:
the size of the payload in bytes
uint8_t ns3::Ipv4Header::GetProtocol ( void   ) const
Returns:
the protocol field of this packet
virtual uint32_t ns3::Ipv4Header::GetSerializedSize ( void   ) const [virtual]
Returns:
the expected size of the header.

This method is used by Packet::AddHeader to store a header into the byte buffer of a packet. This method should return the number of bytes which are needed to store the full header data by Serialize.

Implements ns3::Header.

Ipv4Address ns3::Ipv4Header::GetSource ( void   ) const
Returns:
the source address of this packet
uint8_t ns3::Ipv4Header::GetTos ( void   ) const
Returns:
the TOS field of this packet.
uint8_t ns3::Ipv4Header::GetTtl ( void   ) const
Returns:
the TTL field of this packet
static TypeId ns3::Ipv4Header::GetTypeId ( void   ) [static]

This method returns the TypeId associated to ns3::Ipv4Header.

No Attributes defined for this type.
No TraceSources defined for this type.

Reimplemented from ns3::Header.

bool ns3::Ipv4Header::IsChecksumOk ( void   ) const
Returns:
true if the ipv4 checksum is correct, false otherwise.

If Ipv4Header::EnableChecksums has not been called prior to deserializing this header, this method will always return true.

bool ns3::Ipv4Header::IsDontFragment ( void   ) const
Returns:
true if this is this packet can be fragmented.
bool ns3::Ipv4Header::IsLastFragment ( void   ) const
Returns:
true if this is the last fragment of a packet, false otherwise.
virtual void ns3::Ipv4Header::Print ( std::ostream &  os ) const [virtual]
Parameters:
osoutput stream This method is used by Packet::Print to print the content of a trailer as ascii data to a c++ output stream. Although the trailer is free to format its output as it wishes, it is recommended to follow a few rules to integrate with the packet pretty printer: start with flags, small field values located between a pair of parens. Values should be separated by whitespace. Follow the parens with the important fields, separated by whitespace. i.e.: (field1 val1 field2 val2 field3 val3) field4 val4 field5 val5

Implements ns3::Header.

virtual void ns3::Ipv4Header::Serialize ( Buffer::Iterator  start ) const [virtual]
Parameters:
startan iterator which points to where the header should be written.

This method is used by Packet::AddHeader to store a header into the byte buffer of a packet. The data written is expected to match bit-for-bit the representation of this header in a real network.

Implements ns3::Header.

void ns3::Ipv4Header::SetDestination ( Ipv4Address  destination )
Parameters:
destinationthe destination of this packet.
void ns3::Ipv4Header::SetDontFragment ( void   )

Don't fragment this packet: if you need to anyway, drop it.

void ns3::Ipv4Header::SetFragmentOffset ( uint16_t  offset )
Parameters:
offsetthe ipv4 fragment offset
void ns3::Ipv4Header::SetIdentification ( uint16_t  identification )
Parameters:
identificationthe Identification field of IPv4 packets.

By default, set to zero.

void ns3::Ipv4Header::SetLastFragment ( void   )

This packet is the last packet of a fragmented ipv4 packet.

void ns3::Ipv4Header::SetMayFragment ( void   )

If you need to fragment this packet, you can do it.

void ns3::Ipv4Header::SetMoreFragments ( void   )

This packet is not the last packet of a fragmented ipv4 packet.

void ns3::Ipv4Header::SetPayloadSize ( uint16_t  size )
Parameters:
sizethe size of the payload in bytes
void ns3::Ipv4Header::SetProtocol ( uint8_t  num )
Parameters:
numthe ipv4 protocol field
void ns3::Ipv4Header::SetSource ( Ipv4Address  source )
Parameters:
sourcethe source of this packet
void ns3::Ipv4Header::SetTos ( uint8_t  tos )
Parameters:
tosthe 8 bits of Ipv4 TOS.
void ns3::Ipv4Header::SetTtl ( uint8_t  ttl )
Parameters:
ttlthe ipv4 TTL

The documentation for this class was generated from the following files: