Skip to content

Commit

Permalink
Merge "* Retry vrouter dpdk datagram socket connect upon error." into…
Browse files Browse the repository at this point in the history
… R3.0.3.x
  • Loading branch information
Zuul authored and opencontrail-ci-admin committed Oct 25, 2016
2 parents 2de81c4 + 1a530df commit 8c24da5
Showing 1 changed file with 15 additions and 6 deletions.
21 changes: 15 additions & 6 deletions src/vnsw/agent/contrail/pkt0_interface_base.cc
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 8c24da5

Please sign in to comment.