bpf/tools: sync bpf.h
authorStanislav Fomichev <sdf@google.com>
Tue, 2 Jul 2019 16:14:00 +0000 (09:14 -0700)
committerDaniel Borkmann <daniel@iogearbox.net>
Wed, 3 Jul 2019 14:52:02 +0000 (16:52 +0200)
Sync new bpf_tcp_sock fields and new BPF_PROG_TYPE_SOCK_OPS RTT callback.

Cc: Eric Dumazet <edumazet@google.com>
Cc: Priyaranjan Jha <priyarjha@google.com>
Cc: Yuchung Cheng <ycheng@google.com>
Cc: Soheil Hassas Yeganeh <soheil@google.com>
Acked-by: Soheil Hassas Yeganeh <soheil@google.com>
Acked-by: Yuchung Cheng <ycheng@google.com>
Signed-off-by: Stanislav Fomichev <sdf@google.com>
Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
tools/include/uapi/linux/bpf.h

index a396b516a2b258bb5bd3f5f6fa41fd452001cef9..cecf42c871d46fc9a7cf1d0e0a6487e0afb5419e 100644 (file)
@@ -1767,6 +1767,7 @@ union bpf_attr {
  *             * **BPF_SOCK_OPS_RTO_CB_FLAG** (retransmission time out)
  *             * **BPF_SOCK_OPS_RETRANS_CB_FLAG** (retransmission)
  *             * **BPF_SOCK_OPS_STATE_CB_FLAG** (TCP state change)
+ *             * **BPF_SOCK_OPS_RTT_CB_FLAG** (every RTT)
  *
  *             Therefore, this function can be used to clear a callback flag by
  *             setting the appropriate bit to zero. e.g. to disable the RTO
@@ -3069,6 +3070,12 @@ struct bpf_tcp_sock {
                                 * sum(delta(snd_una)), or how many bytes
                                 * were acked.
                                 */
+       __u32 dsack_dups;       /* RFC4898 tcpEStatsStackDSACKDups
+                                * total number of DSACK blocks received
+                                */
+       __u32 delivered;        /* Total data packets delivered incl. rexmits */
+       __u32 delivered_ce;     /* Like the above but only ECE marked packets */
+       __u32 icsk_retransmits; /* Number of unrecovered [RTO] timeouts */
 };
 
 struct bpf_sock_tuple {
@@ -3311,7 +3318,8 @@ struct bpf_sock_ops {
 #define BPF_SOCK_OPS_RTO_CB_FLAG       (1<<0)
 #define BPF_SOCK_OPS_RETRANS_CB_FLAG   (1<<1)
 #define BPF_SOCK_OPS_STATE_CB_FLAG     (1<<2)
-#define BPF_SOCK_OPS_ALL_CB_FLAGS       0x7            /* Mask of all currently
+#define BPF_SOCK_OPS_RTT_CB_FLAG       (1<<3)
+#define BPF_SOCK_OPS_ALL_CB_FLAGS       0xF            /* Mask of all currently
                                                         * supported cb flags
                                                         */
 
@@ -3366,6 +3374,8 @@ enum {
        BPF_SOCK_OPS_TCP_LISTEN_CB,     /* Called on listen(2), right after
                                         * socket transition to LISTEN state.
                                         */
+       BPF_SOCK_OPS_RTT_CB,            /* Called on every RTT.
+                                        */
 };
 
 /* List of TCP states. There is a build check in net/ipv4/tcp.c to detect