xref: /openssl/ssl/quic/cc_dummy.c (revision fa4e92a7)
1 /*
2  * Copyright 2022 The OpenSSL Project Authors. All Rights Reserved.
3  *
4  * Licensed under the Apache License 2.0 (the "License").  You may not use
5  * this file except in compliance with the License.  You can obtain a copy
6  * in the file LICENSE in the source distribution or at
7  * https://www.openssl.org/source/license.html
8  */
9 
10 #include "internal/quic_cc.h"
11 
12 typedef struct ossl_cc_dummy_st {
13     char dummy;
14 } OSSL_CC_DUMMY;
15 
dummy_new(OSSL_PARAM * settings,OSSL_PARAM * options,OSSL_PARAM * changeables)16 static OSSL_CC_DATA *dummy_new(OSSL_PARAM *settings, OSSL_PARAM *options,
17                                OSSL_PARAM *changeables)
18 {
19     return OPENSSL_zalloc(sizeof(OSSL_CC_DUMMY));
20 }
21 
dummy_free(OSSL_CC_DATA * cc)22 static void dummy_free(OSSL_CC_DATA *cc)
23 {
24     OPENSSL_free(cc);
25 }
26 
dummy_reset(OSSL_CC_DATA * cc,int flags)27 static void dummy_reset(OSSL_CC_DATA *cc, int flags)
28 {
29 
30 }
31 
dummy_set_exemption(OSSL_CC_DATA * cc,int numpackets)32 static int dummy_set_exemption(OSSL_CC_DATA *cc, int numpackets)
33 {
34     return 1;
35 }
36 
dummy_get_exemption(OSSL_CC_DATA * cc)37 static int dummy_get_exemption(OSSL_CC_DATA *cc)
38 {
39     return 0;
40 }
41 
dummy_can_send(OSSL_CC_DATA * cc)42 static int dummy_can_send(OSSL_CC_DATA *cc)
43 {
44     return 1;
45 }
46 
dummy_get_send_allowance(OSSL_CC_DATA * cc,OSSL_TIME time_since_last_send,int time_valid)47 static size_t dummy_get_send_allowance(OSSL_CC_DATA *cc,
48                                        OSSL_TIME time_since_last_send,
49                                        int time_valid)
50 {
51     return SIZE_MAX;
52 }
53 
dummy_get_bytes_in_flight_max(OSSL_CC_DATA * cc)54 static size_t dummy_get_bytes_in_flight_max(OSSL_CC_DATA *cc)
55 {
56     return SIZE_MAX;
57 }
58 
dummy_on_data_sent(OSSL_CC_DATA * cc,size_t num_retransmittable_bytes)59 static int dummy_on_data_sent(OSSL_CC_DATA *cc, size_t num_retransmittable_bytes)
60 {
61     return 1;
62 }
63 
dummy_on_data_invalidated(OSSL_CC_DATA * cc,size_t num_retransmittable_bytes)64 static int dummy_on_data_invalidated(OSSL_CC_DATA *cc,
65                                      size_t num_retransmittable_bytes)
66 {
67     return 1;
68 }
69 
dummy_on_data_acked(OSSL_CC_DATA * cc,OSSL_TIME time_now,uint64_t last_pn_acked,size_t num_retransmittable_bytes)70 static int dummy_on_data_acked(OSSL_CC_DATA *cc, OSSL_TIME time_now,
71                                uint64_t last_pn_acked,
72                                size_t num_retransmittable_bytes)
73 {
74     return 1;
75 }
76 
dummy_on_data_lost(OSSL_CC_DATA * cc,uint64_t largest_pn_lost,uint64_t largest_pn_sent,size_t num_retransmittable_bytes,int persistent_congestion)77 static void dummy_on_data_lost(OSSL_CC_DATA *cc,
78                               uint64_t largest_pn_lost,
79                               uint64_t largest_pn_sent,
80                               size_t num_retransmittable_bytes,
81                               int persistent_congestion)
82 {
83 
84 }
85 
dummy_on_spurious_congestion_event(OSSL_CC_DATA * cc)86 static int dummy_on_spurious_congestion_event(OSSL_CC_DATA *cc)
87 {
88     return 1;
89 }
90 
91 const OSSL_CC_METHOD ossl_cc_dummy_method = {
92     NULL,
93     dummy_new,
94     dummy_free,
95     dummy_reset,
96     dummy_set_exemption,
97     dummy_get_exemption,
98     dummy_can_send,
99     dummy_get_send_allowance,
100     dummy_get_bytes_in_flight_max,
101     dummy_on_data_sent,
102     dummy_on_data_invalidated,
103     dummy_on_data_acked,
104     dummy_on_data_lost,
105     dummy_on_spurious_congestion_event,
106 };
107