WARNING: line length of 87 exceeds 80 columns #104: FILE: net/quic/path.c:29: + return 0; /* .encap_rcv must return 0 if skb was either consumed or dropped. */ WARNING: line length of 82 exceeds 80 columns #114: FILE: net/quic/path.c:39: + struct quic_udp_sock *us = container_of(work, struct quic_udp_sock, work); WARNING: line length of 81 exceeds 80 columns #118: FILE: net/quic/path.c:43: + /* Hold the sock to safely access it in quic_udp_sock_lookup() even after WARNING: line length of 81 exceeds 80 columns #119: FILE: net/quic/path.c:44: + * udp_tunnel_sock_release(). The release must occur before __hlist_del() WARNING: line length of 82 exceeds 80 columns #120: FILE: net/quic/path.c:45: + * so a new UDP tunnel socket can be created for the same address and port WARNING: line length of 82 exceeds 80 columns #123: FILE: net/quic/path.c:48: + * Note: udp_tunnel_sock_release() cannot be called under the mutex due to WARNING: line length of 86 exceeds 80 columns #138: FILE: net/quic/path.c:63: +static struct quic_udp_sock *quic_udp_sock_create(struct sock *sk, union quic_addr *a) WARNING: line length of 88 exceeds 80 columns #182: FILE: net/quic/path.c:107: + /* The UDP socket may be freed in atomic RX context during connection migration; WARNING: line length of 94 exceeds 80 columns #189: FILE: net/quic/path.c:114: +/* Lookup a quic_udp_sock in the global hash table by port or address. If 'a' is provided, it WARNING: line length of 95 exceeds 80 columns #190: FILE: net/quic/path.c:115: + * searches for a socket whose local address matches 'a' and, if applicable, matches the device WARNING: line length of 96 exceeds 80 columns #193: FILE: net/quic/path.c:118: +static struct quic_udp_sock *quic_udp_sock_lookup(struct sock *sk, union quic_addr *a, u16 port) WARNING: line length of 82 exceeds 80 columns #216: FILE: net/quic/path.c:141: +static void quic_path_set_udp_sk(struct quic_path *path, struct quic_udp_sock *us) WARNING: line length of 96 exceeds 80 columns #247: FILE: net/quic/path.c:172: + if (!quic_udp_sock_get(us)) { /* Releasing in workqueue; retry later. */ WARNING: line length of 89 exceeds 80 columns #300: FILE: net/quic/path.c:225: + * Promotes the alternate path (path[1]) to become the new active path (path[0]). If the WARNING: line length of 90 exceeds 80 columns #301: FILE: net/quic/path.c:226: + * alternate path has a valid UDP socket, the entire path is swapped. Otherwise, only the WARNING: line length of 93 exceeds 80 columns #302: FILE: net/quic/path.c:227: + * destination address is exchanged, assuming the source address is the same and no rebind is WARNING: line length of 87 exceeds 80 columns #326: FILE: net/quic/path.c:251: + * This is used for cleanup during error handling or when the path is no longer needed. WARNING: line length of 92 exceeds 80 columns #341: FILE: net/quic/path.c:266: + * If the new source or destination address differs from the active path, and alternate path WARNING: line length of 93 exceeds 80 columns #342: FILE: net/quic/path.c:267: + * detection is not disabled, the function updates the alternate path slot (path[1]) with the WARNING: line length of 93 exceeds 80 columns #345: FILE: net/quic/path.c:270: + * This is typically called on packet receive to detect new possible network paths (e.g., NAT WARNING: line length of 97 exceeds 80 columns #350: FILE: net/quic/path.c:275: +int quic_path_detect_alt(struct quic_path_group *paths, union quic_addr *sa, union quic_addr *da, WARNING: line length of 98 exceeds 80 columns #353: FILE: net/quic/path.c:278: + if ((!quic_cmp_sk_addr(sk, quic_path_saddr(paths, 0), sa) && !paths->disable_saddr_alt) || WARNING: line length of 98 exceeds 80 columns #354: FILE: net/quic/path.c:279: + (!quic_cmp_sk_addr(sk, quic_path_daddr(paths, 0), da) && !paths->disable_daddr_alt)) { WARNING: line length of 87 exceeds 80 columns #369: FILE: net/quic/path.c:294: +void quic_path_get_param(struct quic_path_group *paths, struct quic_transport_param *p) WARNING: line length of 87 exceeds 80 columns #378: FILE: net/quic/path.c:303: +void quic_path_set_param(struct quic_path_group *paths, struct quic_transport_param *p) WARNING: line length of 92 exceeds 80 columns #407: FILE: net/quic/path.c:332: + * Called immediately after sending a probe packet in QUIC Path MTU Discovery. Tracks probe WARNING: line length of 93 exceeds 80 columns #408: FILE: net/quic/path.c:333: + * count and manages state transitions based on the number of probes sent and current PLPMTUD WARNING: line length of 92 exceeds 80 columns #409: FILE: net/quic/path.c:334: + * state (BASE, SEARCH, COMPLETE, ERROR). Detects probe failures and black holes, adjusting WARNING: line length of 99 exceeds 80 columns #424: FILE: net/quic/path.c:349: + if (paths->pl.probe_size == QUIC_BASE_PLPMTU) { /* BASE_PLPMTU Confirming Failed */ WARNING: line length of 87 exceeds 80 columns #431: FILE: net/quic/path.c:356: + if (paths->pl.pmtu == paths->pl.probe_size) { /* Black Hole Detected */ WARNING: line length of 87 exceeds 80 columns #443: FILE: net/quic/path.c:368: + if (paths->pl.pmtu == paths->pl.probe_size) { /* Black Hole Detected */ WARNING: line length of 86 exceeds 80 columns #444: FILE: net/quic/path.c:369: + paths->pl.state = QUIC_PL_BASE; /* Search Complete -> Base */ WARNING: line length of 91 exceeds 80 columns #453: FILE: net/quic/path.c:378: + pr_debug("%s: dst: %p, state: %d, pmtu: %d, size: %d, high: %d\n", __func__, paths, WARNING: line length of 94 exceeds 80 columns #454: FILE: net/quic/path.c:379: + paths->pl.state, paths->pl.pmtu, paths->pl.probe_size, paths->pl.probe_high); WARNING: line length of 90 exceeds 80 columns #461: FILE: net/quic/path.c:386: + * Called when a probe packet is acknowledged. Updates probe size and transitions state if WARNING: line length of 86 exceeds 80 columns #462: FILE: net/quic/path.c:387: + * needed (e.g., from SEARCH to COMPLETE). Expands PMTU using binary or linear search WARNING: line length of 87 exceeds 80 columns #467: FILE: net/quic/path.c:392: +u32 quic_path_pl_recv(struct quic_path_group *paths, bool *raise_timer, bool *complete) WARNING: line length of 91 exceeds 80 columns #471: FILE: net/quic/path.c:396: + pr_debug("%s: dst: %p, state: %d, pmtu: %d, size: %d, high: %d\n", __func__, paths, WARNING: line length of 94 exceeds 80 columns #472: FILE: net/quic/path.c:397: + paths->pl.state, paths->pl.pmtu, paths->pl.probe_size, paths->pl.probe_high); WARNING: line length of 89 exceeds 80 columns #491: FILE: net/quic/path.c:416: + (u16)min(paths->pl.probe_size + QUIC_PL_BIG_STEP, WARNING: line length of 91 exceeds 80 columns #501: FILE: net/quic/path.c:426: + paths->pl.state = QUIC_PL_COMPLETE; /* Search -> Search Complete */ WARNING: line length of 83 exceeds 80 columns #508: FILE: net/quic/path.c:433: + /* Raise probe_size again after 30 * interval in Search Complete */ WARNING: line length of 81 exceeds 80 columns #509: FILE: net/quic/path.c:434: + paths->pl.state = QUIC_PL_SEARCH; /* Search Complete -> Search */ WARNING: line length of 88 exceeds 80 columns #510: FILE: net/quic/path.c:435: + paths->pl.probe_size = (u16)min(paths->pl.probe_size + QUIC_PL_MIN_STEP, WARNING: line length of 90 exceeds 80 columns #520: FILE: net/quic/path.c:445: + * Responds to an incoming ICMP error by reducing the probe size or falling back to a safe WARNING: line length of 89 exceeds 80 columns #521: FILE: net/quic/path.c:446: + * baseline PMTU depending on current state. Also handles cases where the PMTU hint lies WARNING: line length of 83 exceeds 80 columns #526: FILE: net/quic/path.c:451: +u32 quic_path_pl_toobig(struct quic_path_group *paths, u32 pmtu, bool *reset_timer) WARNING: line length of 90 exceeds 80 columns #530: FILE: net/quic/path.c:455: + pr_debug("%s: dst: %p, state: %d, pmtu: %d, size: %d, ptb: %d\n", __func__, paths, WARNING: line length of 92 exceeds 80 columns #553: FILE: net/quic/path.c:478: + } else if (pmtu > (u32)paths->pl.pmtu && pmtu < (u32)paths->pl.probe_size) { WARNING: line length of 92 exceeds 80 columns #574: FILE: net/quic/path.c:499: + * Resets all PLPMTUD-related state to its initial configuration. Called when a new path is WARNING: line length of 90 exceeds 80 columns #587: FILE: net/quic/path.c:512: + * Checks whether the last probe (tracked by .number) has been acknowledged. If the probe WARNING: line length of 83 exceeds 80 columns #592: FILE: net/quic/path.c:517: +bool quic_path_pl_confirm(struct quic_path_group *paths, s64 largest, s64 smallest) WARNING: line length of 95 exceeds 80 columns #594: FILE: net/quic/path.c:519: + return paths->pl.number && paths->pl.number >= smallest && paths->pl.number <= largest; WARNING: line length of 87 exceeds 80 columns #643: FILE: net/quic/path.h:42: + QUIC_PATH_ALT_NONE, /* No alternate path (migration complete or aborted) */ WARNING: line length of 85 exceeds 80 columns #644: FILE: net/quic/path.h:43: + QUIC_PATH_ALT_PENDING, /* Waiting for a new destination CID for migration */ WARNING: line length of 84 exceeds 80 columns #645: FILE: net/quic/path.h:44: + QUIC_PATH_ALT_PROBING, /* Validating the alternate path (PATH_CHALLENGE) */ WARNING: line length of 81 exceeds 80 columns #646: FILE: net/quic/path.h:45: + QUIC_PATH_ALT_SWAPPED, /* Alternate path is now active; roles swapped */ WARNING: line length of 84 exceeds 80 columns #650: FILE: net/quic/path.h:49: + struct work_struct work; /* Workqueue to destroy UDP tunnel socket */ WARNING: line length of 90 exceeds 80 columns #651: FILE: net/quic/path.h:50: + struct hlist_node node; /* Entry in address-based UDP socket hash table */ WARNING: line length of 92 exceeds 80 columns #652: FILE: net/quic/path.h:51: + union quic_addr addr; /* Source address of underlying UDP tunnel socket */ WARNING: line length of 93 exceeds 80 columns #662: FILE: net/quic/path.h:61: + struct quic_udp_sock *udp_sk; /* Wrapped UDP socket used to receive QUIC packets */ WARNING: line length of 93 exceeds 80 columns #663: FILE: net/quic/path.h:62: + /* Cached UDP tunnel socket and its source address for RCU-protected lookup/access */ WARNING: line length of 82 exceeds 80 columns #670: FILE: net/quic/path.h:69: + struct quic_conn_id retry_dcid; /* Source CID from Retry packet */ WARNING: line length of 88 exceeds 80 columns #671: FILE: net/quic/path.h:70: + struct quic_conn_id orig_dcid; /* Destination CID from first Initial */ WARNING: line length of 92 exceeds 80 columns #675: FILE: net/quic/path.h:74: + struct quic_path path[2]; /* Active path (0) and alternate path (1) */ WARNING: line length of 86 exceeds 80 columns #676: FILE: net/quic/path.h:75: + struct flowi fl; /* Flow info from routing decisions */ WARNING: line length of 82 exceeds 80 columns #683: FILE: net/quic/path.h:82: + u32 mtu_info; /* PMTU value from received ICMP, pending apply */ WARNING: line length of 92 exceeds 80 columns #700: FILE: net/quic/path.h:99: + u8 disable_saddr_alt:1; /* Remote disable_active_migration (rfc9000#section-18.2) */ WARNING: line length of 91 exceeds 80 columns #701: FILE: net/quic/path.h:100: + u8 disable_daddr_alt:1; /* Local disable_active_migration (rfc9000#section-18.2) */ WARNING: line length of 86 exceeds 80 columns #702: FILE: net/quic/path.h:101: + u8 pref_addr:1; /* Preferred address offered (rfc9000#section-18.2) */ WARNING: line length of 90 exceeds 80 columns #704: FILE: net/quic/path.h:103: + u8 alt_state; /* State for alternate path migration logic (see above) */ WARNING: line length of 86 exceeds 80 columns #707: FILE: net/quic/path.h:106: +static inline union quic_addr *quic_path_saddr(struct quic_path_group *paths, u8 path) WARNING: line length of 86 exceeds 80 columns #718: FILE: net/quic/path.h:117: +static inline union quic_addr *quic_path_daddr(struct quic_path_group *paths, u8 path) WARNING: line length of 86 exceeds 80 columns #729: FILE: net/quic/path.h:128: +static inline union quic_addr *quic_path_uaddr(struct quic_path_group *paths, u8 path) WARNING: line length of 82 exceeds 80 columns #734: FILE: net/quic/path.h:133: +static inline struct sock *quic_path_usock(struct quic_path_group *paths, u8 path) WARNING: line length of 83 exceeds 80 columns #744: FILE: net/quic/path.h:143: +static inline void quic_path_set_alt_state(struct quic_path_group *paths, u8 state) WARNING: line length of 84 exceeds 80 columns #749: FILE: net/quic/path.h:148: +/* Returns the destination Connection ID (DCID) used for identifying the connection. WARNING: line length of 88 exceeds 80 columns #750: FILE: net/quic/path.h:149: + * Per rfc9000#section-7.3, handshake packets are considered part of the same connection WARNING: line length of 85 exceeds 80 columns #753: FILE: net/quic/path.h:152: +static inline struct quic_conn_id *quic_path_orig_dcid(struct quic_path_group *paths) WARNING: line length of 97 exceeds 80 columns #758: FILE: net/quic/path.h:157: +int quic_path_detect_alt(struct quic_path_group *paths, union quic_addr *sa, union quic_addr *da, WARNING: line length of 88 exceeds 80 columns #764: FILE: net/quic/path.h:163: +u32 quic_path_pl_recv(struct quic_path_group *paths, bool *raise_timer, bool *complete); WARNING: line length of 84 exceeds 80 columns #765: FILE: net/quic/path.h:164: +u32 quic_path_pl_toobig(struct quic_path_group *paths, u32 pmtu, bool *reset_timer); WARNING: line length of 88 exceeds 80 columns #768: FILE: net/quic/path.h:167: +void quic_path_get_param(struct quic_path_group *paths, struct quic_transport_param *p); WARNING: line length of 88 exceeds 80 columns #769: FILE: net/quic/path.h:168: +void quic_path_set_param(struct quic_path_group *paths, struct quic_transport_param *p); WARNING: line length of 84 exceeds 80 columns #770: FILE: net/quic/path.h:169: +bool quic_path_pl_confirm(struct quic_path_group *paths, s64 largest, s64 smallest); total: 0 errors, 85 warnings, 0 checks, 764 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 21fc6678c0c9 ("quic: add path management") has style problems, please review. NOTE: Ignored message types: ALLOC_SIZEOF_STRUCT BAD_REPORTED_BY_LINK CAMELCASE COMMIT_LOG_LONG_LINE FILE_PATH_CHANGES 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, 85 warnings, 0 checks, 764 lines checked