From: kernel test robot <lkp@intel.com>
To: kbuild@lists.01.org
Subject: net/mptcp/options.c:291:3: warning: Assignment of function parameter has no effect outside the function. Did you forget dereferencing
Date: Fri, 12 Feb 2021 20:29:15 +0800 [thread overview]
Message-ID: <202102122012.8htxIA4O-lkp@intel.com> (raw)
[-- Attachment #1: Type: text/plain, Size: 23064 bytes --]
CC: kbuild-all(a)lists.01.org
CC: linux-kernel(a)vger.kernel.org
TO: Florian Westphal <fw@strlen.de>
CC: Jakub Kicinski <kuba@kernel.org>
CC: Matthieu Baerts <matthieu.baerts@tessares.net>
CC: Mat Martineau <mathew.j.martineau@linux.intel.com>
tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head: dcc0b49040c70ad827a7f3d58a21b01fdb14e749
commit: 50c504a20a754ca37b5e1f4e660cd687769a7dca mptcp: parse and act on incoming FASTCLOSE option
date: 8 weeks ago
:::::: branch date: 13 hours ago
:::::: commit date: 8 weeks ago
compiler: h8300-linux-gcc (GCC) 9.3.0
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>
cppcheck possible warnings: (new ones prefixed by >>, may not real problems)
>> net/mptcp/options.c:291:3: warning: Assignment of function parameter has no effect outside the function. Did you forget dereferencing it? [uselessAssignmentPtrArg]
ptr += 8;
^
>> net/mptcp/options.c:515:3: warning: Assignment of function parameter has no effect outside the function. [uselessAssignmentArg]
remaining -= map_size;
^
net/mptcp/options.c:718:3: warning: Assignment of function parameter has no effect outside the function. [uselessAssignmentArg]
remaining -= opt_size;
^
vim +291 net/mptcp/options.c
65492c5a6ab5df Paolo Abeni 2020-01-21 20
cfde141ea3faa3 Paolo Abeni 2020-04-30 21 static void mptcp_parse_option(const struct sk_buff *skb,
cfde141ea3faa3 Paolo Abeni 2020-04-30 22 const unsigned char *ptr, int opsize,
cfde141ea3faa3 Paolo Abeni 2020-04-30 23 struct mptcp_options_received *mp_opt)
eda7acddf8080b Peter Krystad 2020-01-21 24 {
eda7acddf8080b Peter Krystad 2020-01-21 25 u8 subtype = *ptr >> 4;
648ef4b88673da Mat Martineau 2020-01-21 26 int expected_opsize;
eda7acddf8080b Peter Krystad 2020-01-21 27 u8 version;
eda7acddf8080b Peter Krystad 2020-01-21 28 u8 flags;
eda7acddf8080b Peter Krystad 2020-01-21 29
eda7acddf8080b Peter Krystad 2020-01-21 30 switch (subtype) {
eda7acddf8080b Peter Krystad 2020-01-21 31 case MPTCPOPT_MP_CAPABLE:
cc7972ea193233 Christoph Paasch 2020-01-21 32 /* strict size checking */
cc7972ea193233 Christoph Paasch 2020-01-21 33 if (!(TCP_SKB_CB(skb)->tcp_flags & TCPHDR_SYN)) {
cc7972ea193233 Christoph Paasch 2020-01-21 34 if (skb->len > tcp_hdr(skb)->doff << 2)
cc7972ea193233 Christoph Paasch 2020-01-21 35 expected_opsize = TCPOLEN_MPTCP_MPC_ACK_DATA;
cc7972ea193233 Christoph Paasch 2020-01-21 36 else
cc7972ea193233 Christoph Paasch 2020-01-21 37 expected_opsize = TCPOLEN_MPTCP_MPC_ACK;
cc7972ea193233 Christoph Paasch 2020-01-21 38 } else {
cc7972ea193233 Christoph Paasch 2020-01-21 39 if (TCP_SKB_CB(skb)->tcp_flags & TCPHDR_ACK)
cc7972ea193233 Christoph Paasch 2020-01-21 40 expected_opsize = TCPOLEN_MPTCP_MPC_SYNACK;
cc7972ea193233 Christoph Paasch 2020-01-21 41 else
cc7972ea193233 Christoph Paasch 2020-01-21 42 expected_opsize = TCPOLEN_MPTCP_MPC_SYN;
cc7972ea193233 Christoph Paasch 2020-01-21 43 }
cc7972ea193233 Christoph Paasch 2020-01-21 44 if (opsize != expected_opsize)
eda7acddf8080b Peter Krystad 2020-01-21 45 break;
eda7acddf8080b Peter Krystad 2020-01-21 46
cc7972ea193233 Christoph Paasch 2020-01-21 47 /* try to be gentle vs future versions on the initial syn */
eda7acddf8080b Peter Krystad 2020-01-21 48 version = *ptr++ & MPTCP_VERSION_MASK;
cc7972ea193233 Christoph Paasch 2020-01-21 49 if (opsize != TCPOLEN_MPTCP_MPC_SYN) {
eda7acddf8080b Peter Krystad 2020-01-21 50 if (version != MPTCP_SUPPORTED_VERSION)
eda7acddf8080b Peter Krystad 2020-01-21 51 break;
cc7972ea193233 Christoph Paasch 2020-01-21 52 } else if (version < MPTCP_SUPPORTED_VERSION) {
cc7972ea193233 Christoph Paasch 2020-01-21 53 break;
cc7972ea193233 Christoph Paasch 2020-01-21 54 }
eda7acddf8080b Peter Krystad 2020-01-21 55
eda7acddf8080b Peter Krystad 2020-01-21 56 flags = *ptr++;
65492c5a6ab5df Paolo Abeni 2020-01-21 57 if (!mptcp_cap_flag_sha256(flags) ||
eda7acddf8080b Peter Krystad 2020-01-21 58 (flags & MPTCP_CAP_EXTENSIBILITY))
eda7acddf8080b Peter Krystad 2020-01-21 59 break;
eda7acddf8080b Peter Krystad 2020-01-21 60
eda7acddf8080b Peter Krystad 2020-01-21 61 /* RFC 6824, Section 3.1:
eda7acddf8080b Peter Krystad 2020-01-21 62 * "For the Checksum Required bit (labeled "A"), if either
eda7acddf8080b Peter Krystad 2020-01-21 63 * host requires the use of checksums, checksums MUST be used.
eda7acddf8080b Peter Krystad 2020-01-21 64 * In other words, the only way for checksums not to be used
eda7acddf8080b Peter Krystad 2020-01-21 65 * is if both hosts in their SYNs set A=0."
eda7acddf8080b Peter Krystad 2020-01-21 66 *
eda7acddf8080b Peter Krystad 2020-01-21 67 * Section 3.3.0:
eda7acddf8080b Peter Krystad 2020-01-21 68 * "If a checksum is not present when its use has been
eda7acddf8080b Peter Krystad 2020-01-21 69 * negotiated, the receiver MUST close the subflow with a RST as
eda7acddf8080b Peter Krystad 2020-01-21 70 * it is considered broken."
eda7acddf8080b Peter Krystad 2020-01-21 71 *
eda7acddf8080b Peter Krystad 2020-01-21 72 * We don't implement DSS checksum - fall back to TCP.
eda7acddf8080b Peter Krystad 2020-01-21 73 */
eda7acddf8080b Peter Krystad 2020-01-21 74 if (flags & MPTCP_CAP_CHECKSUM_REQD)
eda7acddf8080b Peter Krystad 2020-01-21 75 break;
eda7acddf8080b Peter Krystad 2020-01-21 76
eda7acddf8080b Peter Krystad 2020-01-21 77 mp_opt->mp_capable = 1;
cc7972ea193233 Christoph Paasch 2020-01-21 78 if (opsize >= TCPOLEN_MPTCP_MPC_SYNACK) {
eda7acddf8080b Peter Krystad 2020-01-21 79 mp_opt->sndr_key = get_unaligned_be64(ptr);
eda7acddf8080b Peter Krystad 2020-01-21 80 ptr += 8;
cc7972ea193233 Christoph Paasch 2020-01-21 81 }
cc7972ea193233 Christoph Paasch 2020-01-21 82 if (opsize >= TCPOLEN_MPTCP_MPC_ACK) {
eda7acddf8080b Peter Krystad 2020-01-21 83 mp_opt->rcvr_key = get_unaligned_be64(ptr);
eda7acddf8080b Peter Krystad 2020-01-21 84 ptr += 8;
eda7acddf8080b Peter Krystad 2020-01-21 85 }
cc7972ea193233 Christoph Paasch 2020-01-21 86 if (opsize == TCPOLEN_MPTCP_MPC_ACK_DATA) {
cc7972ea193233 Christoph Paasch 2020-01-21 87 /* Section 3.1.:
cc7972ea193233 Christoph Paasch 2020-01-21 88 * "the data parameters in a MP_CAPABLE are semantically
cc7972ea193233 Christoph Paasch 2020-01-21 89 * equivalent to those in a DSS option and can be used
cc7972ea193233 Christoph Paasch 2020-01-21 90 * interchangeably."
cc7972ea193233 Christoph Paasch 2020-01-21 91 */
cc7972ea193233 Christoph Paasch 2020-01-21 92 mp_opt->dss = 1;
cc7972ea193233 Christoph Paasch 2020-01-21 93 mp_opt->use_map = 1;
cc7972ea193233 Christoph Paasch 2020-01-21 94 mp_opt->mpc_map = 1;
cc7972ea193233 Christoph Paasch 2020-01-21 95 mp_opt->data_len = get_unaligned_be16(ptr);
cc7972ea193233 Christoph Paasch 2020-01-21 96 ptr += 2;
cc7972ea193233 Christoph Paasch 2020-01-21 97 }
cc7972ea193233 Christoph Paasch 2020-01-21 98 pr_debug("MP_CAPABLE version=%x, flags=%x, optlen=%d sndr=%llu, rcvr=%llu len=%d",
cc7972ea193233 Christoph Paasch 2020-01-21 99 version, flags, opsize, mp_opt->sndr_key,
cc7972ea193233 Christoph Paasch 2020-01-21 100 mp_opt->rcvr_key, mp_opt->data_len);
eda7acddf8080b Peter Krystad 2020-01-21 101 break;
eda7acddf8080b Peter Krystad 2020-01-21 102
f296234c98a8fc Peter Krystad 2020-03-27 103 case MPTCPOPT_MP_JOIN:
f296234c98a8fc Peter Krystad 2020-03-27 104 mp_opt->mp_join = 1;
f296234c98a8fc Peter Krystad 2020-03-27 105 if (opsize == TCPOLEN_MPTCP_MPJ_SYN) {
f296234c98a8fc Peter Krystad 2020-03-27 106 mp_opt->backup = *ptr++ & MPTCPOPT_BACKUP;
f296234c98a8fc Peter Krystad 2020-03-27 107 mp_opt->join_id = *ptr++;
f296234c98a8fc Peter Krystad 2020-03-27 108 mp_opt->token = get_unaligned_be32(ptr);
f296234c98a8fc Peter Krystad 2020-03-27 109 ptr += 4;
f296234c98a8fc Peter Krystad 2020-03-27 110 mp_opt->nonce = get_unaligned_be32(ptr);
f296234c98a8fc Peter Krystad 2020-03-27 111 ptr += 4;
f296234c98a8fc Peter Krystad 2020-03-27 112 pr_debug("MP_JOIN bkup=%u, id=%u, token=%u, nonce=%u",
f296234c98a8fc Peter Krystad 2020-03-27 113 mp_opt->backup, mp_opt->join_id,
f296234c98a8fc Peter Krystad 2020-03-27 114 mp_opt->token, mp_opt->nonce);
f296234c98a8fc Peter Krystad 2020-03-27 115 } else if (opsize == TCPOLEN_MPTCP_MPJ_SYNACK) {
f296234c98a8fc Peter Krystad 2020-03-27 116 mp_opt->backup = *ptr++ & MPTCPOPT_BACKUP;
f296234c98a8fc Peter Krystad 2020-03-27 117 mp_opt->join_id = *ptr++;
f296234c98a8fc Peter Krystad 2020-03-27 118 mp_opt->thmac = get_unaligned_be64(ptr);
f296234c98a8fc Peter Krystad 2020-03-27 119 ptr += 8;
f296234c98a8fc Peter Krystad 2020-03-27 120 mp_opt->nonce = get_unaligned_be32(ptr);
f296234c98a8fc Peter Krystad 2020-03-27 121 ptr += 4;
f296234c98a8fc Peter Krystad 2020-03-27 122 pr_debug("MP_JOIN bkup=%u, id=%u, thmac=%llu, nonce=%u",
f296234c98a8fc Peter Krystad 2020-03-27 123 mp_opt->backup, mp_opt->join_id,
f296234c98a8fc Peter Krystad 2020-03-27 124 mp_opt->thmac, mp_opt->nonce);
f296234c98a8fc Peter Krystad 2020-03-27 125 } else if (opsize == TCPOLEN_MPTCP_MPJ_ACK) {
f296234c98a8fc Peter Krystad 2020-03-27 126 ptr += 2;
f296234c98a8fc Peter Krystad 2020-03-27 127 memcpy(mp_opt->hmac, ptr, MPTCPOPT_HMAC_LEN);
f296234c98a8fc Peter Krystad 2020-03-27 128 pr_debug("MP_JOIN hmac");
f296234c98a8fc Peter Krystad 2020-03-27 129 } else {
f296234c98a8fc Peter Krystad 2020-03-27 130 pr_warn("MP_JOIN bad option size");
f296234c98a8fc Peter Krystad 2020-03-27 131 mp_opt->mp_join = 0;
f296234c98a8fc Peter Krystad 2020-03-27 132 }
f296234c98a8fc Peter Krystad 2020-03-27 133 break;
f296234c98a8fc Peter Krystad 2020-03-27 134
eda7acddf8080b Peter Krystad 2020-01-21 135 case MPTCPOPT_DSS:
eda7acddf8080b Peter Krystad 2020-01-21 136 pr_debug("DSS");
648ef4b88673da Mat Martineau 2020-01-21 137 ptr++;
648ef4b88673da Mat Martineau 2020-01-21 138
cc7972ea193233 Christoph Paasch 2020-01-21 139 /* we must clear 'mpc_map' be able to detect MP_CAPABLE
cc7972ea193233 Christoph Paasch 2020-01-21 140 * map vs DSS map in mptcp_incoming_options(), and reconstruct
cc7972ea193233 Christoph Paasch 2020-01-21 141 * map info accordingly
cc7972ea193233 Christoph Paasch 2020-01-21 142 */
cc7972ea193233 Christoph Paasch 2020-01-21 143 mp_opt->mpc_map = 0;
648ef4b88673da Mat Martineau 2020-01-21 144 flags = (*ptr++) & MPTCP_DSS_FLAG_MASK;
648ef4b88673da Mat Martineau 2020-01-21 145 mp_opt->data_fin = (flags & MPTCP_DSS_DATA_FIN) != 0;
648ef4b88673da Mat Martineau 2020-01-21 146 mp_opt->dsn64 = (flags & MPTCP_DSS_DSN64) != 0;
648ef4b88673da Mat Martineau 2020-01-21 147 mp_opt->use_map = (flags & MPTCP_DSS_HAS_MAP) != 0;
648ef4b88673da Mat Martineau 2020-01-21 148 mp_opt->ack64 = (flags & MPTCP_DSS_ACK64) != 0;
648ef4b88673da Mat Martineau 2020-01-21 149 mp_opt->use_ack = (flags & MPTCP_DSS_HAS_ACK);
648ef4b88673da Mat Martineau 2020-01-21 150
648ef4b88673da Mat Martineau 2020-01-21 151 pr_debug("data_fin=%d dsn64=%d use_map=%d ack64=%d use_ack=%d",
648ef4b88673da Mat Martineau 2020-01-21 152 mp_opt->data_fin, mp_opt->dsn64,
648ef4b88673da Mat Martineau 2020-01-21 153 mp_opt->use_map, mp_opt->ack64,
648ef4b88673da Mat Martineau 2020-01-21 154 mp_opt->use_ack);
648ef4b88673da Mat Martineau 2020-01-21 155
648ef4b88673da Mat Martineau 2020-01-21 156 expected_opsize = TCPOLEN_MPTCP_DSS_BASE;
648ef4b88673da Mat Martineau 2020-01-21 157
648ef4b88673da Mat Martineau 2020-01-21 158 if (mp_opt->use_ack) {
648ef4b88673da Mat Martineau 2020-01-21 159 if (mp_opt->ack64)
648ef4b88673da Mat Martineau 2020-01-21 160 expected_opsize += TCPOLEN_MPTCP_DSS_ACK64;
648ef4b88673da Mat Martineau 2020-01-21 161 else
648ef4b88673da Mat Martineau 2020-01-21 162 expected_opsize += TCPOLEN_MPTCP_DSS_ACK32;
648ef4b88673da Mat Martineau 2020-01-21 163 }
648ef4b88673da Mat Martineau 2020-01-21 164
648ef4b88673da Mat Martineau 2020-01-21 165 if (mp_opt->use_map) {
648ef4b88673da Mat Martineau 2020-01-21 166 if (mp_opt->dsn64)
648ef4b88673da Mat Martineau 2020-01-21 167 expected_opsize += TCPOLEN_MPTCP_DSS_MAP64;
648ef4b88673da Mat Martineau 2020-01-21 168 else
648ef4b88673da Mat Martineau 2020-01-21 169 expected_opsize += TCPOLEN_MPTCP_DSS_MAP32;
648ef4b88673da Mat Martineau 2020-01-21 170 }
648ef4b88673da Mat Martineau 2020-01-21 171
648ef4b88673da Mat Martineau 2020-01-21 172 /* RFC 6824, Section 3.3:
648ef4b88673da Mat Martineau 2020-01-21 173 * If a checksum is present, but its use had
648ef4b88673da Mat Martineau 2020-01-21 174 * not been negotiated in the MP_CAPABLE handshake,
648ef4b88673da Mat Martineau 2020-01-21 175 * the checksum field MUST be ignored.
648ef4b88673da Mat Martineau 2020-01-21 176 */
648ef4b88673da Mat Martineau 2020-01-21 177 if (opsize != expected_opsize &&
648ef4b88673da Mat Martineau 2020-01-21 178 opsize != expected_opsize + TCPOLEN_MPTCP_DSS_CHECKSUM)
648ef4b88673da Mat Martineau 2020-01-21 179 break;
648ef4b88673da Mat Martineau 2020-01-21 180
eda7acddf8080b Peter Krystad 2020-01-21 181 mp_opt->dss = 1;
648ef4b88673da Mat Martineau 2020-01-21 182
648ef4b88673da Mat Martineau 2020-01-21 183 if (mp_opt->use_ack) {
648ef4b88673da Mat Martineau 2020-01-21 184 if (mp_opt->ack64) {
648ef4b88673da Mat Martineau 2020-01-21 185 mp_opt->data_ack = get_unaligned_be64(ptr);
648ef4b88673da Mat Martineau 2020-01-21 186 ptr += 8;
648ef4b88673da Mat Martineau 2020-01-21 187 } else {
648ef4b88673da Mat Martineau 2020-01-21 188 mp_opt->data_ack = get_unaligned_be32(ptr);
648ef4b88673da Mat Martineau 2020-01-21 189 ptr += 4;
648ef4b88673da Mat Martineau 2020-01-21 190 }
648ef4b88673da Mat Martineau 2020-01-21 191
648ef4b88673da Mat Martineau 2020-01-21 192 pr_debug("data_ack=%llu", mp_opt->data_ack);
648ef4b88673da Mat Martineau 2020-01-21 193 }
648ef4b88673da Mat Martineau 2020-01-21 194
648ef4b88673da Mat Martineau 2020-01-21 195 if (mp_opt->use_map) {
648ef4b88673da Mat Martineau 2020-01-21 196 if (mp_opt->dsn64) {
648ef4b88673da Mat Martineau 2020-01-21 197 mp_opt->data_seq = get_unaligned_be64(ptr);
648ef4b88673da Mat Martineau 2020-01-21 198 ptr += 8;
648ef4b88673da Mat Martineau 2020-01-21 199 } else {
648ef4b88673da Mat Martineau 2020-01-21 200 mp_opt->data_seq = get_unaligned_be32(ptr);
648ef4b88673da Mat Martineau 2020-01-21 201 ptr += 4;
648ef4b88673da Mat Martineau 2020-01-21 202 }
648ef4b88673da Mat Martineau 2020-01-21 203
648ef4b88673da Mat Martineau 2020-01-21 204 mp_opt->subflow_seq = get_unaligned_be32(ptr);
648ef4b88673da Mat Martineau 2020-01-21 205 ptr += 4;
648ef4b88673da Mat Martineau 2020-01-21 206
648ef4b88673da Mat Martineau 2020-01-21 207 mp_opt->data_len = get_unaligned_be16(ptr);
648ef4b88673da Mat Martineau 2020-01-21 208 ptr += 2;
648ef4b88673da Mat Martineau 2020-01-21 209
648ef4b88673da Mat Martineau 2020-01-21 210 pr_debug("data_seq=%llu subflow_seq=%u data_len=%u",
648ef4b88673da Mat Martineau 2020-01-21 211 mp_opt->data_seq, mp_opt->subflow_seq,
648ef4b88673da Mat Martineau 2020-01-21 212 mp_opt->data_len);
648ef4b88673da Mat Martineau 2020-01-21 213 }
648ef4b88673da Mat Martineau 2020-01-21 214
eda7acddf8080b Peter Krystad 2020-01-21 215 break;
eda7acddf8080b Peter Krystad 2020-01-21 216
3df523ab582c52 Peter Krystad 2020-03-27 217 case MPTCPOPT_ADD_ADDR:
3df523ab582c52 Peter Krystad 2020-03-27 218 mp_opt->echo = (*ptr++) & MPTCP_ADDR_ECHO;
3df523ab582c52 Peter Krystad 2020-03-27 219 if (!mp_opt->echo) {
3df523ab582c52 Peter Krystad 2020-03-27 220 if (opsize == TCPOLEN_MPTCP_ADD_ADDR ||
3df523ab582c52 Peter Krystad 2020-03-27 221 opsize == TCPOLEN_MPTCP_ADD_ADDR_PORT)
3df523ab582c52 Peter Krystad 2020-03-27 222 mp_opt->family = MPTCP_ADDR_IPVERSION_4;
3df523ab582c52 Peter Krystad 2020-03-27 223 #if IS_ENABLED(CONFIG_MPTCP_IPV6)
3df523ab582c52 Peter Krystad 2020-03-27 224 else if (opsize == TCPOLEN_MPTCP_ADD_ADDR6 ||
3df523ab582c52 Peter Krystad 2020-03-27 225 opsize == TCPOLEN_MPTCP_ADD_ADDR6_PORT)
3df523ab582c52 Peter Krystad 2020-03-27 226 mp_opt->family = MPTCP_ADDR_IPVERSION_6;
3df523ab582c52 Peter Krystad 2020-03-27 227 #endif
3df523ab582c52 Peter Krystad 2020-03-27 228 else
3df523ab582c52 Peter Krystad 2020-03-27 229 break;
3df523ab582c52 Peter Krystad 2020-03-27 230 } else {
3df523ab582c52 Peter Krystad 2020-03-27 231 if (opsize == TCPOLEN_MPTCP_ADD_ADDR_BASE ||
3df523ab582c52 Peter Krystad 2020-03-27 232 opsize == TCPOLEN_MPTCP_ADD_ADDR_BASE_PORT)
3df523ab582c52 Peter Krystad 2020-03-27 233 mp_opt->family = MPTCP_ADDR_IPVERSION_4;
3df523ab582c52 Peter Krystad 2020-03-27 234 #if IS_ENABLED(CONFIG_MPTCP_IPV6)
3df523ab582c52 Peter Krystad 2020-03-27 235 else if (opsize == TCPOLEN_MPTCP_ADD_ADDR6_BASE ||
3df523ab582c52 Peter Krystad 2020-03-27 236 opsize == TCPOLEN_MPTCP_ADD_ADDR6_BASE_PORT)
3df523ab582c52 Peter Krystad 2020-03-27 237 mp_opt->family = MPTCP_ADDR_IPVERSION_6;
3df523ab582c52 Peter Krystad 2020-03-27 238 #endif
3df523ab582c52 Peter Krystad 2020-03-27 239 else
3df523ab582c52 Peter Krystad 2020-03-27 240 break;
3df523ab582c52 Peter Krystad 2020-03-27 241 }
3df523ab582c52 Peter Krystad 2020-03-27 242
3df523ab582c52 Peter Krystad 2020-03-27 243 mp_opt->add_addr = 1;
3df523ab582c52 Peter Krystad 2020-03-27 244 mp_opt->addr_id = *ptr++;
3df523ab582c52 Peter Krystad 2020-03-27 245 if (mp_opt->family == MPTCP_ADDR_IPVERSION_4) {
3df523ab582c52 Peter Krystad 2020-03-27 246 memcpy((u8 *)&mp_opt->addr.s_addr, (u8 *)ptr, 4);
3df523ab582c52 Peter Krystad 2020-03-27 247 ptr += 4;
3df523ab582c52 Peter Krystad 2020-03-27 248 if (opsize == TCPOLEN_MPTCP_ADD_ADDR_PORT ||
3df523ab582c52 Peter Krystad 2020-03-27 249 opsize == TCPOLEN_MPTCP_ADD_ADDR_BASE_PORT) {
3df523ab582c52 Peter Krystad 2020-03-27 250 mp_opt->port = get_unaligned_be16(ptr);
3df523ab582c52 Peter Krystad 2020-03-27 251 ptr += 2;
3df523ab582c52 Peter Krystad 2020-03-27 252 }
3df523ab582c52 Peter Krystad 2020-03-27 253 }
3df523ab582c52 Peter Krystad 2020-03-27 254 #if IS_ENABLED(CONFIG_MPTCP_IPV6)
3df523ab582c52 Peter Krystad 2020-03-27 255 else {
3df523ab582c52 Peter Krystad 2020-03-27 256 memcpy(mp_opt->addr6.s6_addr, (u8 *)ptr, 16);
3df523ab582c52 Peter Krystad 2020-03-27 257 ptr += 16;
3df523ab582c52 Peter Krystad 2020-03-27 258 if (opsize == TCPOLEN_MPTCP_ADD_ADDR6_PORT ||
3df523ab582c52 Peter Krystad 2020-03-27 259 opsize == TCPOLEN_MPTCP_ADD_ADDR6_BASE_PORT) {
3df523ab582c52 Peter Krystad 2020-03-27 260 mp_opt->port = get_unaligned_be16(ptr);
3df523ab582c52 Peter Krystad 2020-03-27 261 ptr += 2;
3df523ab582c52 Peter Krystad 2020-03-27 262 }
3df523ab582c52 Peter Krystad 2020-03-27 263 }
3df523ab582c52 Peter Krystad 2020-03-27 264 #endif
3df523ab582c52 Peter Krystad 2020-03-27 265 if (!mp_opt->echo) {
3df523ab582c52 Peter Krystad 2020-03-27 266 mp_opt->ahmac = get_unaligned_be64(ptr);
3df523ab582c52 Peter Krystad 2020-03-27 267 ptr += 8;
3df523ab582c52 Peter Krystad 2020-03-27 268 }
90a4aea8b6edff Geliang Tang 2020-12-09 269 pr_debug("ADD_ADDR%s: id=%d, ahmac=%llu, echo=%d, port=%d",
90a4aea8b6edff Geliang Tang 2020-12-09 270 (mp_opt->family == MPTCP_ADDR_IPVERSION_6) ? "6" : "",
90a4aea8b6edff Geliang Tang 2020-12-09 271 mp_opt->addr_id, mp_opt->ahmac, mp_opt->echo, mp_opt->port);
3df523ab582c52 Peter Krystad 2020-03-27 272 break;
3df523ab582c52 Peter Krystad 2020-03-27 273
3df523ab582c52 Peter Krystad 2020-03-27 274 case MPTCPOPT_RM_ADDR:
3df523ab582c52 Peter Krystad 2020-03-27 275 if (opsize != TCPOLEN_MPTCP_RM_ADDR_BASE)
3df523ab582c52 Peter Krystad 2020-03-27 276 break;
3df523ab582c52 Peter Krystad 2020-03-27 277
8e60eed6b38e46 Geliang Tang 2020-06-08 278 ptr++;
8e60eed6b38e46 Geliang Tang 2020-06-08 279
3df523ab582c52 Peter Krystad 2020-03-27 280 mp_opt->rm_addr = 1;
3df523ab582c52 Peter Krystad 2020-03-27 281 mp_opt->rm_id = *ptr++;
3df523ab582c52 Peter Krystad 2020-03-27 282 pr_debug("RM_ADDR: id=%d", mp_opt->rm_id);
3df523ab582c52 Peter Krystad 2020-03-27 283 break;
3df523ab582c52 Peter Krystad 2020-03-27 284
50c504a20a754c Florian Westphal 2020-12-10 285 case MPTCPOPT_MP_FASTCLOSE:
50c504a20a754c Florian Westphal 2020-12-10 286 if (opsize != TCPOLEN_MPTCP_FASTCLOSE)
50c504a20a754c Florian Westphal 2020-12-10 287 break;
50c504a20a754c Florian Westphal 2020-12-10 288
50c504a20a754c Florian Westphal 2020-12-10 289 ptr += 2;
50c504a20a754c Florian Westphal 2020-12-10 290 mp_opt->rcvr_key = get_unaligned_be64(ptr);
50c504a20a754c Florian Westphal 2020-12-10 @291 ptr += 8;
50c504a20a754c Florian Westphal 2020-12-10 292 mp_opt->fastclose = 1;
50c504a20a754c Florian Westphal 2020-12-10 293 break;
50c504a20a754c Florian Westphal 2020-12-10 294
eda7acddf8080b Peter Krystad 2020-01-21 295 default:
eda7acddf8080b Peter Krystad 2020-01-21 296 break;
eda7acddf8080b Peter Krystad 2020-01-21 297 }
eda7acddf8080b Peter Krystad 2020-01-21 298 }
eda7acddf8080b Peter Krystad 2020-01-21 299
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org
next reply other threads:[~2021-02-12 12:29 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-02-12 12:29 kernel test robot [this message]
-- strict thread matches above, loose matches on Subject: below --
2021-01-19 10:20 net/mptcp/options.c:291:3: warning: Assignment of function parameter has no effect outside the function. Did you forget dereferencing kernel test robot
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=202102122012.8htxIA4O-lkp@intel.com \
--to=lkp@intel.com \
--cc=kbuild@lists.01.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.