MCPcopy Create free account
hub / github.com/F-Stack/f-stack / ng_l2tp_seq_reset

Function ng_l2tp_seq_reset

freebsd/netgraph/ng_l2tp.c:1267–1305  ·  view source on GitHub ↗

* Reset sequence number state. */

Source from the content-addressed store, hash-verified

1265 * Reset sequence number state.
1266 */
1267static void
1268ng_l2tp_seq_reset(priv_p priv)
1269{
1270 struct l2tp_seq *const seq = &priv->seq;
1271 hook_p hook;
1272 int i;
1273
1274 /* Sanity check */
1275 L2TP_SEQ_CHECK(seq);
1276
1277 /* Stop timers */
1278 ng_uncallout(&seq->rack_timer, priv->node);
1279 ng_uncallout(&seq->xack_timer, priv->node);
1280
1281 /* Free retransmit queue */
1282 for (i = 0; i < L2TP_MAX_XWIN; i++) {
1283 if (seq->xwin[i] == NULL)
1284 break;
1285 m_freem(seq->xwin[i]);
1286 }
1287
1288 /* Reset session hooks' sequence number states */
1289 NG_NODE_FOREACH_HOOK(priv->node, ng_l2tp_reset_session, NULL, hook);
1290
1291 /* Reset node's sequence number state */
1292 seq->ns = 0;
1293 seq->nr = 0;
1294 seq->rack = 0;
1295 seq->xack = 0;
1296 seq->wmax = L2TP_MAX_XWIN;
1297 seq->cwnd = 1;
1298 seq->ssth = seq->wmax;
1299 seq->acks = 0;
1300 seq->rexmits = 0;
1301 bzero(seq->xwin, sizeof(seq->xwin));
1302
1303 /* Done */
1304 L2TP_SEQ_CHECK(seq);
1305}
1306
1307/*
1308 * Handle receipt of an acknowledgement value (Nr) from peer.

Callers 2

ng_l2tp_shutdownFunction · 0.85
ng_l2tp_seq_adjustFunction · 0.85

Calls 3

bzeroFunction · 0.85
ng_uncalloutFunction · 0.70
m_freemFunction · 0.50

Tested by

no test coverage detected