aboutsummaryrefslogtreecommitdiffstats
path: root/src/plugins/vpp-oper/interface.cpp
blob: 054ec6ce514107da07c2506260a2f0b5d42a5d07 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
#include "interface.hpp"

using namespace VOM;

interface_dump::interface_dump()
{
}

interface_dump::interface_dump(std::string interface_name)
    : m_name(interface_name)
{
}

rc_t
interface_dump::issue(connection& con)
{
  m_dump.reset(new msg_t(con.ctx(), std::ref(*this)));

  auto& payload = m_dump->get_request().get_payload();

  if (m_name.empty()) {
    payload.name_filter_valid = 0;
  } else {
    payload.name_filter_valid = 1;
    strcpy((char*)payload.name_filter, m_name.c_str());
  }

  VAPI_CALL(m_dump->execute());

  wait();

  return rc_t::OK;
}

std::string
interface_dump::to_string() const
{
  return ("itf-dump");
}