From 089da5d2c151e5a039e303d219c9ae0a7c1c09b2 Mon Sep 17 00:00:00 2001 From: jkaeber <jkaeber@wiback.org> Date: Tue, 11 Dec 2007 19:56:57 +0000 Subject: [PATCH] First GRE pipe is running. --- Packets/MPEGDVBBundle/GREPacket.cc | 25 +++++++++++-------------- Packets/MPEGDVBBundle/GREPacket.hh | 8 ++++++-- 2 files changed, 17 insertions(+), 16 deletions(-) diff --git a/Packets/MPEGDVBBundle/GREPacket.cc b/Packets/MPEGDVBBundle/GREPacket.cc index 48f70e508..4fc8aef2c 100644 --- a/Packets/MPEGDVBBundle/GREPacket.cc +++ b/Packets/MPEGDVBBundle/GREPacket.cc @@ -27,27 +27,24 @@ //#include "GREPacket.ih" // Custom includes +#include <boost/io/ios_state.hpp> #include <iomanip> #define prefix_ ///////////////////////////////cc.p//////////////////////////////////////// +namespace { + senf::PacketRegistry<senf::EtherTypes>::RegistrationProxy<senf::EthernetPacket> + registerTransparentEthernetBridging (0x6558); +} + prefix_ void senf::GREPacketType::dump(packet p, std::ostream & os) { - /* - os << "GREPacket:\n" - << std::hex - << " syncByte: 0x" << unsigned(p->sync_byte()) << "\n" - << " transport_error_indicator: 0x" << unsigned(p->transport_error_indicator()) << "\n" - << " payload_unit_start_indicator (pusi): 0x" << unsigned(p->pusi()) << "\n" - << " transport_priority: 0x" << unsigned(p->transport_priority()) << "\n" - << std::dec - << " pid: " << unsigned(p->pid()) << "\n" - << std::hex - << " transport_scrambling_control: 0x" << unsigned(p->transport_scrmbl_ctrl()) << "\n" - << " adaptation_field_control: 0x" << unsigned(p->adaptation_field_ctrl()) << "\n" - << " continuity_counter: 0x" << unsigned(p->continuity_counter()) << "\n"; - */ + boost::io::ios_all_saver ias(os); + os << "GRE Encapsulation:\n" + << " checksum_present : " << p->checksum_present() << "\n" + << " protocol_type : 0x" << std::hex << p->protocol_type() << "\n" + ; } ///////////////////////////////cc.e//////////////////////////////////////// diff --git a/Packets/MPEGDVBBundle/GREPacket.hh b/Packets/MPEGDVBBundle/GREPacket.hh index 6e29e8287..f056b51e5 100644 --- a/Packets/MPEGDVBBundle/GREPacket.hh +++ b/Packets/MPEGDVBBundle/GREPacket.hh @@ -29,6 +29,7 @@ // Custom includes #include <algorithm> #include "../../Packets/Packets.hh" +#include "../DefaultBundle/EthernetPacket.hh" //#include "GREPacket.mpp" ///////////////////////////////hh.p//////////////////////////////////////// @@ -78,17 +79,20 @@ namespace senf { */ struct GREPacketType : public PacketTypeBase, - public PacketTypeMixin<GREPacketType> + public PacketTypeMixin<GREPacketType, EtherTypes> { - typedef PacketTypeMixin<GREPacketType> mixin; + typedef PacketTypeMixin<GREPacketType, EtherTypes> mixin; typedef ConcretePacket<GREPacketType> packet; typedef Parse_GREPacket parser; using mixin::nextPacketRange; + using mixin::nextPacketType; using mixin::init; using mixin::initSize; static void dump(packet p, std::ostream & os); + static EtherTypes::key_t nextPacketKey(packet p) { return p->protocol_type(); } + static void finalize(packet p) { p->protocol_type() << key(p.next()); } }; /** \brief GRE packet typedef */ -- GitLab