WARNING: added, moved or deleted file(s), does MAINTAINERS need updating? #74: new file mode 100644 WARNING: line length of 85 exceeds 80 columns #100: 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 #105: FILE: net/quic/packet.c:27: + { QUIC_VERSION_V1, QUIC_VERSION_V2, QUIC_VERSION_V1, 0 }, WARNING: line length of 84 exceeds 80 columns #106: FILE: net/quic/packet.c:28: + { QUIC_VERSION_V2, QUIC_VERSION_V2, QUIC_VERSION_V1, 0 }, WARNING: line length of 93 exceeds 80 columns #141: 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 #142: 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 #172: 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 #175: 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 #179: 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 #188: 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 #189: 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 #216: 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 #262: 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 #272: 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 #279: 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 #308: 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 #311: FILE: net/quic/packet.c:233: + if (!test_and_set_bit(QUIC_MTU_REDUCED_DEFERRED, &sk->sk_tsq_flags)) WARNING: line length of 83 exceeds 80 columns #334: FILE: net/quic/packet.c:256: + if (skb_queue_len_lockless(&qn->backlog_list) >= QUIC_PACKET_BACKLOG_MAX) { WARNING: line length of 92 exceeds 80 columns #375: FILE: net/quic/packet.c:297: + * Parses the TLS ClientHello handshake message to find the ALPN (Application Layer Protocol WARNING: line length of 93 exceeds 80 columns #376: FILE: net/quic/packet.c:298: + * Negotiation) TLS extension. It validates the TLS ClientHello structure, including version, WARNING: line length of 88 exceeds 80 columns #377: FILE: net/quic/packet.c:299: + * random, session ID, cipher suites, compression methods, and extensions. Once the ALPN WARNING: line length of 82 exceeds 80 columns #380: FILE: net/quic/packet.c:302: + * Return: 0 on success or no ALPN found, a negative error code on failed parsing. WARNING: line length of 85 exceeds 80 columns #393: FILE: net/quic/packet.c:315: + if (len > (u32)length) /* Limit len to handshake message length if larger. */ WARNING: line length of 92 exceeds 80 columns #414: FILE: net/quic/packet.c:336: + if (!quic_get_int(&p, &len, &length, 2)) /* Read TLS extensions length (2 bytes). */ WARNING: line length of 89 exceeds 80 columns #418: FILE: net/quic/packet.c:340: + while (len > 4) { /* Iterate over extensions to find ALPN (type TLS_EXT_alpn). */ WARNING: line length of 90 exceeds 80 columns #434: FILE: net/quic/packet.c:356: + if (!found) { /* no ALPN extension found: set alpn->len = 0 and alpn->data = p. */ WARNING: line length of 82 exceeds 80 columns #442: FILE: net/quic/packet.c:364: + quic_data(alpn, p, length); /* Store ALPN protocols list in alpn->data. */ WARNING: line length of 92 exceeds 80 columns #446: FILE: net/quic/packet.c:368: + /* Malformed ALPN entry: set alpn->len = 0 and alpn->data = NULL. */ WARNING: line length of 93 exceeds 80 columns #459: FILE: net/quic/packet.c:381: + * This function processes a QUIC Initial packet to extract the ALPN from the TLS ClientHello WARNING: line length of 88 exceeds 80 columns #460: FILE: net/quic/packet.c:382: + * message inside the QUIC CRYPTO frame. It verifies packet type, version compatibility, WARNING: line length of 90 exceeds 80 columns #461: FILE: net/quic/packet.c:383: + * decrypts the packet payload, and locates the CRYPTO frame to parse the TLS ClientHello. WARNING: line length of 82 exceeds 80 columns #464: FILE: net/quic/packet.c:386: + * Return: 0 on success or no ALPN found, a negative error code on failed parsing. WARNING: line length of 81 exceeds 80 columns #480: FILE: net/quic/packet.c:402: + if (quic_packet_get_version_and_connid(&dcid, &scid, &version, &p, &len)) WARNING: line length of 82 exceeds 80 columns #539: FILE: net/quic/packet.c:461: +/* Extract the Destination Connection ID (DCID) from a QUIC Long header packet. */ WARNING: line length of 87 exceeds 80 columns #594: FILE: net/quic/packet.c:516: + * (Currently, only source CIDs of size QUIC_CONN_ID_DEF_LEN are used). WARNING: line length of 88 exceeds 80 columns #600: FILE: net/quic/packet.c:522: + return quic_conn_id_sk(conn_id); /* Return associated socket. */ WARNING: line length of 99 exceeds 80 columns #747: FILE: net/quic/packet.c:669: + /* Free all frames for now, and future patches will implement the actual creation logic. */ WARNING: line length of 99 exceeds 80 columns #765: FILE: net/quic/packet.c:687: + /* Free all frames for now, and future patches will implement the actual creation logic. */ WARNING: line length of 90 exceeds 80 columns #783: FILE: net/quic/packet.c:705: +/* Perform routing for the QUIC packet on the specified path, update header length and MSS WARNING: line length of 86 exceeds 80 columns #810: FILE: net/quic/packet.c:732: +/* Configure the QUIC packet header and routing based on encryption level and path. */ WARNING: line length of 81 exceeds 80 columns #813: FILE: net/quic/packet.c:735: + struct quic_conn_id_set *dest = quic_dest(sk), *source = quic_source(sk); WARNING: line length of 94 exceeds 80 columns #831: FILE: net/quic/packet.c:753: + hlen += 1 + quic_conn_id_active(source)->len; /* Length byte + SCID length. */ WARNING: line length of 90 exceeds 80 columns #832: FILE: net/quic/packet.c:754: + if (level == QUIC_CRYPTO_INITIAL) /* Include token for Initial packets. */ WARNING: line length of 88 exceeds 80 columns #833: FILE: net/quic/packet.c:755: + hlen += quic_var_len(quic_token(sk)->len) + quic_token(sk)->len; WARNING: line length of 81 exceeds 80 columns #835: FILE: net/quic/packet.c:757: + hlen += QUIC_PACKET_LENGTH_LEN; /* Packet length field length. */ WARNING: line length of 92 exceeds 80 columns #836: FILE: net/quic/packet.c:758: + /* Allow fragmentation if PLPMTUD is enabled, as it no longer relies on ICMP WARNING: line length of 94 exceeds 80 columns #845: FILE: net/quic/packet.c:767: + if (packet->path != path) { /* If the path changed, update and reset routing cache. */ WARNING: line length of 100 exceeds 80 columns #858: FILE: net/quic/packet.c:780: + /* Free it for now, future patches will implement the actual deferred transmission logic. */ WARNING: line length of 92 exceeds 80 columns #897: FILE: net/quic/packet.c:819: + * Packets with a short header (Section 17.3) do not contain a Length field and so WARNING: line length of 93 exceeds 80 columns #918: FILE: net/quic/packet.c:840: + /* Associate skb with sk to ensure sk is valid during async encryption completion. */ WARNING: line length of 82 exceeds 80 columns #978: FILE: net/quic/packet.c:900: + quic_path_daddr(paths, packet->path), &paths->fl); WARNING: line length of 88 exceeds 80 columns #989: FILE: net/quic/packet.c:911: + /* Reject frame if it doesn't match the packet's encryption level or path, or if WARNING: line length of 88 exceeds 80 columns #996: FILE: net/quic/packet.c:918: + /* Check if frame would exceed the current datagram MSS (excluding AEAD tag). */ WARNING: line length of 82 exceeds 80 columns #999: FILE: net/quic/packet.c:921: + /* If some data has already been added to the packet, bail out. */ WARNING: line length of 99 exceeds 80 columns #1002: FILE: net/quic/packet.c:924: + /* Otherwise, allow IP fragmentation for this packet unless it’s a PING probe. */ WARNING: line length of 98 exceeds 80 columns #1009: FILE: net/quic/packet.c:931: + /* Track frames that require retransmission if lost (i.e., ACK-eliciting and non-PING). */ WARNING: line length of 85 exceeds 80 columns #1052: 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 #1053: 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 #1055: FILE: net/quic/packet.h:15: + union quic_addr saddr; /* Source address from received packet */ WARNING: line length of 89 exceeds 80 columns #1057: 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 #1058: 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 #1059: 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 #1061: FILE: net/quic/packet.h:21: + u32 version; /* QUIC version used/selected during handshake */ WARNING: line length of 82 exceeds 80 columns #1062: FILE: net/quic/packet.h:22: + u8 errframe; /* Frame type causing packet processing failure */ WARNING: line length of 83 exceeds 80 columns #1065: FILE: net/quic/packet.h:25: + u16 frames; /* Number of ack-eliciting frames excluding PING */ WARNING: line length of 85 exceeds 80 columns #1068: FILE: net/quic/packet.h:28: + u16 len; /* QUIC packet length excluding taglen for sending */ WARNING: line length of 82 exceeds 80 columns #1070: 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 #1071: FILE: net/quic/packet.h:31: + u8 ack_requested:1; /* Packet contains ack-eliciting frames received */ WARNING: line length of 81 exceeds 80 columns #1072: 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 #1073: 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 #1091: 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 #1128: FILE: net/quic/packet.h:88: + return packet->mss[0] - packet->overhead - packet->taglen[!!packet->level]; WARNING: line length of 83 exceeds 80 columns #1133: FILE: net/quic/packet.h:93: + return packet->mss[1] - packet->overhead - packet->taglen[!!packet->level]; WARNING: line length of 94 exceeds 80 columns #1213: FILE: net/quic/protocol.h:56: + struct work_struct work; /* Work scheduled to drain and process backlog_list */ WARNING: line length of 93 exceeds 80 columns #1227: FILE: net/quic/socket.c:29: + * This function searches the established (non-listening) QUIC socket table for a socket that WARNING: line length of 92 exceeds 80 columns #1228: FILE: net/quic/socket.c:30: + * matches the source and dest addresses and, optionally, the dest connection ID (DCID). The WARNING: line length of 92 exceeds 80 columns #1229: FILE: net/quic/socket.c:31: + * value returned by quic_path_orig_dcid() might be the original dest connection ID from the WARNING: line length of 93 exceeds 80 columns #1232: FILE: net/quic/socket.c:34: + * The DCID is provided from a handshake packet when searching by source connection ID fails, WARNING: line length of 85 exceeds 80 columns #1233: FILE: net/quic/socket.c:35: + * such as when the peer has not yet received server's response and updated the DCID. WARNING: line length of 84 exceeds 80 columns #1235: FILE: net/quic/socket.c:37: + * Return: A pointer to the matching connected socket, or NULL if no match is found. WARNING: line length of 92 exceeds 80 columns #1237: FILE: net/quic/socket.c:39: +struct sock *quic_sock_lookup(struct sk_buff *skb, union quic_addr *sa, union quic_addr *da, WARNING: line length of 85 exceeds 80 columns #1254: 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 #1266: FILE: net/quic/socket.c:68: + * This function searches the QUIC socket table for a listening socket that matches the dest WARNING: line length of 92 exceeds 80 columns #1267: FILE: net/quic/socket.c:69: + * address and port, and the ALPN(s) if presented in the ClientHello. If multiple listening WARNING: line length of 90 exceeds 80 columns #1268: FILE: net/quic/socket.c:70: + * 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 #1271: FILE: net/quic/socket.c:73: + * Return: A pointer to the matching listening socket, or NULL if no match is found. WARNING: line length of 99 exceeds 80 columns #1273: FILE: net/quic/socket.c:75: +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 #1288: FILE: net/quic/socket.c:90: + if (!alpns->len) { /* No ALPN entries present or failed to parse the ALPNs. */ WARNING: line length of 95 exceeds 80 columns #1290: FILE: net/quic/socket.c:92: + /* If alpns->data != NULL, TLS parsing succeeded but no ALPN was found. WARNING: line length of 82 exceeds 80 columns #1291: FILE: net/quic/socket.c:93: + * In this case, only match sockets that have no ALPN set. WARNING: line length of 83 exceeds 80 columns #1294: FILE: net/quic/socket.c:96: + if (net == sock_net(tmp) && quic_cmp_sk_addr(tmp, a, sa) && WARNING: line length of 94 exceeds 80 columns #1298: FILE: net/quic/socket.c:100: + if (!quic_is_any_addr(a)) /* Prefer specific address match. */ WARNING: line length of 82 exceeds 80 columns #1306: FILE: net/quic/socket.c:108: + for (p = alpns->data, len = alpns->len; len; len -= length, p += length) { WARNING: line length of 83 exceeds 80 columns #1311: FILE: net/quic/socket.c:113: + if (net == sock_net(tmp) && quic_cmp_sk_addr(tmp, a, sa) && WARNING: line length of 99 exceeds 80 columns #1407: FILE: net/quic/socket.h:211: +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 #1409: FILE: net/quic/socket.h:213: +struct sock *quic_sock_lookup(struct sk_buff *skb, union quic_addr *sa, union quic_addr *da, total: 0 errors, 96 warnings, 0 checks, 1302 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 50d10bc0b6e8 ("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, 96 warnings, 0 checks, 1302 lines checked