A Discrete-Event Network Simulator
API
ns3::TcpOptionMSS Class Reference

Defines the TCP option of kind 2 (maximum segment size) as in RFC 793 More...

#include "tcp-option-rfc793.h"

+ Inheritance diagram for ns3::TcpOptionMSS:
+ Collaboration diagram for ns3::TcpOptionMSS:

Public Member Functions

 TcpOptionMSS ()
 
 ~TcpOptionMSS () override
 
uint32_t Deserialize (Buffer::Iterator start) override
 Deserialize the Option from a buffer iterator. More...
 
TypeId GetInstanceTypeId () const override
 Get the most derived TypeId for this Object. More...
 
uint8_t GetKind () const override
 Get the ‘kind’ (as in RFC 793) of this option. More...
 
uint16_t GetMSS () const
 Get the Maximum Segment Size stored in the Option. More...
 
uint32_t GetSerializedSize () const override
 Returns number of bytes required for Option serialization. More...
 
void Print (std::ostream &os) const override
 Print the Option contents. More...
 
void Serialize (Buffer::Iterator start) const override
 Serialize the Option to a buffer iterator. More...
 
void SetMSS (uint16_t mss)
 Set the Maximum Segment Size stored in the Option. More...
 
- Public Member Functions inherited from ns3::TcpOption
 TcpOption ()
 
 ~TcpOption () override
 
TypeId GetInstanceTypeId () const override
 Get the most derived TypeId for this Object. More...
 
- Public Member Functions inherited from ns3::Object
 Object ()
 Constructor. More...
 
 ~Object () override
 Destructor. More...
 
void AggregateObject (Ptr< Object > other)
 Aggregate two Objects together. More...
 
void Dispose ()
 Dispose of this Object. More...
 
AggregateIterator GetAggregateIterator () const
 Get an iterator to the Objects aggregated to this one. More...
 
template<typename T >
Ptr< T > GetObject () const
 Get a pointer to the requested aggregated Object. More...
 
template<>
Ptr< ObjectGetObject () const
 Specialization of () for objects of type ns3::Object. More...
 
template<typename T >
Ptr< T > GetObject (TypeId tid) const
 Get a pointer to the requested aggregated Object by TypeId. More...
 
template<>
Ptr< ObjectGetObject (TypeId tid) const
 Specialization of (TypeId tid) for objects of type ns3::Object. More...
 
void Initialize ()
 Invoke DoInitialize on all Objects aggregated to this one. More...
 
bool IsInitialized () const
 Check if the object has been initialized. More...
 
- Public Member Functions inherited from ns3::SimpleRefCount< Object, ObjectBase, ObjectDeleter >
 SimpleRefCount ()
 Default constructor. More...
 
 SimpleRefCount (const SimpleRefCount &o[[maybe_unused]])
 Copy constructor. More...
 
uint32_t GetReferenceCount () const
 Get the reference count of the object. More...
 
SimpleRefCountoperator= (const SimpleRefCount &o[[maybe_unused]])
 Assignment operator. More...
 
void Ref () const
 Increment the reference count. More...
 
void Unref () const
 Decrement the reference count. More...
 
- Public Member Functions inherited from ns3::ObjectBase
virtual ~ObjectBase ()
 Virtual destructor. More...
 
void GetAttribute (std::string name, AttributeValue &value) const
 Get the value of an attribute, raising fatal errors if unsuccessful. More...
 
bool GetAttributeFailSafe (std::string name, AttributeValue &value) const
 Get the value of an attribute without raising errors. More...
 
void SetAttribute (std::string name, const AttributeValue &value)
 Set a single attribute, raising fatal errors if unsuccessful. More...
 
bool SetAttributeFailSafe (std::string name, const AttributeValue &value)
 Set a single attribute without raising errors. More...
 
bool TraceConnect (std::string name, std::string context, const CallbackBase &cb)
 Connect a TraceSource to a Callback with a context. More...
 
bool TraceConnectWithoutContext (std::string name, const CallbackBase &cb)
 Connect a TraceSource to a Callback without a context. More...
 
bool TraceDisconnect (std::string name, std::string context, const CallbackBase &cb)
 Disconnect from a TraceSource a Callback previously connected with a context. More...
 
bool TraceDisconnectWithoutContext (std::string name, const CallbackBase &cb)
 Disconnect from a TraceSource a Callback previously connected without a context. More...
 

Static Public Member Functions

static TypeId GetTypeId ()
 Get the type ID. More...
 
- Static Public Member Functions inherited from ns3::TcpOption
static Ptr< TcpOptionCreateOption (uint8_t kind)
 Creates an option. More...
 
static TypeId GetTypeId ()
 Get the type ID. More...
 
static bool IsKindKnown (uint8_t kind)
 Check if the option is implemented. More...
 
- Static Public Member Functions inherited from ns3::Object
static TypeId GetTypeId ()
 Register this type. More...
 
- Static Public Member Functions inherited from ns3::ObjectBase
static TypeId GetTypeId ()
 Get the type ID. More...
 

Protected Attributes

uint16_t m_mss
 maximum segment size More...
 

Additional Inherited Members

- Public Types inherited from ns3::TcpOption
enum  Kind {
  END = 0 , NOP = 1 , MSS = 2 , WINSCALE = 3 ,
  SACKPERMITTED = 4 , SACK = 5 , TS = 8 , UNKNOWN = 255
}
 The option Kind, as defined in the respective RFCs. More...
 
