26 #include "ns3/type-id.h"
71 static kindToTid toTid[] =
81 for (
unsigned int i = 0; i <
sizeof (toTid) /
sizeof (kindToTid); ++i)
83 if (toTid[i].kind == kind)
90 return CreateObject<TcpOptionUnknown> ();
128 .AddConstructor<TcpOptionUnknown> ()
142 os <<
"Unknown option";
156 NS_LOG_WARN (
"Can't Serialize an Unknown Tcp Option");
171 NS_LOG_WARN (
"Trying to Deserialize an Unknown Option of Kind " <<
int (
m_kind));
174 if (m_size < 2 || m_size > 40)
176 NS_LOG_WARN (
"Unable to parse an unknown option of kind " <<
int (
m_kind) <<
" with apparent size " <<
int (
m_size));
virtual uint8_t GetKind(void) const
Get the `kind' (as in RFC 793) of this option.
#define NS_OBJECT_ENSURE_REGISTERED(type)
Register the class in the ns-3 factory.
#define NS_LOG_COMPONENT_DEFINE(name)
Define a Log component with a specific name.
void SetTypeId(TypeId tid)
static TypeId GetTypeId(void)
Get the type ID.
iterator in a Buffer instance
virtual void Print(std::ostream &os) const
Print the Option contents.
Ptr< Object > Create(void) const
virtual ~TcpOptionUnknown()
virtual void Serialize(Buffer::Iterator start) const
Serialize the Option to a buffer iterator.
static TypeId GetTypeId(void)
Get the type ID.
void Read(uint8_t *buffer, uint32_t size)
virtual uint32_t Deserialize(Buffer::Iterator start)
Deserialize the Option from a buffer iterator.
uint8_t m_content[40]
The option data.
uint32_t m_size
The unknown option size.
not a standardized value; for unknown recv'd options
virtual uint32_t GetSerializedSize(void) const
Returns number of bytes required for Option serialization.
instantiate subclasses of ns3::Object.
static TypeId GetTypeId(void)
Get the type ID.
void WriteU8(uint8_t data)
static bool IsKindKnown(uint8_t kind)
Check if the option is implemented.
#define NS_LOG_WARN(msg)
Use NS_LOG to output a message of level LOG_WARN.
static TypeId GetTypeId(void)
Get the type ID.
static TypeId GetTypeId(void)
Get the type ID.
uint8_t m_kind
The unknown option kind.
Kind
The option Kind, as defined in the respective RFCs.
void Write(uint8_t const *buffer, uint32_t size)
Base class for all kinds of TCP options.
a base class which provides memory management and object aggregation
virtual TypeId GetInstanceTypeId(void) const
virtual TypeId GetInstanceTypeId(void) const
a unique identifier for an interface.
static TypeId GetTypeId(void)
Get the type ID.
static Ptr< TcpOption > CreateOption(uint8_t kind)
Creates an option.
TypeId SetParent(TypeId tid)
static TypeId GetTypeId(void)
Get the type ID.