srsLTE源码学习:网络附属存储抓包nas_pcap.h

Table of Contents

nas_pcap.h    lib\include\srslte\common    667    4/10/2019    1

nas_pcap.cc    lib\src\common    676    2/28/2019    20


  1. NAS(Network Attached Storage:网络附属存储)
  2. pcap这个抓包库给抓包系统提供了一个高层次的接口。

nas_pcap.h    lib\include\srslte\common    667    4/10/2019    1

#ifndef SRSLTE_NAS_PCAP_H
#define SRSLTE_NAS_PCAP_H

#include "srslte/common/pcap.h"

namespace srslte {

//NAS(Network Attached Storage:网络附属存储)
//pcap这个抓包库给抓包系统提供了一个高层次的接口。
class nas_pcap 
{
public:
    nas_pcap() {enable_write=false; ue_id=0; pcap_file = NULL; }
    void enable();
    void open(const char *filename, uint32_t ue_id=0);
    void close();
    void write_nas(uint8_t *pdu, uint32_t pdu_len_bytes);
private:
    bool enable_write;
    FILE *pcap_file;
    uint32_t ue_id;
    void pack_and_write(uint8_t* pdu, uint32_t pdu_len_bytes);
};

} //namespace srslte

#endif // SRSLTE_NAS_PCAP_H

nas_pcap.cc    lib\src\common    676    2/28/2019    20

#include 
#include "srslte/srslte.h"
#include "srslte/common/pcap.h"
#include "srslte/common/nas_pcap.h"


namespace srslte {

void nas_pcap::enable()
{
  enable_write = true;
}
void nas_pcap::open(const char* filename, uint32_t ue_id)
{
  pcap_file = LTE_PCAP_Open(NAS_LTE_DLT, filename);
  ue_id = ue_id;
  enable_write = true;
}
void nas_pcap::close()
{
  fprintf(stdout, "Saving NAS PCAP file\n");
  LTE_PCAP_Close(pcap_file);
}

void nas_pcap::write_nas(uint8_t *pdu, uint32_t pdu_len_bytes)
{
    if (enable_write) {
      NAS_Context_Info_t  context;
      if (pdu) {
        LTE_PCAP_NAS_WritePDU(pcap_file, &context, pdu, pdu_len_bytes);
      }
    }
}

}

 

你可能感兴趣的:(通信技术)