- Protected Member Functions inherited from ns3::Object
 Object (const Object &o)
 Copy an Object. More...
 
virtual void DoDispose ()
 Destructor implementation. More...
 
virtual void DoInitialize ()
 Initialize() implementation. More...
 
virtual void NotifyNewAggregate ()
 Notify all Objects aggregated to this one of a new Object being aggregated. More...
 
- Protected Member Functions inherited from ns3::ObjectBase
void ConstructSelf (const AttributeConstructionList &attributes)
 Complete construction of ObjectBase; invoked by derived classes. More...
 
virtual void NotifyConstructionCompleted ()
 Notifier called once the ObjectBase is fully constructed. More...
 

Detailed Description

Defines the TCP option of kind 2 (maximum segment size) as in RFC 793

Definition at line 80 of file tcp-option-rfc793.h.

Constructor & Destructor Documentation

◆ TcpOptionMSS()

ns3::TcpOptionMSS::TcpOptionMSS ( )

Definition at line 172 of file tcp-option-rfc793.cc.

◆ ~TcpOptionMSS()

ns3::TcpOptionMSS::~TcpOptionMSS ( )
override

Definition at line 178 of file tcp-option-rfc793.cc.

Member Function Documentation

◆ Deserialize()

uint32_t ns3::TcpOptionMSS::Deserialize ( Buffer::Iterator  start)
overridevirtual

Deserialize the Option from a buffer iterator.

Parameters
startthe buffer iterator
Returns
the number of deserialized bytes

Implements ns3::TcpOption.

Definition at line 220 of file tcp-option-rfc793.cc.

References GetKind(), GetSerializedSize(), m_mss, NS_ABORT_IF, NS_LOG_WARN, ns3::Buffer::Iterator::ReadNtohU16(), ns3::Buffer::Iterator::ReadU8(), and two-ray-to-three-gpp-ch-calibration::start.

+ Here is the call graph for this function:

◆ GetInstanceTypeId()

TypeId ns3::TcpOptionMSS::GetInstanceTypeId ( ) const
overridevirtual

Get the most derived TypeId for this Object.

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

Returns
The TypeId associated to the most-derived type of this instance.

Reimplemented from ns3::Object.

Definition at line 193 of file tcp-option-rfc793.cc.

References GetTypeId().

+ Here is the call graph for this function:

◆ GetKind()

uint8_t ns3::TcpOptionMSS::GetKind ( ) const
overridevirtual

Get the ‘kind’ (as in RFC 793) of this option.

Returns
the Option Kind

Implements ns3::TcpOption.

Definition at line 240 of file tcp-option-rfc793.cc.

References ns3::TcpOption::MSS.

Referenced by Deserialize(), and Serialize().

+ Here is the caller graph for this function:

◆ GetMSS()

uint16_t ns3::TcpOptionMSS::GetMSS ( ) const

Get the Maximum Segment Size stored in the Option.

Returns
The Maximum Segment Size

Definition at line 246 of file tcp-option-rfc793.cc.

References m_mss.

◆ GetSerializedSize()

uint32_t ns3::TcpOptionMSS::GetSerializedSize ( ) const
overridevirtual

Returns number of bytes required for Option serialization.

Returns
number of bytes required for Option serialization

Implements ns3::TcpOption.

Definition at line 205 of file tcp-option-rfc793.cc.

Referenced by Deserialize(), and TcpHeaderWithRFC793OptionTestCase::OneOptionAtTime().

+ Here is the caller graph for this function:

◆ GetTypeId()

TypeId ns3::TcpOptionMSS::GetTypeId ( void  )
static

Get the type ID.

Returns
the object TypeId

Definition at line 183 of file tcp-option-rfc793.cc.

References ns3::TypeId::SetParent().

Referenced by ns3::TcpOption::CreateOption(), and GetInstanceTypeId().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ Print()

void ns3::TcpOptionMSS::Print ( std::ostream &  os) const
overridevirtual

Print the Option contents.

Parameters
osthe output stream

Implements ns3::TcpOption.

Definition at line 199 of file tcp-option-rfc793.cc.

References m_mss.

◆ Serialize()

void ns3::TcpOptionMSS::Serialize ( Buffer::Iterator  start) const
overridevirtual

Serialize the Option to a buffer iterator.

Parameters
startthe buffer iterator

Implements ns3::TcpOption.

Definition at line 211 of file tcp-option-rfc793.cc.

References GetKind(), m_mss, two-ray-to-three-gpp-ch-calibration::start, ns3::Buffer::Iterator::WriteHtonU16(), and ns3::Buffer::Iterator::WriteU8().

+ Here is the call graph for this function:

◆ SetMSS()

void ns3::TcpOptionMSS::SetMSS ( uint16_t  mss)

Set the Maximum Segment Size stored in the Option.

Parameters
mssThe Maximum Segment Size

Definition at line 252 of file tcp-option-rfc793.cc.

References m_mss.

Referenced by TcpHeaderWithRFC793OptionTestCase::OneOptionAtTime().

+ Here is the caller graph for this function:

Member Data Documentation

◆ m_mss

uint16_t ns3::TcpOptionMSS::m_mss
protected

maximum segment size

Definition at line 112 of file tcp-option-rfc793.h.

Referenced by Deserialize(), GetMSS(), Print(), Serialize(), and SetMSS().


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