WARNING: added, moved or deleted file(s), does MAINTAINERS need updating? #73: new file mode 100644 WARNING: line length of 85 exceeds 80 columns #99: FILE: net/quic/packet.c:22: +/* Supported QUIC versions and their compatible versions. Used for Compatible Version WARNING: line length of 84 exceeds 80 columns #104: FILE: net/quic/packet.c:27: + { QUIC_VERSION_V1, QUIC_VERSION_V2, QUIC_VERSION_V1, 0 }, WARNING: line length of 84 exceeds 80 columns #105: FILE: net/quic/packet.c:28: + { QUIC_VERSION_V2, QUIC_VERSION_V2, QUIC_VERSION_V1, 0 }, WARNING: line length of 93 exceeds 80 columns #140: FILE: net/quic/packet.c:63: +/* Parse QUIC version and connection IDs (DCID and SCID) from a Long header packet buffer. */ WARNING: line length of 99 exceeds 80 columns #141: FILE: net/quic/packet.c:64: +static int quic_packet_get_version_and_connid(struct quic_conn_id *dcid, struct quic_conn_id *scid, WARNING: line length of 91 exceeds 80 columns #171: FILE: net/quic/packet.c:94: + * Frees existing initial crypto keys and installs new initial keys compatible with the new WARNING: line length of 94 exceeds 80 columns #174: FILE: net/quic/packet.c:97: +static int quic_packet_version_change(struct sock *sk, struct quic_conn_id *dcid, u32 version) WARNING: line length of 86 exceeds 80 columns #178: FILE: net/quic/packet.c:101: + if (quic_crypto_initial_keys_install(crypto, dcid, version, quic_is_serv(sk))) WARNING: line length of 91 exceeds 80 columns #187: FILE: net/quic/packet.c:110: + * Considers the local preferred version, currently chosen version, and versions offered by WARNING: line length of 92 exceeds 80 columns #188: FILE: net/quic/packet.c:111: + * the peer. Selects the best compatible version based on client/server role and updates the WARNING: line length of 95 exceeds 80 columns #215: FILE: net/quic/packet.c:138: + if (quic_is_serv(sk)) { /* Server prefers preferred version if offered, else chosen. */ WARNING: line length of 82 exceeds 80 columns #261: FILE: net/quic/packet.c:184: + /* If PLPMTUD is not enabled, update MSS using the route and ICMP info. */ WARNING: line length of 91 exceeds 80 columns #271: FILE: net/quic/packet.c:194: + /* PLPMTUD is enabled: adjust to smaller PMTU, subtract headers and AEAD tag. Also WARNING: line length of 81 exceeds 80 columns #278: FILE: net/quic/packet.c:201: + quic_timer_reset(sk, QUIC_TIMER_PMTU, c->plpmtud_probe_interval); WARNING: line length of 92 exceeds 80 columns #307: FILE: net/quic/packet.c:230: + /* Socket is in use by userspace context. Defer MTU processing to later via WARNING: line length of 84 exceeds 80 columns #310: FILE: net/quic/packet.c:233: + if (!test_and_set_bit(QUIC_MTU_REDUCED_DEFERRED, &sk->sk_tsq_flags)) WARNING: line length of 92 exceeds 80 columns #350: FILE: net/quic/packet.c:273: + * Parses the TLS ClientHello handshake message to find the ALPN (Application Layer Protocol WARNING: line length of 93 exceeds 80 columns #351: FILE: net/quic/packet.c:274: + * Negotiation) TLS extension. It validates the TLS ClientHello structure, including version, WARNING: line length of 88 exceeds 80 columns #352: FILE: net/quic/packet.c:275: + * random, session ID, cipher suites, compression methods, and extensions. Once the ALPN WARNING: line length of 82 exceeds 80 columns #355: FILE: net/quic/packet.c:278: + * Return: 0 on success or no ALPN found, a negative error code on failed parsing. WARNING: line length of 85 exceeds 80 columns #368: FILE: net/quic/packet.c:291: + if (len > (u32)length) /* Limit len to handshake message length if larger. */ WARNING: line length of 92 exceeds 80 columns #389: FILE: net/quic/packet.c:312: + if (!quic_get_int(&p, &len, &length, 2)) /* Read TLS extensions length (2 bytes). */ WARNING: line length of 89 exceeds 80 columns #393: FILE: net/quic/packet.c:316: + while (len > 4) { /* Iterate over extensions to find ALPN (type TLS_EXT_alpn). */ WARNING: line length of 90 exceeds 80 columns #409: FILE: net/quic/packet.c:332: + if (!found) { /* no ALPN extension found: set alpn->len = 0 and alpn->data = p. */ WARNING: line length of 82 exceeds 80 columns #417: FILE: net/quic/packet.c:340: + quic_data(alpn, p, length); /* Store ALPN protocols list in alpn->data. */ WARNING: line length of 92 exceeds 80 columns #421: FILE: net/quic/packet.c:344: + /* Malformed ALPN entry: set alpn->len = 0 and alpn->data = NULL. */ WARNING: line length of 93 exceeds 80 columns #434: FILE: net/quic/packet.c:357: + * This function processes a QUIC Initial packet to extract the ALPN from the TLS ClientHello WARNING: line length of 88 exceeds 80 columns #435: FILE: net/quic/packet.c:358: + * message inside the QUIC CRYPTO frame. It verifies packet type, version compatibility, WARNING: line length of 90 exceeds 80 columns #436: FILE: net/quic/packet.c:359: + * decrypts the packet payload, and locates the CRYPTO frame to parse the TLS ClientHello. WARNING: line length of 82 exceeds 80 columns #439: FILE: net/quic/packet.c:362: + * Return: 0 on success or no ALPN found, a negative error code on failed parsing. WARNING: line length of 81 exceeds 80 columns #454: FILE: net/quic/packet.c:377: + if (quic_packet_get_version_and_connid(&dcid, &scid, &version, &p, &len)) WARNING: line length of 82 exceeds 80 columns #514: FILE: net/quic/packet.c:437: +/* Extract the Destination Connection ID (DCID) from a QUIC Long header packet. */ WARNING: line length of 87 exceeds 80 columns #550: FILE: net/quic/packet.c:473: + * (Currently, only source CIDs of size QUIC_CONN_ID_DEF_LEN are used). WARNING: line length of 88 exceeds 80 columns #556: FILE: net/quic/packet.c:479: + return quic_conn_id_sk(conn_id); /* Return associated socket. */ WARNING: line length of 99 exceeds 80 columns #678: FILE: net/quic/packet.c:601: + /* Free all frames for now, and future patches will implement the actual creation logic. */ WARNING: line length of 99 exceeds 80 columns #696: FILE: net/quic/packet.c:619: + /* Free all frames for now, and future patches will implement the actual creation logic. */ WARNING: line length of 90 exceeds 80 columns #714: FILE: net/quic/packet.c:637: +/* Perform routing for the QUIC packet on the specified path, update header length and MSS WARNING: line length of 86 exceeds 80 columns #741: FILE: net/quic/packet.c:664: +/* Configure the QUIC packet header and routing based on encryption level and path. */ WARNING: line length of 81 exceeds 80 columns #744: FILE: net/quic/packet.c:667: + struct quic_conn_id_set *dest = quic_dest(sk), *source = quic_source(sk); WARNING: line length of 94 exceeds 80 columns #762: FILE: net/quic/packet.c:685: + hlen += 1 + quic_conn_id_active(source)->len; /* Length byte + SCID length. */ WARNING: line length of 90 exceeds 80 columns #763: FILE: net/quic/packet.c:686: + if (level == QUIC_CRYPTO_INITIAL) /* Include token for Initial packets. */ WARNING: line length of 88 exceeds 80 columns #764: FILE: net/quic/packet.c:687: + hlen += quic_var_len(quic_token(sk)->len) + quic_token(sk)->len; WARNING: line length of 81 exceeds 80 columns #766: FILE: net/quic/packet.c:689: + hlen += QUIC_PACKET_LENGTH_LEN; /* Packet length field length. */ WARNING: line length of 92 exceeds 80 columns #767: FILE: net/quic/packet.c:690: + /* Allow fragmentation if PLPMTUD is enabled, as it no longer relies on ICMP WARNING: line length of 94 exceeds 80 columns #776: FILE: net/quic/packet.c:699: + if (packet->path != path) { /* If the path changed, update and reset routing cache. */ WARNING: line length of 100 exceeds 80 columns #789: FILE: net/quic/packet.c:712: + /* Free it for now, future patches will implement the actual deferred transmission logic. */ WARNING: line length of 92 exceeds 80 columns #828: FILE: net/quic/packet.c:751: + * Packets with a short header (Section 17.3) do not contain a Length field and so WARNING: line length of 93 exceeds 80 columns #844: FILE: net/quic/packet.c:767: + /* Associate skb with sk to ensure sk is valid during async encryption completion. */ WARNING: line length of 82 exceeds 80 columns #910: FILE: net/quic/packet.c:833: + quic_path_daddr(paths, packet->path), &paths->fl); WARNING: line length of 88 exceeds 80 columns #921: FILE: net/quic/packet.c:844: + /* Reject frame if it doesn't match the packet's encryption level or path, or if WARNING: line length of 88 exceeds 80 columns #928: FILE: net/quic/packet.c:851: + /* Check if frame would exceed the current datagram MSS (excluding AEAD tag). */ WARNING: line length of 82 exceeds 80 columns #931: FILE: net/quic/packet.c:854: + /* If some data has already been added to the packet, bail out. */ WARNING: line length of 99 exceeds 80 columns #934: FILE: net/quic/packet.c:857: + /* Otherwise, allow IP fragmentation for this packet unless it’s a PING probe. */ WARNING: line length of 98 exceeds 80 columns #941: FILE: net/quic/packet.c:864: + /* Track frames that require retransmission if lost (i.e., ACK-eliciting and non-PING). */ WARNING: line length of 85 exceeds 80 columns #984: FILE: net/quic/packet.h:12: + struct quic_conn_id dcid; /* Dest Connection ID from received packet */ WARNING: line length of 87 exceeds 80 columns #985: FILE: net/quic/packet.h:13: + struct quic_conn_id scid; /* Source Connection ID from received packet */ WARNING: line length of 81 exceeds 80 columns #987: FILE: net/quic/packet.h:15: + union quic_addr saddr; /* Source address from received packet */ WARNING: line length of 89 exceeds 80 columns #989: FILE: net/quic/packet.h:17: + struct list_head frame_list; /* List of frames to pack into packet for send */ WARNING: line length of 82 exceeds 80 columns #990: FILE: net/quic/packet.h:18: + struct sk_buff *head; /* Head skb for packet bundling on send */ WARNING: line length of 87 exceeds 80 columns #991: FILE: net/quic/packet.h:19: + u16 frame_len; /* Length of all ack-eliciting frames excluding PING */ WARNING: line length of 81 exceeds 80 columns #993: FILE: net/quic/packet.h:21: + u32 version; /* QUIC version used/selected during handshake */ WARNING: line length of 82 exceeds 80 columns #994: FILE: net/quic/packet.h:22: + u8 errframe; /* Frame type causing packet processing failure */ WARNING: line length of 83 exceeds 80 columns #997: FILE: net/quic/packet.h:25: + u16 frames; /* Number of ack-eliciting frames excluding PING */ WARNING: line length of 85 exceeds 80 columns #1000: FILE: net/quic/packet.h:28: + u16 len; /* QUIC packet length excluding taglen for sending */ WARNING: line length of 82 exceeds 80 columns #1002: FILE: net/quic/packet.h:30: + u8 ack_eliciting:1; /* Packet contains ack-eliciting frames to send */ WARNING: line length of 83 exceeds 80 columns #1003: FILE: net/quic/packet.h:31: + u8 ack_requested:1; /* Packet contains ack-eliciting frames received */ WARNING: line length of 81 exceeds 80 columns #1004: FILE: net/quic/packet.h:32: + u8 ack_immediate:1; /* Send ACK immediately (skip ack_delay timer) */ WARNING: line length of 97 exceeds 80 columns #1005: FILE: net/quic/packet.h:33: + u8 non_probing:1; /* Packet has ack-eliciting frames excluding NEW_CONNECTION_ID */ WARNING: line length of 86 exceeds 80 columns #1023: FILE: net/quic/packet.h:51: + struct quic_frame *frame_array[]; /* Array of pointers to held frames */ WARNING: line length of 83 exceeds 80 columns #1060: FILE: net/quic/packet.h:88: + return packet->mss[0] - packet->overhead - packet->taglen[!!packet->level]; WARNING: line length of 83 exceeds 80 columns #1065: FILE: net/quic/packet.h:93: + return packet->mss[1] - packet->overhead - packet->taglen[!!packet->level]; WARNING: line length of 93 exceeds 80 columns #1144: FILE: net/quic/socket.c:30: + * This function searches the established (non-listening) QUIC socket table for a socket that WARNING: line length of 92 exceeds 80 columns #1145: FILE: net/quic/socket.c:31: + * matches the source and dest addresses and, optionally, the dest connection ID (DCID). The WARNING: line length of 92 exceeds 80 columns #1146: FILE: net/quic/socket.c:32: + * value returned by quic_path_orig_dcid() might be the original dest connection ID from the WARNING: line length of 93 exceeds 80 columns #1149: FILE: net/quic/socket.c:35: + * The DCID is provided from a handshake packet when searching by source connection ID fails, WARNING: line length of 85 exceeds 80 columns #1150: FILE: net/quic/socket.c:36: + * such as when the peer has not yet received server's response and updated the DCID. WARNING: line length of 84 exceeds 80 columns #1152: FILE: net/quic/socket.c:38: + * Return: A pointer to the matching connected socket, or NULL if no match is found. WARNING: line length of 92 exceeds 80 columns #1154: FILE: net/quic/socket.c:40: +struct sock *quic_sock_lookup(struct sk_buff *skb, union quic_addr *sa, union quic_addr *da, WARNING: line length of 83 exceeds 80 columns #1170: FILE: net/quic/socket.c:56: + (!dcid || !quic_conn_id_cmp(quic_path_orig_dcid(paths), dcid))) WARNING: line length of 92 exceeds 80 columns #1180: FILE: net/quic/socket.c:66: + * This function searches the QUIC socket table for a listening socket that matches the dest WARNING: line length of 92 exceeds 80 columns #1181: FILE: net/quic/socket.c:67: + * address and port, and the ALPN(s) if presented in the ClientHello. If multiple listening WARNING: line length of 90 exceeds 80 columns #1182: FILE: net/quic/socket.c:68: + * sockets are bound to the same address, port, and ALPN(s) (e.g., via SO_REUSEPORT), this WARNING: line length of 84 exceeds 80 columns #1185: FILE: net/quic/socket.c:71: + * Return: A pointer to the matching listening socket, or NULL if no match is found. WARNING: line length of 99 exceeds 80 columns #1187: FILE: net/quic/socket.c:73: +struct sock *quic_listen_sock_lookup(struct sk_buff *skb, union quic_addr *sa, union quic_addr *da, WARNING: line length of 86 exceeds 80 columns #1202: FILE: net/quic/socket.c:88: + if (!alpns->len) { /* No ALPN entries present or failed to parse the ALPNs. */ WARNING: line length of 95 exceeds 80 columns #1204: FILE: net/quic/socket.c:90: + /* If alpns->data != NULL, TLS parsing succeeded but no ALPN was found. WARNING: line length of 82 exceeds 80 columns #1205: FILE: net/quic/socket.c:91: + * In this case, only match sockets that have no ALPN set. WARNING: line length of 83 exceeds 80 columns #1208: FILE: net/quic/socket.c:94: + if (net == sock_net(tmp) && quic_cmp_sk_addr(tmp, a, sa) && WARNING: line length of 94 exceeds 80 columns #1211: FILE: net/quic/socket.c:97: + if (!quic_is_any_addr(a)) /* Prefer specific address match. */ WARNING: line length of 82 exceeds 80 columns #1219: FILE: net/quic/socket.c:105: + for (p = alpns->data, len = alpns->len; len; len -= length, p += length) { WARNING: line length of 83 exceeds 80 columns #1224: FILE: net/quic/socket.c:110: + if (net == sock_net(tmp) && quic_cmp_sk_addr(tmp, a, sa) && WARNING: line length of 99 exceeds 80 columns #1316: FILE: net/quic/socket.h:217: +struct sock *quic_listen_sock_lookup(struct sk_buff *skb, union quic_addr *sa, union quic_addr *da, WARNING: line length of 92 exceeds 80 columns #1318: FILE: net/quic/socket.h:219: +struct sock *quic_sock_lookup(struct sk_buff *skb, union quic_addr *sa, union quic_addr *da, total: 0 errors, 94 warnings, 0 checks, 1218 lines checked NOTE: For some of the reported defects, checkpatch may be able to mechanically convert to the typical style using --fix or --fix-inplace. Commit bf2a07eaa080 ("quic: add packet builder and parser base") has style problems, please review. NOTE: Ignored message types: ALLOC_SIZEOF_STRUCT BAD_REPORTED_BY_LINK CAMELCASE COMMIT_LOG_LONG_LINE GIT_COMMIT_ID MACRO_ARG_REUSE NO_AUTHOR_SIGN_OFF NOTE: If any of the errors are false positives, please report them to the maintainer, see CHECKPATCH in MAINTAINERS. total: 0 errors, 94 warnings, 0 checks, 1218 lines checked