Lines Matching refs:ptr
24 const unsigned char *ptr, int opsize, in mptcp_parse_option() argument
27 u8 subtype = *ptr >> 4; in mptcp_parse_option()
69 version = *ptr++ & MPTCP_VERSION_MASK; in mptcp_parse_option()
77 flags = *ptr++; in mptcp_parse_option()
95 mp_opt->sndr_key = get_unaligned_be64(ptr); in mptcp_parse_option()
96 ptr += 8; in mptcp_parse_option()
99 mp_opt->rcvr_key = get_unaligned_be64(ptr); in mptcp_parse_option()
100 ptr += 8; in mptcp_parse_option()
111 mp_opt->data_len = get_unaligned_be16(ptr); in mptcp_parse_option()
112 ptr += 2; in mptcp_parse_option()
115 mp_opt->csum = get_unaligned((__force __sum16 *)ptr); in mptcp_parse_option()
117 ptr += 2; in mptcp_parse_option()
127 mp_opt->backup = *ptr++ & MPTCPOPT_BACKUP; in mptcp_parse_option()
128 mp_opt->join_id = *ptr++; in mptcp_parse_option()
129 mp_opt->token = get_unaligned_be32(ptr); in mptcp_parse_option()
130 ptr += 4; in mptcp_parse_option()
131 mp_opt->nonce = get_unaligned_be32(ptr); in mptcp_parse_option()
132 ptr += 4; in mptcp_parse_option()
138 mp_opt->backup = *ptr++ & MPTCPOPT_BACKUP; in mptcp_parse_option()
139 mp_opt->join_id = *ptr++; in mptcp_parse_option()
140 mp_opt->thmac = get_unaligned_be64(ptr); in mptcp_parse_option()
141 ptr += 8; in mptcp_parse_option()
142 mp_opt->nonce = get_unaligned_be32(ptr); in mptcp_parse_option()
143 ptr += 4; in mptcp_parse_option()
149 ptr += 2; in mptcp_parse_option()
150 memcpy(mp_opt->hmac, ptr, MPTCPOPT_HMAC_LEN); in mptcp_parse_option()
157 ptr++; in mptcp_parse_option()
159 flags = (*ptr++) & MPTCP_DSS_FLAG_MASK; in mptcp_parse_option()
197 mp_opt->data_ack = get_unaligned_be64(ptr); in mptcp_parse_option()
198 ptr += 8; in mptcp_parse_option()
200 mp_opt->data_ack = get_unaligned_be32(ptr); in mptcp_parse_option()
201 ptr += 4; in mptcp_parse_option()
209 mp_opt->data_seq = get_unaligned_be64(ptr); in mptcp_parse_option()
210 ptr += 8; in mptcp_parse_option()
212 mp_opt->data_seq = get_unaligned_be32(ptr); in mptcp_parse_option()
213 ptr += 4; in mptcp_parse_option()
216 mp_opt->subflow_seq = get_unaligned_be32(ptr); in mptcp_parse_option()
217 ptr += 4; in mptcp_parse_option()
219 mp_opt->data_len = get_unaligned_be16(ptr); in mptcp_parse_option()
220 ptr += 2; in mptcp_parse_option()
224 mp_opt->csum = get_unaligned((__force __sum16 *)ptr); in mptcp_parse_option()
225 ptr += 2; in mptcp_parse_option()
237 mp_opt->echo = (*ptr++) & MPTCP_ADDR_ECHO; in mptcp_parse_option()
263 mp_opt->addr.id = *ptr++; in mptcp_parse_option()
267 memcpy((u8 *)&mp_opt->addr.addr.s_addr, (u8 *)ptr, 4); in mptcp_parse_option()
268 ptr += 4; in mptcp_parse_option()
271 mp_opt->addr.port = htons(get_unaligned_be16(ptr)); in mptcp_parse_option()
272 ptr += 2; in mptcp_parse_option()
277 memcpy(mp_opt->addr.addr6.s6_addr, (u8 *)ptr, 16); in mptcp_parse_option()
278 ptr += 16; in mptcp_parse_option()
281 mp_opt->addr.port = htons(get_unaligned_be16(ptr)); in mptcp_parse_option()
282 ptr += 2; in mptcp_parse_option()
287 mp_opt->ahmac = get_unaligned_be64(ptr); in mptcp_parse_option()
288 ptr += 8; in mptcp_parse_option()
300 ptr++; in mptcp_parse_option()
305 mp_opt->rm_list.ids[i] = *ptr++; in mptcp_parse_option()
314 mp_opt->backup = *ptr++ & MPTCP_PRIO_BKUP; in mptcp_parse_option()
322 ptr += 2; in mptcp_parse_option()
323 mp_opt->rcvr_key = get_unaligned_be64(ptr); in mptcp_parse_option()
324 ptr += 8; in mptcp_parse_option()
337 flags = *ptr++; in mptcp_parse_option()
339 mp_opt->reset_reason = *ptr; in mptcp_parse_option()
348 ptr += 2; in mptcp_parse_option()
350 mp_opt->fail_seq = get_unaligned_be64(ptr); in mptcp_parse_option()
363 const unsigned char *ptr; in mptcp_get_options() local
373 ptr = (const unsigned char *)(th + 1); in mptcp_get_options()
376 int opcode = *ptr++; in mptcp_get_options()
388 opsize = *ptr++; in mptcp_get_options()
394 mptcp_parse_option(skb, ptr, opsize, mp_opt); in mptcp_get_options()
395 ptr += opsize - 2; in mptcp_get_options()
1348 __be16 *ptr = data; in put_len_csum() local
1350 put_unaligned_be16(len, ptr); in put_len_csum()
1355 void mptcp_write_options(struct tcphdr *th, __be32 *ptr, struct tcp_sock *tp, in mptcp_write_options() argument
1412 *ptr++ = mptcp_option(MPTCPOPT_DSS, len, 0, flags); in mptcp_write_options()
1416 put_unaligned_be64(mpext->data_ack, ptr); in mptcp_write_options()
1417 ptr += 2; in mptcp_write_options()
1419 put_unaligned_be32(mpext->data_ack32, ptr); in mptcp_write_options()
1420 ptr += 1; in mptcp_write_options()
1425 put_unaligned_be64(mpext->data_seq, ptr); in mptcp_write_options()
1426 ptr += 2; in mptcp_write_options()
1427 put_unaligned_be32(mpext->subflow_seq, ptr); in mptcp_write_options()
1428 ptr += 1; in mptcp_write_options()
1435 ptr); in mptcp_write_options()
1438 TCPOPT_NOP << 8 | TCPOPT_NOP, ptr); in mptcp_write_options()
1440 ptr += 1; in mptcp_write_options()
1467 *ptr++ = mptcp_option(MPTCPOPT_MP_CAPABLE, len, in mptcp_write_options()
1475 put_unaligned_be64(opts->sndr_key, ptr); in mptcp_write_options()
1476 ptr += 2; in mptcp_write_options()
1480 put_unaligned_be64(opts->rcvr_key, ptr); in mptcp_write_options()
1481 ptr += 2; in mptcp_write_options()
1491 ptr); in mptcp_write_options()
1494 TCPOPT_NOP << 8 | TCPOPT_NOP, ptr); in mptcp_write_options()
1496 ptr += 1; in mptcp_write_options()
1502 *ptr++ = mptcp_option(MPTCPOPT_MP_JOIN, in mptcp_write_options()
1505 put_unaligned_be32(opts->token, ptr); in mptcp_write_options()
1506 ptr += 1; in mptcp_write_options()
1507 put_unaligned_be32(opts->nonce, ptr); in mptcp_write_options()
1508 ptr += 1; in mptcp_write_options()
1510 *ptr++ = mptcp_option(MPTCPOPT_MP_JOIN, in mptcp_write_options()
1513 put_unaligned_be64(opts->thmac, ptr); in mptcp_write_options()
1514 ptr += 2; in mptcp_write_options()
1515 put_unaligned_be32(opts->nonce, ptr); in mptcp_write_options()
1516 ptr += 1; in mptcp_write_options()
1518 *ptr++ = mptcp_option(MPTCPOPT_MP_JOIN, in mptcp_write_options()
1520 memcpy(ptr, opts->hmac, MPTCPOPT_HMAC_LEN); in mptcp_write_options()
1521 ptr += 5; in mptcp_write_options()
1540 *ptr++ = mptcp_option(MPTCPOPT_ADD_ADDR, in mptcp_write_options()
1543 memcpy((u8 *)ptr, (u8 *)&opts->addr.addr.s_addr, 4); in mptcp_write_options()
1544 ptr += 1; in mptcp_write_options()
1548 memcpy((u8 *)ptr, opts->addr.addr6.s6_addr, 16); in mptcp_write_options()
1549 ptr += 4; in mptcp_write_options()
1555 put_unaligned_be64(opts->ahmac, ptr); in mptcp_write_options()
1556 ptr += 2; in mptcp_write_options()
1562 u8 *bptr = (u8 *)ptr; in mptcp_write_options()
1571 ptr += 3; in mptcp_write_options()
1575 TCPOPT_NOP, ptr); in mptcp_write_options()
1576 ptr += 1; in mptcp_write_options()
1581 *ptr++ = mptcp_option(MPTCPOPT_MP_FASTCLOSE, in mptcp_write_options()
1584 put_unaligned_be64(opts->rcvr_key, ptr); in mptcp_write_options()
1585 ptr += 2; in mptcp_write_options()
1596 *ptr++ = mptcp_option(MPTCPOPT_MP_FAIL, in mptcp_write_options()
1599 put_unaligned_be64(opts->fail_seq, ptr); in mptcp_write_options()
1600 ptr += 2; in mptcp_write_options()
1607 *ptr++ = mptcp_option(MPTCPOPT_RST, in mptcp_write_options()
1618 *ptr++ = mptcp_option(MPTCPOPT_MP_PRIO, in mptcp_write_options()
1629 *ptr++ = mptcp_option(MPTCPOPT_RM_ADDR, in mptcp_write_options()
1640 put_unaligned_be32(id1 << 24 | id2 << 16 | id3 << 8 | id4, ptr); in mptcp_write_options()
1641 ptr += 1; in mptcp_write_options()