* Adjust sequence number state accordingly after reconfiguration. */
| 1236 | * Adjust sequence number state accordingly after reconfiguration. |
| 1237 | */ |
| 1238 | static int |
| 1239 | ng_l2tp_seq_adjust(priv_p priv, const struct ng_l2tp_config *conf) |
| 1240 | { |
| 1241 | struct l2tp_seq *const seq = &priv->seq; |
| 1242 | u_int16_t new_wmax; |
| 1243 | |
| 1244 | /* If disabling node, reset state sequence number */ |
| 1245 | if (!conf->enabled) { |
| 1246 | ng_l2tp_seq_reset(priv); |
| 1247 | return (0); |
| 1248 | } |
| 1249 | |
| 1250 | /* Adjust peer's max recv window; it can only increase */ |
| 1251 | new_wmax = conf->peer_win; |
| 1252 | if (new_wmax > L2TP_MAX_XWIN) |
| 1253 | new_wmax = L2TP_MAX_XWIN; |
| 1254 | if (new_wmax == 0) |
| 1255 | return (EINVAL); |
| 1256 | if (new_wmax < seq->wmax) |
| 1257 | return (EBUSY); |
| 1258 | seq->wmax = new_wmax; |
| 1259 | |
| 1260 | /* Done */ |
| 1261 | return (0); |
| 1262 | } |
| 1263 | |
| 1264 | /* |
| 1265 | * Reset sequence number state. |
no test coverage detected