| /* SPDX-License-Identifier: GPL-2.0 | |
| * | |
| * Copyright (c) 2019 Facebook | |
| * | |
| * This program is free software; you can redistribute it and/or | |
| * modify it under the terms of version 2 of the GNU General Public | |
| * License as published by the Free Software Foundation. | |
| * | |
| * Include file for Host Bandwidth Management (HBM) programs | |
| */ | |
| struct hbm_vqueue { | |
| struct bpf_spin_lock lock; | |
| /* 4 byte hole */ | |
| unsigned long long lasttime; /* In ns */ | |
| int credit; /* In bytes */ | |
| unsigned int rate; /* In bytes per NS << 20 */ | |
| }; | |
| struct hbm_queue_stats { | |
| unsigned long rate; /* in Mbps*/ | |
| unsigned long stats:1, /* get HBM stats (marked, dropped,..) */ | |
| loopback:1, /* also limit flows using loopback */ | |
| no_cn:1; /* do not use cn flags */ | |
| unsigned long long pkts_marked; | |
| unsigned long long bytes_marked; | |
| unsigned long long pkts_dropped; | |
| unsigned long long bytes_dropped; | |
| unsigned long long pkts_total; | |
| unsigned long long bytes_total; | |
| unsigned long long firstPacketTime; | |
| unsigned long long lastPacketTime; | |
| unsigned long long pkts_ecn_ce; | |
| unsigned long long returnValCount[4]; | |
| unsigned long long sum_cwnd; | |
| unsigned long long sum_rtt; | |
| unsigned long long sum_cwnd_cnt; | |
| long long sum_credit; | |
| }; |