TrafficControl Class — netty Architecture
Architecture documentation for the TrafficControl class in TrafficControl.java from the netty codebase.
Entity Profile
Dependency Diagram
graph TD 795b1031_a0d2_a2ba_68c6_7259fb499d83["TrafficControl"] 8d0fcd48_f1f1_ba4b_7278_eea1f73c73a3["TrafficControl.java"] 795b1031_a0d2_a2ba_68c6_7259fb499d83 -->|defined in| 8d0fcd48_f1f1_ba4b_7278_eea1f73c73a3 02fe0bb1_26c1_e9e1_737a_2186480cfbbd["TrafficControl()"] 795b1031_a0d2_a2ba_68c6_7259fb499d83 -->|method| 02fe0bb1_26c1_e9e1_737a_2186480cfbbd 08762b1b_354b_c7f4_9219_8adff8ff4475["isAvailable()"] 795b1031_a0d2_a2ba_68c6_7259fb499d83 -->|method| 08762b1b_354b_c7f4_9219_8adff8ff4475 8974480f_0e74_4ac7_eab7_2b2e4ca97cee["delay()"] 795b1031_a0d2_a2ba_68c6_7259fb499d83 -->|method| 8974480f_0e74_4ac7_eab7_2b2e4ca97cee
Relationship Graph
Source Code
transport-udt/src/test/java/io/netty/test/udt/util/TrafficControl.java lines 31–79
public final class TrafficControl {
private static final InternalLogger log = InternalLoggerFactory.getInstance(TrafficControl.class);
private TrafficControl() {
}
private static final String TC_DELAY = "sudo tc qdisc add dev %s root netem delay %sms limit %s";
private static final String TC_RESET = "sudo tc qdisc del dev %s root";
/**
* verify if traffic control is available
*/
public static boolean isAvailable() {
try {
final int millis = 100;
final int margin = 20;
delay(0);
final long time1 = UnitHelp.ping("localhost");
delay(millis);
final long time2 = UnitHelp.ping("localhost");
delay(0);
final long time3 = UnitHelp.ping("localhost");
return time2 >= time1 + millis - margin
&& time2 >= time3 + millis - margin;
} catch (final Throwable e) {
log.debug("", e);
return false;
}
}
/**
* Introduce round-trip delay on local host
* @param time - delay in milliseconds; use zero to remove delay.
*/
public static void delay(final int time) throws Exception {
checkPositiveOrZero(time, "time");
final int delay = time / 2;
if (delay == 0) {
UnitHelp.process(String.format(TC_RESET, "lo"));
} else {
/** extend packet buffer queue to avoid packet loss due to latency */
final int limit = 1024 * 1024;
UnitHelp.process(String.format(TC_RESET, "lo"));
UnitHelp.process(String.format(TC_DELAY, "lo", delay, limit));
}
}
}
Source
Frequently Asked Questions
What is the TrafficControl class?
TrafficControl is a class in the netty codebase, defined in transport-udt/src/test/java/io/netty/test/udt/util/TrafficControl.java.
Where is TrafficControl defined?
TrafficControl is defined in transport-udt/src/test/java/io/netty/test/udt/util/TrafficControl.java at line 31.
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free