Commit 47d4d8d0 authored by garciay's avatar garciay
Browse files

Finalize PCAP,ETH, BTP & GN layers & codecs

Optimization and logs clean up should be done later
parent 510c4ed1
Loading
Loading
Loading
Loading
+3 −2
Original line number Diff line number Diff line
#ifndef CODEC_H
#define CODEC_H

#include "loggers.hh"
#include "loggers.hh" // TODO To be removed
#include "Params.hh"

class OCTETSTRING;
class CHARSTRING;
@@ -13,7 +14,7 @@ public:
  Codec() { loggers::get_instance().log("Codec::Codec"); };
  virtual ~Codec() { loggers::get_instance().log("Codec::~Codec"); };
  virtual int encode(const TPDUEnc& msg, OCTETSTRING& data) = 0;
  virtual int decode(const OCTETSTRING& data, TPDUDec& msg) = 0;
  virtual int decode(const OCTETSTRING& data, TPDUDec& msg, Params* param = NULL) = 0;
};

template<typename TPDU> class PERCodec
+3 −0
Original line number Diff line number Diff line
@@ -9,6 +9,9 @@ public:
  static const std::string& mac_dst;
  static const std::string& ssp;
  static const std::string& its_aid;
  static const std::string& gn_payload;
  static const std::string& btp_type;
  static const std::string& btp_payload;
  static const std::vector<unsigned char>& mac_address;
  
  Params() : std::map<std::string, std::string>() {};
+3 −0
Original line number Diff line number Diff line
@@ -8,6 +8,9 @@ const std::string& Params::mac_src = std::string("mac_src");
const std::string& Params::mac_dst = std::string("mac_dst");
const std::string& Params::its_aid = std::string("its_aid");
const std::string& Params::ssp = std::string("ssp");
const std::string& Params::gn_payload = std::string("gn_payload");
const std::string& Params::btp_type = std::string("btp_type");
const std::string& Params::btp_payload = std::string("btp_payload");
const std::vector<unsigned char>& Params::mac_address({0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF});

void Params::convert(Params& p_param, const std::string p_parameters) {
+3 −1
Original line number Diff line number Diff line
@@ -52,9 +52,11 @@ namespace LibItsBtp__TestSystem {
    // Build layer stack
    std::map<std::string, std::string>::iterator it = _cfg_params.find(std::string("params"));
    if (it != _cfg_params.end()) {
      //loggers::get_instance().log("BtpPort::user_map: %s", it->second.c_str());
      loggers::get_instance().log("BtpPort::user_map: %s", it->second.c_str());
      _layer = LayerStackBuilder::GetInstance()->createLayerStack(it->second.c_str());
      dynamic_cast<BTPLayer *>(_layer)->addUpperPort(this);
    } else {
      loggers::get_instance().error("BtpPort::user_map: No layers defined in configuration file");
    }
  }

+2 −0
Original line number Diff line number Diff line
@@ -61,6 +61,8 @@ namespace LibItsGeoNetworking__TestSystem {
      //loggers::get_instance().log("GeoNetworkingPort::user_map: %s", it->second.c_str());
      _layer = LayerStackBuilder::GetInstance()->createLayerStack(it->second.c_str());
      dynamic_cast<GeoNetworkingLayer *>(_layer)->addUpperPort(this);
    } else {
      loggers::get_instance().error("GeoNetworkinggPort::user_map: No layers defined in configuration file");
    }
  }

Loading