diff options
author | Florin Coras <fcoras@cisco.com> | 2020-03-18 20:31:34 +0000 |
---|---|---|
committer | Dave Barach <openvpp@barachs.net> | 2020-04-02 15:10:26 +0000 |
commit | 999840cf805f26a490e8e6b8acc1fe7a7c21a181 (patch) | |
tree | a077add2979502f634450241735b1f6c11fd2283 /src/vnet/tcp/tcp_bt.h | |
parent | a26f54421ae61b1a42c2ff69d3037c428aa238f4 (diff) |
tcp: move features to separate files
Type: refactor
Signed-off-by: Florin Coras <fcoras@cisco.com>
Change-Id: Ia477b8dba9266f47907967e363c11048e5cd95ab
Diffstat (limited to 'src/vnet/tcp/tcp_bt.h')
-rw-r--r-- | src/vnet/tcp/tcp_bt.h | 91 |
1 files changed, 91 insertions, 0 deletions
diff --git a/src/vnet/tcp/tcp_bt.h b/src/vnet/tcp/tcp_bt.h new file mode 100644 index 00000000000..b9d0e571a5d --- /dev/null +++ b/src/vnet/tcp/tcp_bt.h @@ -0,0 +1,91 @@ +/* + * Copyright (c) 2020 Cisco and/or its affiliates. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at: + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +/* + * Rate estimation + */ + +#ifndef SRC_VNET_TCP_TCP_BT_H_ +#define SRC_VNET_TCP_TCP_BT_H_ + +#include <vnet/tcp/tcp_types.h> + +/** + * Byte tracker initialize + * + * @param tc connection for which the byte tracker should be allocated and + * initialized + */ +void tcp_bt_init (tcp_connection_t * tc); +/** + * Byte tracker cleanup + * + * @param tc connection for which the byte tracker should be cleaned up + */ +void tcp_bt_cleanup (tcp_connection_t * tc); +/** + * Flush byte tracker samples + * + * @param tc tcp connection for which samples should be flushed + */ +void tcp_bt_flush_samples (tcp_connection_t * tc); +/** + * Track a tcp tx burst + * + * @param tc tcp connection + */ +void tcp_bt_track_tx (tcp_connection_t * tc, u32 len); +/** + * Track a tcp retransmission + * + * @param tc tcp connection + * @param start start sequence number + * @param end end sequence number + */ +void tcp_bt_track_rxt (tcp_connection_t * tc, u32 start, u32 end); +/** + * Generate a delivery rate sample from recently acked bytes + * + * @param tc tcp connection + * @param rs resulting rate sample + */ +void tcp_bt_sample_delivery_rate (tcp_connection_t * tc, + tcp_rate_sample_t * rs); +/** + * Check if sample to be generated is app limited + * + * @param tc tcp connection + */ +void tcp_bt_check_app_limited (tcp_connection_t * tc); +/** + * Check if the byte tracker is in sane state + * + * Should be used only for testing + * + * @param bt byte tracker + */ +int tcp_bt_is_sane (tcp_byte_tracker_t * bt); + +format_function_t format_tcp_bt; + +#endif /* SRC_VNET_TCP_TCP_BT_H_ */ + +/* + * fd.io coding-style-patch-verification: ON + * + * Local Variables: + * eval: (c-set-style "gnu") + * End: + */ |