aos/network: client to abort connection with no data

One problem we have seen is that the server appears to
successfully receive and process a connect message,
but never sends data. Because the server never sends
data, the client keeps sending the connect message at
kReconnectTimeout (3) second intervals. But the SCTP
state never changes.

If we can reasonably expect that there should be data
within 3 seconds and that failing to receive data also
means the connection has failed in some way, force SCTP
to start over by sending an abort. This results in an
SCTP_ASSOC_CHANGE(COMMUNICATION_LOST) notification
regardless of the state of the other side of the
connection, which will call NodeDisconnected and mark
the connection as down.

This is not guaranteed to fix the issues we were seeing,
but hopefully avoids the SCTP connection getting stuck
in a buggy state.

It may incidentally also force a reconnect faster when
an ethernet cable is disconnected and reconnected.

Change-Id: I6fdd0eed9bbe6a694152363ade48706b057cba6d
Signed-off-by: James Kuszmaul <james.kuszmaul@bluerivertech.com>
diff --git a/aos/network/sctp_server.h b/aos/network/sctp_server.h
index 6ffe93e..dbfd1ac 100644
--- a/aos/network/sctp_server.h
+++ b/aos/network/sctp_server.h
@@ -39,7 +39,7 @@
   }
 
   // Aborts a connection.  Returns true on success.
-  bool Abort(sctp_assoc_t snd_assoc_id);
+  bool Abort(sctp_assoc_t snd_assoc_id) { return sctp_.Abort(snd_assoc_id); }
 
   int fd() { return sctp_.fd(); }