1187d0738Sbrakmo /* SPDX-License-Identifier: GPL-2.0 2187d0738Sbrakmo * 3187d0738Sbrakmo * Copyright (c) 2019 Facebook 4187d0738Sbrakmo * 5187d0738Sbrakmo * This program is free software; you can redistribute it and/or 6187d0738Sbrakmo * modify it under the terms of version 2 of the GNU General Public 7187d0738Sbrakmo * License as published by the Free Software Foundation. 8187d0738Sbrakmo * 9187d0738Sbrakmo * Include file for Host Bandwidth Management (HBM) programs 10187d0738Sbrakmo */ 11187d0738Sbrakmo struct hbm_vqueue { 12187d0738Sbrakmo struct bpf_spin_lock lock; 13187d0738Sbrakmo /* 4 byte hole */ 14187d0738Sbrakmo unsigned long long lasttime; /* In ns */ 15187d0738Sbrakmo int credit; /* In bytes */ 16187d0738Sbrakmo unsigned int rate; /* In bytes per NS << 20 */ 17187d0738Sbrakmo }; 18187d0738Sbrakmo 19187d0738Sbrakmo struct hbm_queue_stats { 20187d0738Sbrakmo unsigned long rate; /* in Mbps*/ 21187d0738Sbrakmo unsigned long stats:1, /* get HBM stats (marked, dropped,..) */ 22ffd81558Sbrakmo loopback:1, /* also limit flows using loopback */ 23ffd81558Sbrakmo no_cn:1; /* do not use cn flags */ 24187d0738Sbrakmo unsigned long long pkts_marked; 25187d0738Sbrakmo unsigned long long bytes_marked; 26187d0738Sbrakmo unsigned long long pkts_dropped; 27187d0738Sbrakmo unsigned long long bytes_dropped; 28187d0738Sbrakmo unsigned long long pkts_total; 29187d0738Sbrakmo unsigned long long bytes_total; 30187d0738Sbrakmo unsigned long long firstPacketTime; 31187d0738Sbrakmo unsigned long long lastPacketTime; 32*d58c6f72Sbrakmo unsigned long long pkts_ecn_ce; 33*d58c6f72Sbrakmo unsigned long long returnValCount[4]; 34*d58c6f72Sbrakmo unsigned long long sum_cwnd; 35*d58c6f72Sbrakmo unsigned long long sum_rtt; 36*d58c6f72Sbrakmo unsigned long long sum_cwnd_cnt; 37*d58c6f72Sbrakmo long long sum_credit; 38187d0738Sbrakmo }; 39