X-Git-Url: http://g0dil.de/git?a=blobdiff_plain;f=Packets%2FDefaultBundle%2FIPv6Extensions.cc;h=f6739869b45c81fe8d525f7c43302b9f0d3d81fa;hb=b89e3166f7680755683dccee5e48cb3a820185c0;hp=803d3e6f931e42c8ca931f495c1be39d6fd60c4a;hpb=6116cb96ea7bdcb42b7d12165a05fcbe0687226d;p=senf.git diff --git a/Packets/DefaultBundle/IPv6Extensions.cc b/Packets/DefaultBundle/IPv6Extensions.cc index 803d3e6..f673986 100644 --- a/Packets/DefaultBundle/IPv6Extensions.cc +++ b/Packets/DefaultBundle/IPv6Extensions.cc @@ -1,10 +1,10 @@ // $Id$ // // Copyright (C) 2007 -// Fraunhofer Institut fuer offene Kommunikationssysteme (FOKUS) -// Kompetenzzentrum fuer Satelitenkommunikation (SatCom) +// 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"