libnl
3.2.3
|
00001 /* 00002 * netlink/route/sch/netem.h Network Emulator Qdisc 00003 * 00004 * This library is free software; you can redistribute it and/or 00005 * modify it under the terms of the GNU Lesser General Public 00006 * License as published by the Free Software Foundation version 2.1 00007 * of the License. 00008 * 00009 * Copyright (c) 2003-2006 Thomas Graf <tgraf@suug.ch> 00010 */ 00011 00012 #ifndef NETLINK_NETEM_H_ 00013 #define NETLINK_NETEM_H_ 00014 00015 #include <netlink/netlink.h> 00016 00017 #ifdef __cplusplus 00018 extern "C" { 00019 #endif 00020 00021 extern void rtnl_netem_set_limit(struct rtnl_qdisc *, int); 00022 extern int rtnl_netem_get_limit(struct rtnl_qdisc *); 00023 00024 /* Packet Re-ordering */ 00025 extern void rtnl_netem_set_gap(struct rtnl_qdisc *, int); 00026 extern int rtnl_netem_get_gap(struct rtnl_qdisc *); 00027 00028 extern void rtnl_netem_set_reorder_probability(struct rtnl_qdisc *, int); 00029 extern int rtnl_netem_get_reorder_probability(struct rtnl_qdisc *); 00030 00031 extern void rtnl_netem_set_reorder_correlation(struct rtnl_qdisc *, int); 00032 extern int rtnl_netem_get_reorder_correlation(struct rtnl_qdisc *); 00033 00034 /* Corruption */ 00035 extern void rtnl_netem_set_corruption_probability(struct rtnl_qdisc *, int); 00036 extern int rtnl_netem_get_corruption_probability(struct rtnl_qdisc *); 00037 00038 extern void rtnl_netem_set_corruption_correlation(struct rtnl_qdisc *, int); 00039 extern int rtnl_netem_get_corruption_correlation(struct rtnl_qdisc *); 00040 00041 /* Packet Loss */ 00042 extern void rtnl_netem_set_loss(struct rtnl_qdisc *, int); 00043 extern int rtnl_netem_get_loss(struct rtnl_qdisc *); 00044 00045 extern void rtnl_netem_set_loss_correlation(struct rtnl_qdisc *, int); 00046 extern int rtnl_netem_get_loss_correlation(struct rtnl_qdisc *); 00047 00048 /* Packet Duplication */ 00049 extern void rtnl_netem_set_duplicate(struct rtnl_qdisc *, int); 00050 extern int rtnl_netem_get_duplicate(struct rtnl_qdisc *); 00051 00052 extern void rtnl_netem_set_duplicate_correlation(struct rtnl_qdisc *, int); 00053 extern int rtnl_netem_get_duplicate_correlation(struct rtnl_qdisc *); 00054 00055 /* Packet Delay */ 00056 extern void rtnl_netem_set_delay(struct rtnl_qdisc *, int); 00057 extern int rtnl_netem_get_delay(struct rtnl_qdisc *); 00058 00059 extern void rtnl_netem_set_jitter(struct rtnl_qdisc *, int); 00060 extern int rtnl_netem_get_jitter(struct rtnl_qdisc *); 00061 00062 extern void rtnl_netem_set_delay_correlation(struct rtnl_qdisc *, int); 00063 extern int rtnl_netem_get_delay_correlation(struct rtnl_qdisc *); 00064 00065 /* Delay Distribution */ 00066 #define MAXDIST 65536 00067 extern int rtnl_netem_set_delay_distribution(struct rtnl_qdisc *, const char *); 00068 extern int rtnl_netem_get_delay_distribution_size(struct rtnl_qdisc *); 00069 extern int rtnl_netem_get_delay_distribution(struct rtnl_qdisc *, int16_t **); 00070 00071 #ifdef __cplusplus 00072 } 00073 #endif 00074 00075 #endif