Lines Matching refs:mpext

450 	struct mptcp_ext *mpext;  in mptcp_established_options_mp()  local
470 mpext = mptcp_get_ext(skb); in mptcp_established_options_mp()
471 data_len = mpext ? mpext->data_len : 0; in mptcp_established_options_mp()
493 opts->data_seq = mpext->data_seq; in mptcp_established_options_mp()
494 opts->subflow_seq = mpext->subflow_seq; in mptcp_established_options_mp()
495 opts->csum = mpext->csum; in mptcp_established_options_mp()
564 struct mptcp_ext *mpext; in mptcp_established_options_dss() local
570 mpext = skb ? mptcp_get_ext(skb) : NULL; in mptcp_established_options_dss()
572 if (!skb || (mpext && mpext->use_map) || snd_data_fin_enable) { in mptcp_established_options_dss()
575 if (mpext) { in mptcp_established_options_dss()
579 opts->ext_copy = *mpext; in mptcp_established_options_dss()
1121 struct mptcp_ext *mpext; in mptcp_incoming_options() local
1217 mpext = skb_ext_add(skb, SKB_EXT_MPTCP); in mptcp_incoming_options()
1218 if (!mpext) in mptcp_incoming_options()
1221 memset(mpext, 0, sizeof(*mpext)); in mptcp_incoming_options()
1229 &mpext->data_seq); in mptcp_incoming_options()
1230 mpext->data_seq++; in mptcp_incoming_options()
1231 mpext->subflow_seq = 1; in mptcp_incoming_options()
1232 mpext->dsn64 = 1; in mptcp_incoming_options()
1233 mpext->mpc_map = 1; in mptcp_incoming_options()
1234 mpext->data_fin = 0; in mptcp_incoming_options()
1236 mpext->data_seq = mp_opt.data_seq; in mptcp_incoming_options()
1237 mpext->subflow_seq = mp_opt.subflow_seq; in mptcp_incoming_options()
1238 mpext->dsn64 = mp_opt.dsn64; in mptcp_incoming_options()
1239 mpext->data_fin = mp_opt.data_fin; in mptcp_incoming_options()
1241 mpext->data_len = mp_opt.data_len; in mptcp_incoming_options()
1242 mpext->use_map = 1; in mptcp_incoming_options()
1243 mpext->csum_reqd = !!(mp_opt.suboptions & OPTION_MPTCP_CSUMREQD); in mptcp_incoming_options()
1245 if (mpext->csum_reqd) in mptcp_incoming_options()
1246 mpext->csum = mp_opt.csum; in mptcp_incoming_options()
1330 static __sum16 mptcp_make_csum(const struct mptcp_ext *mpext) in mptcp_make_csum() argument
1332 return __mptcp_make_csum(mpext->data_seq, mpext->subflow_seq, mpext->data_len, in mptcp_make_csum()
1333 ~csum_unfold(mpext->csum)); in mptcp_make_csum()
1375 struct mptcp_ext *mpext = &opts->ext_copy; in mptcp_write_options() local
1379 if (mpext->use_ack) { in mptcp_write_options()
1381 if (mpext->ack64) { in mptcp_write_options()
1389 if (mpext->use_map) { in mptcp_write_options()
1396 if (mpext->data_fin) in mptcp_write_options()
1405 if (mpext->use_ack) { in mptcp_write_options()
1406 if (mpext->ack64) { in mptcp_write_options()
1407 put_unaligned_be64(mpext->data_ack, ptr); in mptcp_write_options()
1410 put_unaligned_be32(mpext->data_ack32, ptr); in mptcp_write_options()
1415 if (mpext->use_map) { in mptcp_write_options()
1416 put_unaligned_be64(mpext->data_seq, ptr); in mptcp_write_options()
1418 put_unaligned_be32(mpext->subflow_seq, ptr); in mptcp_write_options()
1424 put_len_csum(mpext->data_len, in mptcp_write_options()
1425 (mpext->data_len ? mptcp_make_csum(mpext) : 0), in mptcp_write_options()
1428 put_unaligned_be32(mpext->data_len << 16 | in mptcp_write_options()