Skip to content

Commit

Permalink
* Retry vrouter dpdk datagram socket connect upon error.
Browse files Browse the repository at this point in the history
Upon agent restart, agent can connect to dpdk_pkt0 socket
before sending reset to vrouter. Once reset happens
dpdk_pkt0 socket would be deleted, and readded again
at which point agent should retry connect.
Fixing the same.
Closes-bug:#1636025

Change-Id: If24f254c6faffb3bd50ac672832c90992e0f4a3b
  • Loading branch information
naveen-n committed Oct 25, 2016
1 parent cd8d293 commit 1a530df
Showing 1 changed file with 15 additions and 6 deletions.
21 changes: 15 additions & 6 deletions src/vnsw/agent/contrail/pkt0_interface_base.cc
Original file line number Diff line number Diff line change
Expand Up @@ -179,10 +179,14 @@ void Pkt0Socket::AsyncRead() {
}

void Pkt0Socket::StartConnectTimer() {
connected_ = false;
Agent *agent = pkt_handler()->agent();
timer_.reset(TimerManager::CreateTimer(
*(agent->event_manager()->io_service()),
"UnixSocketConnectTimer"));
if (timer_ == NULL) {
timer_.reset(TimerManager::CreateTimer(
*(agent->event_manager()->io_service()),
"UnixSocketConnectTimer"));
}
TAP_TRACE(Err, "Starting connect to vrouter unix socket ");
timer_->Start(kConnectTimeout,
boost::bind(&Pkt0Socket::OnTimeout, this));
}
Expand All @@ -192,8 +196,8 @@ bool Pkt0Socket::OnTimeout() {
boost::system::error_code ec;
socket_.connect(ep, ec);
if (ec != 0) {
LOG(DEBUG, "Error connecting to socket " << kVrouterSocketPath
<< ": " << ec.message());
TAP_TRACE(Err, "Error connecting to vrouter unix socket " +
ec.message());
return true;
}
connected_ = true;
Expand Down Expand Up @@ -246,8 +250,13 @@ void Pkt0Socket::ReadHandler(const boost::system::error_code &error,
void Pkt0Socket::WriteHandler(const boost::system::error_code &error,
std::size_t length, PacketBufferPtr pkt,
uint8_t *buff) {
if (error)
if (error == boost::system::errc::not_connected) {
StartConnectTimer();
}

if (error) {
TAP_TRACE(Err,
"Packet Error <" + error.message() + "> sending packet");
}
delete [] buff;
}

0 comments on commit 1a530df

Please sign in to comment.