X-Git-Url: http://g0dil.de/git?a=blobdiff_plain;f=Packets%2FDefaultBundle%2FIPv6Extensions.cc;h=f6739869b45c81fe8d525f7c43302b9f0d3d81fa;hb=bd9f9d3fd6fbcff0112a7bf48ab9284da9576b11;hp=1f1e567fccff3bf9dcac4e8311e488ddd6a70cff;hpb=a1a6c76a214ad1935032826713cabaf9ac57bf07;p=senf.git diff --git a/Packets/DefaultBundle/IPv6Extensions.cc b/Packets/DefaultBundle/IPv6Extensions.cc index 1f1e567..f673986 100644 --- a/Packets/DefaultBundle/IPv6Extensions.cc +++ b/Packets/DefaultBundle/IPv6Extensions.cc @@ -4,7 +4,7 @@ // Fraunhofer Institute for Open Communication Systems (FOKUS) // Competence Center NETwork research (NET), St. Augustin, GERMANY // Stefan Bund -// +// Philipp Batroff // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation; either version 2 of the License, or @@ -35,6 +35,12 @@ namespace { senf::PacketRegistry::RegistrationProxy registerIPv6ExtensionType_Fragment (44); + senf::PacketRegistry::RegistrationProxy + registerIPv6ExtensionType_Routing (43); + senf::PacketRegistry::RegistrationProxy + registerIPv6ExtensionType_HopByHop (0u); + senf::PacketRegistry::RegistrationProxy + registerIPv6ExtensionType_Destination (60u); } prefix_ void senf::IPv6ExtensionType_Fragment::dump(packet p, std::ostream & os) @@ -46,6 +52,35 @@ prefix_ void senf::IPv6ExtensionType_Fragment::dump(packet p, std::ostream & os) << " id : " << std::hex << unsigned(p->id()) << "\n"; } +prefix_ void senf::IPv6ExtensionType_Routing::dump(packet p, std::ostream & os) +{ + os << "Internet protocol Version 6 routing extension:\n" + << " next header : " << unsigned (p->nextHeader()) << "\n" + << " header length : " << unsigned (p->headerLength()) << "\n" + << " routing type : " << unsigned (p->routingType()) << "\n" + << " segments left : " << unsigned (p->segmentsLeft()) << "\n"; + IPv6Extension_Routing::Parser::hopAddresses_t::container hopAddresses (p->hopAddresses()); + os << " further Hop Addresses : \n"; + if ( p->segmentsLeft() != 0 ){ + for (IPv6Extension_Routing::Parser::hopAddresses_t::container::iterator i (hopAddresses.begin()); i != hopAddresses.end(); ++i) + os << *i << "\n"; + } +} + +prefix_ void senf::IPv6ExtensionType_HopByHop::dump(packet p, std::ostream & os) +{ + os << "Internet protocol Version 6 Hop-By-Hop extension:\n" + << " next header : " << unsigned (p->nextHeader()) << "\n" + << " header length : " << unsigned (p->headerLength()) << "\n"; +} + +prefix_ void senf::IPv6ExtensionType_Destination::dump(packet p, std::ostream & os) +{ + os << "Internet protocol Version 6 Destination Options extension:\n" + << " next header : " << unsigned (p->nextHeader()) << "\n" + << " header length : " << unsigned (p->headerLength()) << "\n"; +} + ///////////////////////////////cc.e//////////////////////////////////////// #undef prefix_ //#include "IPv6Extensions.mpp"