From 03bf552480b4b5802b123d7d9b4e59b784a65cb6 Mon Sep 17 00:00:00 2001 From: Sebastien Vincent Date: Wed, 18 Nov 2009 10:17:36 +0100 Subject: [PATCH] Coding style. --- examples/ipv6/fragmentation-ipv6.cc | 49 +- src/internet-stack/ipv6-extension-demux.cc | 22 +- src/internet-stack/ipv6-extension-demux.h | 100 ++-- src/internet-stack/ipv6-extension-header.cc | 60 +-- src/internet-stack/ipv6-extension.cc | 550 ++++++++++---------- src/internet-stack/ipv6-option-demux.cc | 22 +- src/internet-stack/ipv6-option-demux.h | 100 ++-- src/internet-stack/ipv6-option-header.cc | 10 +- src/internet-stack/ipv6-option.cc | 6 +- 9 files changed, 459 insertions(+), 460 deletions(-) diff --git a/examples/ipv6/fragmentation-ipv6.cc b/examples/ipv6/fragmentation-ipv6.cc index 056505ada..8160ca190 100644 --- a/examples/ipv6/fragmentation-ipv6.cc +++ b/examples/ipv6/fragmentation-ipv6.cc @@ -45,26 +45,25 @@ NS_LOG_COMPONENT_DEFINE ("FragmentationIpv6Example"); */ class StackHelper { - public: - - /** - * \brief Add an address to a IPv6 node. - * \param n node - * \param interface interface index - * \param address IPv6 address to add - */ - inline void AddAddress (Ptr& n, uint32_t interface, Ipv6Address address) - { +public: + /** + * \brief Add an address to a IPv6 node. + * \param n node + * \param interface interface index + * \param address IPv6 address to add + */ + inline void AddAddress (Ptr& n, uint32_t interface, Ipv6Address address) + { Ptr ipv6 = n->GetObject (); ipv6->AddAddress (interface, address); } - /** - * \brief Print the routing table. - * \param n the node - */ - inline void PrintRoutingTable (Ptr& n) - { + /** + * \brief Print the routing table. + * \param n the node + */ + inline void PrintRoutingTable (Ptr& n) + { Ptr routing = 0; Ipv6StaticRoutingHelper routingHelper; Ptr ipv6 = n->GetObject (); @@ -78,15 +77,15 @@ class StackHelper nbRoutes = routing->GetNRoutes (); for (uint32_t i = 0 ; i < nbRoutes ; i++) - { - route = routing->GetRoute (i); - std::cout << route.GetDest () << "\t" - << route.GetGateway () << "\t" - << route.GetInterface () << "\t" - << route.GetPrefixToUse () << "\t" - << std::endl; - } - } + { + route = routing->GetRoute (i); + std::cout << route.GetDest () << "\t" + << route.GetGateway () << "\t" + << route.GetInterface () << "\t" + << route.GetPrefixToUse () << "\t" + << std::endl; + } + } }; int main (int argc, char** argv) diff --git a/src/internet-stack/ipv6-extension-demux.cc b/src/internet-stack/ipv6-extension-demux.cc index 854623310..ab694ecf6 100644 --- a/src/internet-stack/ipv6-extension-demux.cc +++ b/src/internet-stack/ipv6-extension-demux.cc @@ -35,9 +35,9 @@ TypeId Ipv6ExtensionDemux::GetTypeId () static TypeId tid = TypeId ("ns3::Ipv6ExtensionDemux") .SetParent () .AddAttribute ("Extensions", "The set of IPv6 extensions registered with this demux.", - ObjectVectorValue (), - MakeObjectVectorAccessor (&Ipv6ExtensionDemux::m_extensions), - MakeObjectVectorChecker ()) + ObjectVectorValue (), + MakeObjectVectorAccessor (&Ipv6ExtensionDemux::m_extensions), + MakeObjectVectorChecker ()) ; return tid; } @@ -53,10 +53,10 @@ Ipv6ExtensionDemux::~Ipv6ExtensionDemux () void Ipv6ExtensionDemux::DoDispose () { for (Ipv6ExtensionList_t::iterator it = m_extensions.begin (); it != m_extensions.end (); it++) - { - (*it)->Dispose (); - *it = 0; - } + { + (*it)->Dispose (); + *it = 0; + } m_extensions.clear (); m_node = 0; Object::DoDispose (); @@ -75,12 +75,12 @@ void Ipv6ExtensionDemux::Insert (Ptr extension) Ptr Ipv6ExtensionDemux::GetExtension (uint8_t extensionNumber) { for (Ipv6ExtensionList_t::iterator i = m_extensions.begin (); i != m_extensions.end (); ++i) - { - if ((*i)->GetExtensionNumber () == extensionNumber) { - return *i; + if ((*i)->GetExtensionNumber () == extensionNumber) + { + return *i; + } } - } return 0; } diff --git a/src/internet-stack/ipv6-extension-demux.h b/src/internet-stack/ipv6-extension-demux.h index 42cc9e252..344e6164d 100644 --- a/src/internet-stack/ipv6-extension-demux.h +++ b/src/internet-stack/ipv6-extension-demux.h @@ -37,66 +37,66 @@ class Node; */ class Ipv6ExtensionDemux : public Object { - public: - /** - * \brief The interface ID. - * \return type ID - */ - static TypeId GetTypeId (void); +public: + /** + * \brief The interface ID. + * \return type ID + */ + static TypeId GetTypeId (void); - /** - * \brief Constructor. - */ - Ipv6ExtensionDemux (); + /** + * \brief Constructor. + */ + Ipv6ExtensionDemux (); - /** - * \brief Destructor. - */ - virtual ~Ipv6ExtensionDemux (); + /** + * \brief Destructor. + */ + virtual ~Ipv6ExtensionDemux (); - /** - * \brief Set the node. - * \param node the node to set - */ - void SetNode (Ptr node); + /** + * \brief Set the node. + * \param node the node to set + */ + void SetNode (Ptr node); - /** - * \brief Insert a new IPv6 Extension. - * \param extension the extension to insert - */ - void Insert (Ptr extension); + /** + * \brief Insert a new IPv6 Extension. + * \param extension the extension to insert + */ + void Insert (Ptr extension); - /** - * \brief Get the extension corresponding to extensionNumber. - * \param extensionNumber extension number of the extension to retrieve - * \return a matching IPv6 extension - */ - Ptr GetExtension (uint8_t extensionNumber); + /** + * \brief Get the extension corresponding to extensionNumber. + * \param extensionNumber extension number of the extension to retrieve + * \return a matching IPv6 extension + */ + Ptr GetExtension (uint8_t extensionNumber); - /** - * \brief Remove an extension from this demux. - * \param extension pointer on the extension to remove - */ - void Remove (Ptr extension); + /** + * \brief Remove an extension from this demux. + * \param extension pointer on the extension to remove + */ + void Remove (Ptr extension); - protected: - /** - * \brief Dispose object. - */ - virtual void DoDispose (); +protected: + /** + * \brief Dispose object. + */ + virtual void DoDispose (); - private: - typedef std::list > Ipv6ExtensionList_t; +private: + typedef std::list > Ipv6ExtensionList_t; - /** - * \brief List of IPv6 Extensions supported. - */ - Ipv6ExtensionList_t m_extensions; + /** + * \brief List of IPv6 Extensions supported. + */ + Ipv6ExtensionList_t m_extensions; - /** - * \brief The node. - */ - Ptr m_node; + /** + * \brief The node. + */ + Ptr m_node; }; } /* namespace ns3 */ diff --git a/src/internet-stack/ipv6-extension-header.cc b/src/internet-stack/ipv6-extension-header.cc index 8bd6203e6..555a54dd8 100644 --- a/src/internet-stack/ipv6-extension-header.cc +++ b/src/internet-stack/ipv6-extension-header.cc @@ -45,7 +45,7 @@ TypeId Ipv6ExtensionHeader::GetInstanceTypeId () const } Ipv6ExtensionHeader::Ipv6ExtensionHeader () - : m_nextHeader (0), +: m_nextHeader (0), m_length (0), m_data (0) { @@ -106,13 +106,13 @@ uint32_t Ipv6ExtensionHeader::Deserialize (Buffer::Iterator start) i.Read (data, dataLength); if (dataLength > m_data.GetSize ()) - { - m_data.AddAtEnd (dataLength - m_data.GetSize ()); - } + { + m_data.AddAtEnd (dataLength - m_data.GetSize ()); + } else - { - m_data.RemoveAtEnd (m_data.GetSize () - dataLength); - } + { + m_data.RemoveAtEnd (m_data.GetSize () - dataLength); + } i = m_data.Begin (); i.Write (data, dataLength); @@ -121,7 +121,7 @@ uint32_t Ipv6ExtensionHeader::Deserialize (Buffer::Iterator start) } OptionField::OptionField (uint32_t optionsOffset) - : m_optionData (0), +: m_optionData (0), m_optionsOffset (optionsOffset) { } @@ -141,13 +141,13 @@ void OptionField::Serialize (Buffer::Iterator start) const uint32_t fill = CalculatePad ((Ipv6OptionHeader::Alignment) {8,0}); NS_LOG_LOGIC ("fill with " << fill << " bytes padding"); switch (fill) - { + { case 0: return; case 1: Ipv6OptionPad1Header ().Serialize (start); return; default: Ipv6OptionPadnHeader (fill).Serialize (start); return; - } + } } uint32_t OptionField::Deserialize (Buffer::Iterator start, uint32_t length) @@ -167,13 +167,13 @@ void OptionField::AddOption (Ipv6OptionHeader const& option) uint32_t pad = CalculatePad (option.GetAlignment ()); NS_LOG_LOGIC ("need " << pad << " bytes padding"); switch (pad) - { + { case 0: break; //no padding needed case 1: AddOption (Ipv6OptionPad1Header ()); - break; + break; default: AddOption (Ipv6OptionPadnHeader (pad)); - break; - } + break; + } m_optionData.AddAtEnd (option.GetSerializedSize ()); Buffer::Iterator it = m_optionData.End (); @@ -214,7 +214,7 @@ TypeId Ipv6ExtensionHopByHopHeader::GetInstanceTypeId () const } Ipv6ExtensionHopByHopHeader::Ipv6ExtensionHopByHopHeader () - : OptionField (2) +: OptionField (2) { } @@ -269,7 +269,7 @@ TypeId Ipv6ExtensionDestinationHeader::GetInstanceTypeId () const } Ipv6ExtensionDestinationHeader::Ipv6ExtensionDestinationHeader () - : OptionField (2) +: OptionField (2) { } @@ -325,7 +325,7 @@ TypeId Ipv6ExtensionFragmentHeader::GetInstanceTypeId () const } Ipv6ExtensionFragmentHeader::Ipv6ExtensionFragmentHeader () - : m_offset (0), +: m_offset (0), m_identification (0) { } @@ -416,7 +416,7 @@ TypeId Ipv6ExtensionRoutingHeader::GetInstanceTypeId () const } Ipv6ExtensionRoutingHeader::Ipv6ExtensionRoutingHeader () - : m_typeRouting (0), +: m_typeRouting (0), m_segmentsLeft (0) { } @@ -495,7 +495,7 @@ TypeId Ipv6ExtensionLooseRoutingHeader::GetInstanceTypeId () const } Ipv6ExtensionLooseRoutingHeader::Ipv6ExtensionLooseRoutingHeader () - : m_routersAddress (0) +: m_routersAddress (0) { } @@ -535,9 +535,9 @@ void Ipv6ExtensionLooseRoutingHeader::Print (std::ostream &os) const << " typeRouting = " << (uint32_t)GetTypeRouting () << " segmentsLeft = " << (uint32_t)GetSegmentsLeft () << " "; for (std::vector::const_iterator it = m_routersAddress.begin (); it != m_routersAddress.end (); it++) - { - os << *it << " "; - } + { + os << *it << " "; + } os << " )"; } @@ -559,10 +559,10 @@ void Ipv6ExtensionLooseRoutingHeader::Serialize (Buffer::Iterator start) const i.WriteU32 (0); for (VectorIpv6Address_t::const_iterator it = m_routersAddress.begin (); it != m_routersAddress.end () ; it++) - { - it->Serialize (buff); - i.Write (buff, 16); - } + { + it->Serialize (buff); + i.Write (buff, 16); + } } uint32_t Ipv6ExtensionLooseRoutingHeader::Deserialize (Buffer::Iterator start) @@ -577,10 +577,10 @@ uint32_t Ipv6ExtensionLooseRoutingHeader::Deserialize (Buffer::Iterator start) i.ReadU32 (); for (std::vector::iterator it = m_routersAddress.begin (); it != m_routersAddress.end (); it++) - { - i.Read (buff, 16); - it->Set (buff); - } + { + i.Read (buff, 16); + it->Set (buff); + } return GetSerializedSize (); } diff --git a/src/internet-stack/ipv6-extension.cc b/src/internet-stack/ipv6-extension.cc index d1a30bbd4..a4958d002 100644 --- a/src/internet-stack/ipv6-extension.cc +++ b/src/internet-stack/ipv6-extension.cc @@ -53,11 +53,11 @@ TypeId Ipv6Extension::GetTypeId () static TypeId tid = TypeId ("ns3::Ipv6Extension") .SetParent () .AddAttribute ("ExtensionNumber", "The IPv6 extension number.", - UintegerValue (0), - MakeUintegerAccessor (&Ipv6Extension::GetExtensionNumber), - MakeUintegerChecker ()) + UintegerValue (0), + MakeUintegerAccessor (&Ipv6Extension::GetExtensionNumber), + MakeUintegerChecker ()) .AddTraceSource ("Drop", "Drop ipv6 packet", - MakeTraceSourceAccessor (&Ipv6Extension::m_dropTrace)) + MakeTraceSourceAccessor (&Ipv6Extension::m_dropTrace)) ; return tid; } @@ -102,64 +102,64 @@ uint8_t Ipv6Extension::ProcessOptions (Ptr& packet, uint8_t offset, uint uint8_t optionLength = 0; while (length > processedSize && !isDropped) - { - optionType = *(data + processedSize); - ipv6Option = ipv6OptionDemux->GetOption (optionType); - - if (ipv6Option == 0) { - optionType >>= 6; - switch (optionType) - { - case 0: - optionLength = *(data + processedSize + 1); - break; + optionType = *(data + processedSize); + ipv6Option = ipv6OptionDemux->GetOption (optionType); - case 1: - NS_LOG_LOGIC ("Unknown Option. Drop!"); - m_dropTrace (packet); - optionLength = 0; - isDropped = true; - break; + if (ipv6Option == 0) + { + optionType >>= 6; + switch (optionType) + { + case 0: + optionLength = *(data + processedSize + 1); + break; - case 2: - NS_LOG_LOGIC ("Unknown Option. Drop!"); - icmpv6->SendErrorParameterError (malformedPacket, ipv6Header.GetSourceAddress (), Icmpv6Header::ICMPV6_UNKNOWN_OPTION, offset + processedSize); - m_dropTrace (packet); - optionLength = 0; - isDropped = true; - break; + case 1: + NS_LOG_LOGIC ("Unknown Option. Drop!"); + m_dropTrace (packet); + optionLength = 0; + isDropped = true; + break; - case 3: - NS_LOG_LOGIC ("Unknown Option. Drop!"); + case 2: + NS_LOG_LOGIC ("Unknown Option. Drop!"); + icmpv6->SendErrorParameterError (malformedPacket, ipv6Header.GetSourceAddress (), Icmpv6Header::ICMPV6_UNKNOWN_OPTION, offset + processedSize); + m_dropTrace (packet); + optionLength = 0; + isDropped = true; + break; - if (!ipv6Header.GetDestinationAddress ().IsMulticast ()) - { - icmpv6->SendErrorParameterError (malformedPacket, ipv6Header.GetSourceAddress (), Icmpv6Header::ICMPV6_UNKNOWN_OPTION, offset + processedSize); - m_dropTrace (packet); - optionLength = 0; - isDropped = true; - break; - } + case 3: + NS_LOG_LOGIC ("Unknown Option. Drop!"); - m_dropTrace (packet); - optionLength = 0; - isDropped = true; - break; + if (!ipv6Header.GetDestinationAddress ().IsMulticast ()) + { + icmpv6->SendErrorParameterError (malformedPacket, ipv6Header.GetSourceAddress (), Icmpv6Header::ICMPV6_UNKNOWN_OPTION, offset + processedSize); + m_dropTrace (packet); + optionLength = 0; + isDropped = true; + break; + } - default: - break; - } + m_dropTrace (packet); + optionLength = 0; + isDropped = true; + break; + default: + break; + } + + } + else + { + optionLength = ipv6Option->Process (packet, offset + processedSize, ipv6Header, isDropped); + } + + processedSize += optionLength; + p->RemoveAtStart (optionLength); } - else - { - optionLength = ipv6Option->Process (packet, offset + processedSize, ipv6Header, isDropped); - } - - processedSize += optionLength; - p->RemoveAtStart (optionLength); - } return processedSize; } @@ -203,9 +203,9 @@ uint8_t Ipv6ExtensionHopByHop::Process (Ptr& packet, uint8_t offset, Ipv Ipv6ExtensionHopByHopHeader hopbyhopHeader; p->RemoveHeader (hopbyhopHeader); if (nextHeader) - { - *nextHeader = hopbyhopHeader.GetNextHeader (); - } + { + *nextHeader = hopbyhopHeader.GetNextHeader (); + } uint8_t processedSize = hopbyhopHeader.GetOptionsOffset (); offset += processedSize; @@ -255,9 +255,9 @@ uint8_t Ipv6ExtensionDestination::Process (Ptr& packet, uint8_t offset, Ipv6ExtensionDestinationHeader destinationHeader; p->RemoveHeader (destinationHeader); if (nextHeader) - { - *nextHeader = destinationHeader.GetNextHeader (); - } + { + *nextHeader = destinationHeader.GetNextHeader (); + } uint8_t processedSize = destinationHeader.GetOptionsOffset (); offset += processedSize; @@ -295,9 +295,9 @@ void Ipv6ExtensionFragment::DoDispose () NS_LOG_FUNCTION_NOARGS (); for (MapFragments_t::iterator it = m_fragments.begin (); it != m_fragments.end (); it++) - { - it->second = 0; - } + { + it->second = 0; + } m_fragments.clear (); Ipv6Extension::DoDispose (); @@ -321,9 +321,9 @@ uint8_t Ipv6ExtensionFragment::Process (Ptr& packet, uint8_t offset, Ipv p->RemoveHeader (fragmentHeader); if (nextHeader) - { - *nextHeader = fragmentHeader.GetNextHeader (); - } + { + *nextHeader = fragmentHeader.GetNextHeader (); + } bool moreFragment = fragmentHeader.GetMoreFragment (); uint16_t fragmentOffset = fragmentHeader.GetOffset (); @@ -335,35 +335,35 @@ uint8_t Ipv6ExtensionFragment::Process (Ptr& packet, uint8_t offset, Ipv MapFragments_t::iterator it = m_fragments.find (fragmentsId); if (it == m_fragments.end ()) - { - fragments = Create (); - m_fragments.insert (std::make_pair (fragmentsId, fragments)); - } + { + fragments = Create (); + m_fragments.insert (std::make_pair (fragmentsId, fragments)); + } else - { - fragments = it->second; - } + { + fragments = it->second; + } if (fragmentOffset == 0) - { - Ptr unfragmentablePart = packet->Copy (); - unfragmentablePart->RemoveAtEnd (packet->GetSize () - offset); - fragments->SetUnfragmentablePart (unfragmentablePart); - } + { + Ptr unfragmentablePart = packet->Copy (); + unfragmentablePart->RemoveAtEnd (packet->GetSize () - offset); + fragments->SetUnfragmentablePart (unfragmentablePart); + } fragments->AddFragment (p, fragmentOffset, moreFragment); if (fragments->IsEntire ()) - { - packet = fragments->GetPacket (); - isDropped = false; - } + { + packet = fragments->GetPacket (); + isDropped = false; + } else - { - NS_LOG_LOGIC ("Fragment. Drop!"); - m_dropTrace (packet); - isDropped = true; - } + { + NS_LOG_LOGIC ("Fragment. Drop!"); + m_dropTrace (packet); + isDropped = true; + } return 0; } @@ -381,10 +381,10 @@ void Ipv6ExtensionFragment::GetFragments (Ptr packet, uint32_t maxFragme bool moreHeader = true; if (!(nextHeader == Ipv6Header::IPV6_EXT_HOP_BY_HOP || nextHeader == Ipv6Header::IPV6_EXT_ROUTING || (nextHeader == Ipv6Header::IPV6_EXT_DESTINATION && *p->PeekData () == Ipv6Header::IPV6_EXT_ROUTING))) - { - moreHeader = false; - ipv6Header.SetNextHeader (Ipv6Header::IPV6_EXT_FRAGMENTATION); - } + { + moreHeader = false; + ipv6Header.SetNextHeader (Ipv6Header::IPV6_EXT_FRAGMENTATION); + } std::list > unfragmentablePart; uint32_t unfragmentablePartSize = 0; @@ -394,64 +394,64 @@ void Ipv6ExtensionFragment::GetFragments (Ptr packet, uint32_t maxFragme uint8_t extensionHeaderLength; while (moreHeader) - { - if (nextHeader == Ipv6Header::IPV6_EXT_HOP_BY_HOP) { - Ipv6ExtensionHopByHopHeader *hopbyhopHeader = new Ipv6ExtensionHopByHopHeader (); - p->RemoveHeader (*hopbyhopHeader); + if (nextHeader == Ipv6Header::IPV6_EXT_HOP_BY_HOP) + { + Ipv6ExtensionHopByHopHeader *hopbyhopHeader = new Ipv6ExtensionHopByHopHeader (); + p->RemoveHeader (*hopbyhopHeader); - nextHeader = hopbyhopHeader->GetNextHeader (); - extensionHeaderLength = hopbyhopHeader->GetLength (); + nextHeader = hopbyhopHeader->GetNextHeader (); + extensionHeaderLength = hopbyhopHeader->GetLength (); - if (!(nextHeader == Ipv6Header::IPV6_EXT_HOP_BY_HOP || nextHeader == Ipv6Header::IPV6_EXT_ROUTING - || (nextHeader == Ipv6Header::IPV6_EXT_DESTINATION && *p->PeekData () == Ipv6Header::IPV6_EXT_ROUTING))) - { - moreHeader = false; - hopbyhopHeader->SetNextHeader (Ipv6Header::IPV6_EXT_FRAGMENTATION); - } + if (!(nextHeader == Ipv6Header::IPV6_EXT_HOP_BY_HOP || nextHeader == Ipv6Header::IPV6_EXT_ROUTING + || (nextHeader == Ipv6Header::IPV6_EXT_DESTINATION && *p->PeekData () == Ipv6Header::IPV6_EXT_ROUTING))) + { + moreHeader = false; + hopbyhopHeader->SetNextHeader (Ipv6Header::IPV6_EXT_FRAGMENTATION); + } - unfragmentablePart.push_back (std::make_pair (hopbyhopHeader, Ipv6Header::IPV6_EXT_HOP_BY_HOP)); - unfragmentablePartSize += extensionHeaderLength; + unfragmentablePart.push_back (std::make_pair (hopbyhopHeader, Ipv6Header::IPV6_EXT_HOP_BY_HOP)); + unfragmentablePartSize += extensionHeaderLength; + } + else if (nextHeader == Ipv6Header::IPV6_EXT_ROUTING) + { + uint8_t numberAddress = (*(p->PeekData () + 1)) / 2; + Ipv6ExtensionLooseRoutingHeader *routingHeader = new Ipv6ExtensionLooseRoutingHeader (); + routingHeader->SetNumberAddress (numberAddress); + p->RemoveHeader (*routingHeader); + + nextHeader = routingHeader->GetNextHeader (); + extensionHeaderLength = routingHeader->GetLength (); + + if (!(nextHeader == Ipv6Header::IPV6_EXT_HOP_BY_HOP || nextHeader == Ipv6Header::IPV6_EXT_ROUTING + || (nextHeader == Ipv6Header::IPV6_EXT_DESTINATION && *p->PeekData () == Ipv6Header::IPV6_EXT_ROUTING))) + { + moreHeader = false; + routingHeader->SetNextHeader (Ipv6Header::IPV6_EXT_FRAGMENTATION); + } + + unfragmentablePart.push_back (std::make_pair (routingHeader, Ipv6Header::IPV6_EXT_ROUTING)); + unfragmentablePartSize += extensionHeaderLength; + } + else if (nextHeader == Ipv6Header::IPV6_EXT_DESTINATION) + { + Ipv6ExtensionDestinationHeader *destinationHeader = new Ipv6ExtensionDestinationHeader (); + p->RemoveHeader (*destinationHeader); + + nextHeader = destinationHeader->GetNextHeader (); + extensionHeaderLength = destinationHeader->GetLength (); + + if (!(nextHeader == Ipv6Header::IPV6_EXT_HOP_BY_HOP || nextHeader == Ipv6Header::IPV6_EXT_ROUTING + || (nextHeader == Ipv6Header::IPV6_EXT_DESTINATION && *p->PeekData () == Ipv6Header::IPV6_EXT_ROUTING))) + { + moreHeader = false; + destinationHeader->SetNextHeader (Ipv6Header::IPV6_EXT_FRAGMENTATION); + } + + unfragmentablePart.push_back (std::make_pair (destinationHeader, Ipv6Header::IPV6_EXT_DESTINATION)); + unfragmentablePartSize += extensionHeaderLength; + } } - else if (nextHeader == Ipv6Header::IPV6_EXT_ROUTING) - { - uint8_t numberAddress = (*(p->PeekData () + 1)) / 2; - Ipv6ExtensionLooseRoutingHeader *routingHeader = new Ipv6ExtensionLooseRoutingHeader (); - routingHeader->SetNumberAddress (numberAddress); - p->RemoveHeader (*routingHeader); - - nextHeader = routingHeader->GetNextHeader (); - extensionHeaderLength = routingHeader->GetLength (); - - if (!(nextHeader == Ipv6Header::IPV6_EXT_HOP_BY_HOP || nextHeader == Ipv6Header::IPV6_EXT_ROUTING - || (nextHeader == Ipv6Header::IPV6_EXT_DESTINATION && *p->PeekData () == Ipv6Header::IPV6_EXT_ROUTING))) - { - moreHeader = false; - routingHeader->SetNextHeader (Ipv6Header::IPV6_EXT_FRAGMENTATION); - } - - unfragmentablePart.push_back (std::make_pair (routingHeader, Ipv6Header::IPV6_EXT_ROUTING)); - unfragmentablePartSize += extensionHeaderLength; - } - else if (nextHeader == Ipv6Header::IPV6_EXT_DESTINATION) - { - Ipv6ExtensionDestinationHeader *destinationHeader = new Ipv6ExtensionDestinationHeader (); - p->RemoveHeader (*destinationHeader); - - nextHeader = destinationHeader->GetNextHeader (); - extensionHeaderLength = destinationHeader->GetLength (); - - if (!(nextHeader == Ipv6Header::IPV6_EXT_HOP_BY_HOP || nextHeader == Ipv6Header::IPV6_EXT_ROUTING - || (nextHeader == Ipv6Header::IPV6_EXT_DESTINATION && *p->PeekData () == Ipv6Header::IPV6_EXT_ROUTING))) - { - moreHeader = false; - destinationHeader->SetNextHeader (Ipv6Header::IPV6_EXT_FRAGMENTATION); - } - - unfragmentablePart.push_back (std::make_pair (destinationHeader, Ipv6Header::IPV6_EXT_DESTINATION)); - unfragmentablePartSize += extensionHeaderLength; - } - } Ipv6ExtensionFragmentHeader fragmentHeader; uint8_t fragmentHeaderSize = fragmentHeader.GetSerializedSize (); @@ -465,65 +465,65 @@ void Ipv6ExtensionFragment::GetFragments (Ptr packet, uint32_t maxFragme uint16_t offset = 0; do - { - if (p->GetSize () > offset + maxFragmentablePartSize) { - moreFragment = true; - currentFragmentablePartSize = maxFragmentablePartSize; - } - else - { - moreFragment = false; - currentFragmentablePartSize = p->GetSize () - offset; - } + if (p->GetSize () > offset + maxFragmentablePartSize) + { + moreFragment = true; + currentFragmentablePartSize = maxFragmentablePartSize; + } + else + { + moreFragment = false; + currentFragmentablePartSize = p->GetSize () - offset; + } - currentFragmentablePartSize -= currentFragmentablePartSize % 8; + currentFragmentablePartSize -= currentFragmentablePartSize % 8; - fragmentHeader.SetNextHeader (nextHeader); - fragmentHeader.SetLength (currentFragmentablePartSize); - fragmentHeader.SetOffset (offset); - fragmentHeader.SetMoreFragment (moreFragment); - fragmentHeader.SetIdentification (identification); + fragmentHeader.SetNextHeader (nextHeader); + fragmentHeader.SetLength (currentFragmentablePartSize); + fragmentHeader.SetOffset (offset); + fragmentHeader.SetMoreFragment (moreFragment); + fragmentHeader.SetIdentification (identification); - Ptr fragment = p->CreateFragment (offset, currentFragmentablePartSize); - offset += currentFragmentablePartSize; + Ptr fragment = p->CreateFragment (offset, currentFragmentablePartSize); + offset += currentFragmentablePartSize; - fragment->AddHeader (fragmentHeader); + fragment->AddHeader (fragmentHeader); - for (std::list >::iterator it = unfragmentablePart.begin (); it != unfragmentablePart.end (); it++) - { - if (it->second == Ipv6Header::IPV6_EXT_HOP_BY_HOP) - { - fragment->AddHeader (*dynamic_cast(it->first)); - } - else if (it->second == Ipv6Header::IPV6_EXT_ROUTING) - { - fragment->AddHeader (*dynamic_cast(it->first)); - } - else if (it->second == Ipv6Header::IPV6_EXT_DESTINATION) - { - fragment->AddHeader (*dynamic_cast(it->first)); - } - } + for (std::list >::iterator it = unfragmentablePart.begin (); it != unfragmentablePart.end (); it++) + { + if (it->second == Ipv6Header::IPV6_EXT_HOP_BY_HOP) + { + fragment->AddHeader (*dynamic_cast(it->first)); + } + else if (it->second == Ipv6Header::IPV6_EXT_ROUTING) + { + fragment->AddHeader (*dynamic_cast(it->first)); + } + else if (it->second == Ipv6Header::IPV6_EXT_DESTINATION) + { + fragment->AddHeader (*dynamic_cast(it->first)); + } + } - ipv6Header.SetPayloadLength (fragment->GetSize ()); - fragment->AddHeader (ipv6Header); + ipv6Header.SetPayloadLength (fragment->GetSize ()); + fragment->AddHeader (ipv6Header); - std::ostringstream oss; - fragment->Print (oss); - listFragments.push_back (fragment); - } while (moreFragment); + std::ostringstream oss; + fragment->Print (oss); + listFragments.push_back (fragment); + } while (moreFragment); for (std::list >::iterator it = unfragmentablePart.begin (); it != unfragmentablePart.end (); it++) - { - delete it->first; - } + { + delete it->first; + } unfragmentablePart.clear (); } Ipv6ExtensionFragment::Fragments::Fragments () - : m_moreFragment (0) +: m_moreFragment (0) { } @@ -536,17 +536,17 @@ void Ipv6ExtensionFragment::Fragments::AddFragment (Ptr fragment, uint16 std::list, uint16_t> >::iterator it; for (it = m_fragments.begin (); it != m_fragments.end (); it++) - { - if (it->second > fragmentOffset) { - break; + if (it->second > fragmentOffset) + { + break; + } } - } if (it == m_fragments.end ()) - { - m_moreFragment = moreFragment; - } + { + m_moreFragment = moreFragment; + } m_fragments.insert (it, std::make_pair, uint16_t> (fragment, fragmentOffset)); } @@ -561,20 +561,20 @@ bool Ipv6ExtensionFragment::Fragments::IsEntire () const bool ret = !m_moreFragment && m_fragments.size () > 0; if (ret) - { - uint16_t lastEndOffset = 0; - - for (std::list, uint16_t> >::const_iterator it = m_fragments.begin (); it != m_fragments.end (); it++) { - if (lastEndOffset != it->second) - { - ret = false; - break; - } + uint16_t lastEndOffset = 0; - lastEndOffset += it->first->GetSize (); + for (std::list, uint16_t> >::const_iterator it = m_fragments.begin (); it != m_fragments.end (); it++) + { + if (lastEndOffset != it->second) + { + ret = false; + break; + } + + lastEndOffset += it->first->GetSize (); + } } - } return ret; } @@ -584,9 +584,9 @@ Ptr Ipv6ExtensionFragment::Fragments::GetPacket () const Ptr p = m_unfragmentable->Copy (); for (std::list, uint16_t> >::const_iterator it = m_fragments.begin (); it != m_fragments.end (); it++) - { - p->AddAtEnd (it->first); - } + { + p->AddAtEnd (it->first); + } return p; } @@ -645,9 +645,9 @@ uint8_t Ipv6ExtensionRouting::Process (Ptr& packet, uint8_t offset, Ipv6 uint8_t routingSegmentsLeft = *(buff+3); if (nextHeader) - { - *nextHeader = routingNextHeader; - } + { + *nextHeader = routingNextHeader; + } Ptr icmpv6 = GetNode ()->GetObject ()->GetIcmpv6 (); @@ -655,22 +655,22 @@ uint8_t Ipv6ExtensionRouting::Process (Ptr& packet, uint8_t offset, Ipv6 Ptr ipv6ExtensionRouting = ipv6ExtensionRoutingDemux->GetExtensionRouting (routingTypeRouting); if (ipv6ExtensionRouting == 0) - { - if (routingSegmentsLeft == 0) { - isDropped = false; - } - else - { - NS_LOG_LOGIC ("Malformed header. Drop!"); + if (routingSegmentsLeft == 0) + { + isDropped = false; + } + else + { + NS_LOG_LOGIC ("Malformed header. Drop!"); - icmpv6->SendErrorParameterError (malformedPacket, ipv6Header.GetSourceAddress (), Icmpv6Header::ICMPV6_MALFORMED_HEADER, offset + 1); - m_dropTrace (packet); - isDropped = true; - } + icmpv6->SendErrorParameterError (malformedPacket, ipv6Header.GetSourceAddress (), Icmpv6Header::ICMPV6_MALFORMED_HEADER, offset + 1); + m_dropTrace (packet); + isDropped = true; + } - return routingLength; - } + return routingLength; + } return ipv6ExtensionRouting->Process (packet, offset, ipv6Header, dst, (uint8_t *)0, isDropped); } @@ -683,9 +683,9 @@ TypeId Ipv6ExtensionRoutingDemux::GetTypeId () static TypeId tid = TypeId ("ns3::Ipv6ExtensionRoutingDemux") .SetParent () .AddAttribute ("Routing Extensions", "The set of IPv6 Routing extensions registered with this demux.", - ObjectVectorValue (), - MakeObjectVectorAccessor (&Ipv6ExtensionRoutingDemux::m_extensionsRouting), - MakeObjectVectorChecker ()) + ObjectVectorValue (), + MakeObjectVectorAccessor (&Ipv6ExtensionRoutingDemux::m_extensionsRouting), + MakeObjectVectorChecker ()) ; return tid; } @@ -701,10 +701,10 @@ Ipv6ExtensionRoutingDemux::~Ipv6ExtensionRoutingDemux () void Ipv6ExtensionRoutingDemux::DoDispose () { for (Ipv6ExtensionRoutingList_t::iterator it = m_extensionsRouting.begin (); it != m_extensionsRouting.end (); it++) - { - (*it)->Dispose (); - *it = 0; - } + { + (*it)->Dispose (); + *it = 0; + } m_extensionsRouting.clear (); m_node = 0; Object::DoDispose (); @@ -723,12 +723,12 @@ void Ipv6ExtensionRoutingDemux::Insert (Ptr extensionRouti Ptr Ipv6ExtensionRoutingDemux::GetExtensionRouting (uint8_t typeRouting) { for (Ipv6ExtensionRoutingList_t::iterator i = m_extensionsRouting.begin (); i != m_extensionsRouting.end (); i++) - { - if ((*i)->GetTypeRouting () == typeRouting) { - return *i; + if ((*i)->GetTypeRouting () == typeRouting) + { + return *i; + } } - } return 0; } @@ -792,9 +792,9 @@ uint8_t Ipv6ExtensionLooseRouting::Process (Ptr& packet, uint8_t offset, p->RemoveHeader (routingHeader); if (nextHeader) - { - *nextHeader = routingHeader.GetNextHeader (); - } + { + *nextHeader = routingHeader.GetNextHeader (); + } Ptr icmpv6 = GetNode ()->GetObject ()->GetIcmpv6 (); @@ -808,51 +808,51 @@ uint8_t Ipv6ExtensionLooseRouting::Process (Ptr& packet, uint8_t offset, Ipv6Address nextAddress; if (segmentsLeft == 0) - { - isDropped = false; - return routingHeader.GetSerializedSize (); - } + { + isDropped = false; + return routingHeader.GetSerializedSize (); + } if (length % 2 != 0) - { - NS_LOG_LOGIC ("Malformed header. Drop!"); - icmpv6->SendErrorParameterError (malformedPacket, srcAddress, Icmpv6Header::ICMPV6_MALFORMED_HEADER, offset + 1); - m_dropTrace (packet); - isDropped = true; - return routingHeader.GetSerializedSize (); - } + { + NS_LOG_LOGIC ("Malformed header. Drop!"); + icmpv6->SendErrorParameterError (malformedPacket, srcAddress, Icmpv6Header::ICMPV6_MALFORMED_HEADER, offset + 1); + m_dropTrace (packet); + isDropped = true; + return routingHeader.GetSerializedSize (); + } if (segmentsLeft > nbAddress) - { - NS_LOG_LOGIC ("Malformed header. Drop!"); - icmpv6->SendErrorParameterError (malformedPacket, srcAddress, Icmpv6Header::ICMPV6_MALFORMED_HEADER, offset + 3); - m_dropTrace (packet); - isDropped = true; - return routingHeader.GetSerializedSize (); - } + { + NS_LOG_LOGIC ("Malformed header. Drop!"); + icmpv6->SendErrorParameterError (malformedPacket, srcAddress, Icmpv6Header::ICMPV6_MALFORMED_HEADER, offset + 3); + m_dropTrace (packet); + isDropped = true; + return routingHeader.GetSerializedSize (); + } routingHeader.SetSegmentsLeft (segmentsLeft - 1); nextAddressIndex = nbAddress - segmentsLeft; nextAddress = routingHeader.GetRouterAddress (nextAddressIndex); if (nextAddress.IsMulticast () || destAddress.IsMulticast ()) - { - m_dropTrace (packet); - isDropped = true; - return routingHeader.GetSerializedSize (); - } + { + m_dropTrace (packet); + isDropped = true; + return routingHeader.GetSerializedSize (); + } routingHeader.SetRouterAddress (nextAddressIndex, destAddress); ipv6header.SetDestinationAddress (nextAddress); if (hopLimit <= 1) - { - NS_LOG_LOGIC ("Time Exceeded : Hop Limit <= 1. Drop!"); - icmpv6->SendErrorTimeExceeded (malformedPacket, srcAddress, Icmpv6Header::ICMPV6_HOPLIMIT); - m_dropTrace (packet); - isDropped = true; - return routingHeader.GetSerializedSize (); - } + { + NS_LOG_LOGIC ("Time Exceeded : Hop Limit <= 1. Drop!"); + icmpv6->SendErrorTimeExceeded (malformedPacket, srcAddress, Icmpv6Header::ICMPV6_HOPLIMIT); + m_dropTrace (packet); + isDropped = true; + return routingHeader.GetSerializedSize (); + } routingHeader.SetLength (88); ipv6header.SetHopLimit (hopLimit - 1); @@ -873,14 +873,14 @@ uint8_t Ipv6ExtensionLooseRouting::Process (Ptr& packet, uint8_t offset, Ptr rtentry = ipv6rp->RouteOutput (p, ipv6header, 0, err); if (rtentry) - { - /* we know a route exists so send packet now */ - ipv6->SendRealOut (rtentry, p, ipv6header); - } + { + /* we know a route exists so send packet now */ + ipv6->SendRealOut (rtentry, p, ipv6header); + } else - { - NS_LOG_INFO ("No route for next router"); - } + { + NS_LOG_INFO ("No route for next router"); + } /* as we directly send packet, mark it as dropped */ isDropped = true; diff --git a/src/internet-stack/ipv6-option-demux.cc b/src/internet-stack/ipv6-option-demux.cc index 37b65917d..254793ad6 100644 --- a/src/internet-stack/ipv6-option-demux.cc +++ b/src/internet-stack/ipv6-option-demux.cc @@ -35,9 +35,9 @@ TypeId Ipv6OptionDemux::GetTypeId () static TypeId tid = TypeId ("ns3::Ipv6OptionDemux") .SetParent () .AddAttribute ("Options", "The set of IPv6 options registered with this demux.", - ObjectVectorValue (), - MakeObjectVectorAccessor (&Ipv6OptionDemux::m_options), - MakeObjectVectorChecker ()) + ObjectVectorValue (), + MakeObjectVectorAccessor (&Ipv6OptionDemux::m_options), + MakeObjectVectorChecker ()) ; return tid; } @@ -53,10 +53,10 @@ Ipv6OptionDemux::~Ipv6OptionDemux () void Ipv6OptionDemux::DoDispose () { for (Ipv6OptionList_t::iterator it = m_options.begin (); it != m_options.end (); it++) - { - (*it)->Dispose (); - *it = 0; - } + { + (*it)->Dispose (); + *it = 0; + } m_options.clear (); m_node = 0; Object::DoDispose (); @@ -75,12 +75,12 @@ void Ipv6OptionDemux::Insert (Ptr option) Ptr Ipv6OptionDemux::GetOption (int optionNumber) { for (Ipv6OptionList_t::iterator i = m_options.begin (); i != m_options.end (); ++i) - { - if ((*i)->GetOptionNumber () == optionNumber) { - return *i; + if ((*i)->GetOptionNumber () == optionNumber) + { + return *i; + } } - } return 0; } diff --git a/src/internet-stack/ipv6-option-demux.h b/src/internet-stack/ipv6-option-demux.h index 63f6f7237..3349744ce 100644 --- a/src/internet-stack/ipv6-option-demux.h +++ b/src/internet-stack/ipv6-option-demux.h @@ -37,66 +37,66 @@ class Node; */ class Ipv6OptionDemux : public Object { - public: - /** - * \brief The interface ID. - * \return type ID - */ - static TypeId GetTypeId (void); +public: + /** + * \brief The interface ID. + * \return type ID + */ + static TypeId GetTypeId (void); - /** - * \brief Constructor. - */ - Ipv6OptionDemux (); + /** + * \brief Constructor. + */ + Ipv6OptionDemux (); - /** - * \brief Destructor. - */ - virtual ~Ipv6OptionDemux (); + /** + * \brief Destructor. + */ + virtual ~Ipv6OptionDemux (); - /** - * \brief Set the node. - * \param node the node to set - */ - void SetNode (Ptr node); + /** + * \brief Set the node. + * \param node the node to set + */ + void SetNode (Ptr node); - /** - * \brief Insert a new IPv6 Option. - * \param option the option to insert - */ - void Insert (Ptr option); + /** + * \brief Insert a new IPv6 Option. + * \param option the option to insert + */ + void Insert (Ptr option); - /** - * \brief Get the option corresponding to optionNumber. - * \param optionNumber the option number of the option to retrieve - * \return a matching IPv6 option - */ - Ptr GetOption (int optionNumber); + /** + * \brief Get the option corresponding to optionNumber. + * \param optionNumber the option number of the option to retrieve + * \return a matching IPv6 option + */ + Ptr GetOption (int optionNumber); - /** - * \brief Remove an option from this demux. - * \param option pointer on the option to remove - */ - void Remove (Ptr option); + /** + * \brief Remove an option from this demux. + * \param option pointer on the option to remove + */ + void Remove (Ptr option); - protected: - /** - * \brief Dispose this object. - */ - virtual void DoDispose(); +protected: + /** + * \brief Dispose this object. + */ + virtual void DoDispose(); - private: - typedef std::list > Ipv6OptionList_t; +private: + typedef std::list > Ipv6OptionList_t; - /** - * \brief List of IPv6 Options supported. - */ - Ipv6OptionList_t m_options; + /** + * \brief List of IPv6 Options supported. + */ + Ipv6OptionList_t m_options; - /** - * \brief The node. - */ - Ptr m_node; + /** + * \brief The node. + */ + Ptr m_node; }; } /* namespace ns3 */ diff --git a/src/internet-stack/ipv6-option-header.cc b/src/internet-stack/ipv6-option-header.cc index 75f8c17fc..05f124482 100644 --- a/src/internet-stack/ipv6-option-header.cc +++ b/src/internet-stack/ipv6-option-header.cc @@ -45,7 +45,7 @@ TypeId Ipv6OptionHeader::GetInstanceTypeId () const } Ipv6OptionHeader::Ipv6OptionHeader () - : m_type (0), +: m_type (0), m_length (0) { } @@ -212,9 +212,9 @@ void Ipv6OptionPadnHeader::Serialize (Buffer::Iterator start) const i.WriteU8 (GetLength ()); for (int padding = 0; padding < GetLength (); padding++) - { - i.WriteU8 (0); - } + { + i.WriteU8 (0); + } } uint32_t Ipv6OptionPadnHeader::Deserialize (Buffer::Iterator start) @@ -315,7 +315,7 @@ TypeId Ipv6OptionRouterAlertHeader::GetInstanceTypeId () const } Ipv6OptionRouterAlertHeader::Ipv6OptionRouterAlertHeader () - : m_value (0) +: m_value (0) { SetLength (2); } diff --git a/src/internet-stack/ipv6-option.cc b/src/internet-stack/ipv6-option.cc index 96c1fde13..8a6914e05 100644 --- a/src/internet-stack/ipv6-option.cc +++ b/src/internet-stack/ipv6-option.cc @@ -36,9 +36,9 @@ TypeId Ipv6Option::GetTypeId () static TypeId tid = TypeId ("ns3::Ipv6Option") .SetParent () .AddAttribute ("OptionNumber", "The IPv6 option number.", - UintegerValue (0), - MakeUintegerAccessor (&Ipv6Option::GetOptionNumber), - MakeUintegerChecker ()) + UintegerValue (0), + MakeUintegerAccessor (&Ipv6Option::GetOptionNumber), + MakeUintegerChecker ()) ; return tid; }