LCOV - code coverage report
Current view: top level - mptcp/bpf.c (source / functions) Coverage Total Hit
Test: export-net Lines: 100.0 % 5 5
Test Date: 2024-11-27 06:48:25 Functions: 100.0 % 2 2
Legend: Lines: hit not hit | Branches: + taken - not taken # not executed Branches: 80.0 % 10 8

             Branch data     Line data    Source code
       1                 :             : // SPDX-License-Identifier: GPL-2.0
       2                 :             : /* Multipath TCP
       3                 :             :  *
       4                 :             :  * Copyright (c) 2020, Tessares SA.
       5                 :             :  * Copyright (c) 2022, SUSE.
       6                 :             :  *
       7                 :             :  * Author: Nicolas Rybowski <nicolas.rybowski@tessares.net>
       8                 :             :  */
       9                 :             : 
      10                 :             : #define pr_fmt(fmt) "MPTCP: " fmt
      11                 :             : 
      12                 :             : #include <linux/bpf.h>
      13                 :             : #include "protocol.h"
      14                 :             : 
      15                 :          18 : struct mptcp_sock *bpf_mptcp_sock_from_subflow(struct sock *sk)
      16                 :             : {
      17   [ +  -  +  +  :          27 :         if (sk && sk_fullsock(sk) && sk->sk_protocol == IPPROTO_TCP && sk_is_mptcp(sk))
             +  +  +  + ]
      18         [ -  + ]:          18 :                 return mptcp_sk(mptcp_subflow_ctx(sk)->conn);
      19                 :             : 
      20                 :             :         return NULL;
      21                 :             : }
      22                 :             : 
      23                 :             : BTF_SET8_START(bpf_mptcp_fmodret_ids)
      24                 :             : BTF_ID_FLAGS(func, update_socket_protocol)
      25                 :             : BTF_SET8_END(bpf_mptcp_fmodret_ids)
      26                 :             : 
      27                 :             : static const struct btf_kfunc_id_set bpf_mptcp_fmodret_set = {
      28                 :             :         .owner = THIS_MODULE,
      29                 :             :         .set   = &bpf_mptcp_fmodret_ids,
      30                 :             : };
      31                 :             : 
      32                 :           4 : static int __init bpf_mptcp_kfunc_init(void)
      33                 :             : {
      34                 :           4 :         return register_btf_fmodret_id_set(&bpf_mptcp_fmodret_set);
      35                 :             : }
      36                 :             : late_initcall(bpf_mptcp_kfunc_init);
        

Generated by: LCOV version 2.0-1