MCPcopy Create free account
hub / github.com/NetSys/bess / CreatePort

Method CreatePort

core/bessctl.cc:996–1031  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

994 }
995
996 Status CreatePort(ServerContext*, const CreatePortRequest* request,
997 CreatePortResponse* response) override {
998 std::lock_guard<std::recursive_mutex> lock(mutex_);
999
1000 const char* driver_name;
1001 ::Port* port = nullptr;
1002
1003 VLOG(1) << "CreatePortRequest from client:" << std::endl
1004 << request->DebugString();
1005
1006 if (request->driver().length() == 0)
1007 return return_with_error(response, EINVAL, "Missing 'driver' field");
1008
1009 driver_name = request->driver().c_str();
1010 const auto& builders = PortBuilder::all_port_builders();
1011 const auto& it = builders.find(driver_name);
1012 if (it == builders.end()) {
1013 return return_with_error(response, ENOENT, "No port driver '%s' found",
1014 driver_name);
1015 }
1016
1017 const PortBuilder& builder = it->second;
1018 pb_error_t* error = response->mutable_error();
1019
1020 port = create_port(request->name(), builder, request->num_inc_q(),
1021 request->num_out_q(), request->size_inc_q(),
1022 request->size_out_q(), request->arg(), error);
1023
1024 if (!port)
1025 return Status::OK;
1026
1027 response->set_name(port->name());
1028 response->set_mac_addr(port->conf().mac_addr.ToString());
1029
1030 return Status::OK;
1031 }
1032
1033 Status SetPortConf(ServerContext*, const SetPortConfRequest* request,
1034 EmptyResponse* response) override {

Callers 1

create_portFunction · 0.45

Calls 5

return_with_errorFunction · 0.85
create_portFunction · 0.85
ToStringMethod · 0.80
endMethod · 0.45
set_nameMethod · 0.45

Tested by

no test coverage detected