Remove networking/libiproute/linux/pkt_sched.h
(and networking/libiproute/linux/ since it become empty). Style fixes.
This commit is contained in:
parent
a71199e0f0
commit
ace35eeb88
@ -163,7 +163,7 @@ int tail_main(int argc, char **argv)
|
||||
* starting file position may not be the beginning of the file.
|
||||
* Beware of backing up too far. See example in wc.c.
|
||||
*/
|
||||
if (!(count|from_top) && lseek(fds[i], 0, SEEK_END) >= 0) {
|
||||
if (!(count | from_top) && lseek(fds[i], 0, SEEK_END) >= 0) {
|
||||
continue;
|
||||
}
|
||||
|
||||
|
@ -35,7 +35,8 @@ void ip_parse_common_args(int *argcp, char ***argvp)
|
||||
char *opt = argv[1];
|
||||
|
||||
if (strcmp(opt,"--") == 0) {
|
||||
argc--; argv++;
|
||||
argc--;
|
||||
argv++;
|
||||
break;
|
||||
}
|
||||
|
||||
@ -69,7 +70,8 @@ void ip_parse_common_args(int *argcp, char ***argvp)
|
||||
} else {
|
||||
bb_show_usage();
|
||||
}
|
||||
argc--; argv++;
|
||||
argc--;
|
||||
argv++;
|
||||
}
|
||||
_SL_ = oneline ? "\\" : "\n" ;
|
||||
*argcp = argc;
|
||||
|
@ -409,46 +409,46 @@ static void print_tunnel(struct ip_tunnel_parm *p)
|
||||
if (p->iph.tos) {
|
||||
SPRINT_BUF(b1);
|
||||
printf(" tos");
|
||||
if (p->iph.tos&1)
|
||||
if (p->iph.tos & 1)
|
||||
printf(" inherit");
|
||||
if (p->iph.tos&~1)
|
||||
printf("%c%s ", p->iph.tos&1 ? '/' : ' ',
|
||||
rtnl_dsfield_n2a(p->iph.tos&~1, b1, sizeof(b1)));
|
||||
if (p->iph.tos & ~1)
|
||||
printf("%c%s ", p->iph.tos & 1 ? '/' : ' ',
|
||||
rtnl_dsfield_n2a(p->iph.tos & ~1, b1, sizeof(b1)));
|
||||
}
|
||||
if (!(p->iph.frag_off&htons(IP_DF)))
|
||||
if (!(p->iph.frag_off & htons(IP_DF)))
|
||||
printf(" nopmtudisc");
|
||||
|
||||
if ((p->i_flags&GRE_KEY) && (p->o_flags&GRE_KEY) && p->o_key == p->i_key)
|
||||
if ((p->i_flags & GRE_KEY) && (p->o_flags & GRE_KEY) && p->o_key == p->i_key)
|
||||
printf(" key %s", s3);
|
||||
else if ((p->i_flags|p->o_flags)&GRE_KEY) {
|
||||
if (p->i_flags&GRE_KEY)
|
||||
else if ((p->i_flags | p->o_flags) & GRE_KEY) {
|
||||
if (p->i_flags & GRE_KEY)
|
||||
printf(" ikey %s ", s3);
|
||||
if (p->o_flags&GRE_KEY)
|
||||
if (p->o_flags & GRE_KEY)
|
||||
printf(" okey %s ", s4);
|
||||
}
|
||||
|
||||
if (p->i_flags&GRE_SEQ)
|
||||
if (p->i_flags & GRE_SEQ)
|
||||
printf("%s Drop packets out of sequence.\n", _SL_);
|
||||
if (p->i_flags&GRE_CSUM)
|
||||
if (p->i_flags & GRE_CSUM)
|
||||
printf("%s Checksum in received packet is required.", _SL_);
|
||||
if (p->o_flags&GRE_SEQ)
|
||||
if (p->o_flags & GRE_SEQ)
|
||||
printf("%s Sequence packets on output.", _SL_);
|
||||
if (p->o_flags&GRE_CSUM)
|
||||
if (p->o_flags & GRE_CSUM)
|
||||
printf("%s Checksum output packets.", _SL_);
|
||||
}
|
||||
|
||||
static int do_tunnels_list(struct ip_tunnel_parm *p)
|
||||
{
|
||||
char name[IFNAMSIZ];
|
||||
unsigned long rx_bytes, rx_packets, rx_errs, rx_drops,
|
||||
rx_fifo, rx_frame,
|
||||
tx_bytes, tx_packets, tx_errs, tx_drops,
|
||||
tx_fifo, tx_colls, tx_carrier, rx_multi;
|
||||
unsigned long rx_bytes, rx_packets, rx_errs, rx_drops,
|
||||
rx_fifo, rx_frame,
|
||||
tx_bytes, tx_packets, tx_errs, tx_drops,
|
||||
tx_fifo, tx_colls, tx_carrier, rx_multi;
|
||||
int type;
|
||||
struct ip_tunnel_parm p1;
|
||||
|
||||
char buf[512];
|
||||
FILE *fp = fopen("/proc/net/dev", "r");
|
||||
|
||||
if (fp == NULL) {
|
||||
perror("fopen");
|
||||
return -1;
|
||||
@ -459,8 +459,10 @@ static int do_tunnels_list(struct ip_tunnel_parm *p)
|
||||
|
||||
while (fgets(buf, sizeof(buf), fp) != NULL) {
|
||||
char *ptr;
|
||||
buf[sizeof(buf) - 1] = 0;
|
||||
if ((ptr = strchr(buf, ':')) == NULL ||
|
||||
|
||||
/*buf[sizeof(buf) - 1] = 0; - fgets is safe anyway */
|
||||
ptr = strchr(buf, ':');
|
||||
if (ptr == NULL ||
|
||||
(*ptr++ = 0, sscanf(buf, "%s", name) != 1)) {
|
||||
bb_error_msg("wrong format of /proc/net/dev. Sorry");
|
||||
return -1;
|
||||
@ -541,6 +543,5 @@ int do_iptunnel(int argc, char **argv)
|
||||
} else
|
||||
return do_show(0, NULL);
|
||||
|
||||
bb_error_msg("command \"%s\" is unknown", *argv);
|
||||
exit(-1);
|
||||
bb_error_msg_and_die("command \"%s\" is unknown", *argv);
|
||||
}
|
||||
|
@ -1,409 +0,0 @@
|
||||
/* vi: set sw=4 ts=4: */
|
||||
#ifndef __LINUX_PKT_SCHED_H
|
||||
#define __LINUX_PKT_SCHED_H
|
||||
|
||||
/* Logical priority bands not depending on specific packet scheduler.
|
||||
Every scheduler will map them to real traffic classes, if it has
|
||||
no more precise mechanism to classify packets.
|
||||
|
||||
These numbers have no special meaning, though their coincidence
|
||||
with obsolete IPv6 values is not occasional :-). New IPv6 drafts
|
||||
preferred full anarchy inspired by diffserv group.
|
||||
|
||||
Note: TC_PRIO_BESTEFFORT does not mean that it is the most unhappy
|
||||
class, actually, as rule it will be handled with more care than
|
||||
filler or even bulk.
|
||||
*/
|
||||
|
||||
#define TC_PRIO_BESTEFFORT 0
|
||||
#define TC_PRIO_FILLER 1
|
||||
#define TC_PRIO_BULK 2
|
||||
#define TC_PRIO_INTERACTIVE_BULK 4
|
||||
#define TC_PRIO_INTERACTIVE 6
|
||||
#define TC_PRIO_CONTROL 7
|
||||
|
||||
#define TC_PRIO_MAX 15
|
||||
|
||||
/* Generic queue statistics, available for all the elements.
|
||||
Particular schedulers may have also their private records.
|
||||
*/
|
||||
|
||||
struct tc_stats
|
||||
{
|
||||
uint64_t bytes; /* Nnmber of enqueued bytes */
|
||||
uint32_t packets; /* Number of enqueued packets */
|
||||
uint32_t drops; /* Packets dropped because of lack of resources */
|
||||
uint32_t overlimits; /* Number of throttle events when this
|
||||
* flow goes out of allocated bandwidth */
|
||||
uint32_t bps; /* Current flow byte rate */
|
||||
uint32_t pps; /* Current flow packet rate */
|
||||
uint32_t qlen;
|
||||
uint32_t backlog;
|
||||
#ifdef __KERNEL__
|
||||
spinlock_t *lock;
|
||||
#endif
|
||||
};
|
||||
|
||||
struct tc_estimator
|
||||
{
|
||||
char interval;
|
||||
unsigned char ewma_log;
|
||||
};
|
||||
|
||||
/* "Handles"
|
||||
---------
|
||||
|
||||
All the traffic control objects have 32bit identifiers, or "handles".
|
||||
|
||||
They can be considered as opaque numbers from user API viewpoint,
|
||||
but actually they always consist of two fields: major and
|
||||
minor numbers, which are interpreted by kernel specially,
|
||||
that may be used by applications, though not recommended.
|
||||
|
||||
F.e. qdisc handles always have minor number equal to zero,
|
||||
classes (or flows) have major equal to parent qdisc major, and
|
||||
minor uniquely identifying class inside qdisc.
|
||||
|
||||
Macros to manipulate handles:
|
||||
*/
|
||||
|
||||
#define TC_H_MAJ_MASK (0xFFFF0000U)
|
||||
#define TC_H_MIN_MASK (0x0000FFFFU)
|
||||
#define TC_H_MAJ(h) ((h)&TC_H_MAJ_MASK)
|
||||
#define TC_H_MIN(h) ((h)&TC_H_MIN_MASK)
|
||||
#define TC_H_MAKE(maj,min) (((maj)&TC_H_MAJ_MASK)|((min)&TC_H_MIN_MASK))
|
||||
|
||||
#define TC_H_UNSPEC (0U)
|
||||
#define TC_H_ROOT (0xFFFFFFFFU)
|
||||
#define TC_H_INGRESS (0xFFFFFFF1U)
|
||||
|
||||
struct tc_ratespec
|
||||
{
|
||||
unsigned char cell_log;
|
||||
unsigned char __reserved;
|
||||
unsigned short feature;
|
||||
short addend;
|
||||
unsigned short mpu;
|
||||
uint32_t rate;
|
||||
};
|
||||
|
||||
/* FIFO section */
|
||||
|
||||
struct tc_fifo_qopt
|
||||
{
|
||||
uint32_t limit; /* Queue length: bytes for bfifo, packets for pfifo */
|
||||
};
|
||||
|
||||
/* PRIO section */
|
||||
|
||||
#define TCQ_PRIO_BANDS 16
|
||||
|
||||
struct tc_prio_qopt
|
||||
{
|
||||
int bands; /* Number of bands */
|
||||
uint8_t priomap[TC_PRIO_MAX+1]; /* Map: logical priority -> PRIO band */
|
||||
};
|
||||
|
||||
/* CSZ section */
|
||||
|
||||
struct tc_csz_qopt
|
||||
{
|
||||
int flows; /* Maximal number of guaranteed flows */
|
||||
unsigned char R_log; /* Fixed point position for round number */
|
||||
unsigned char delta_log; /* Log of maximal managed time interval */
|
||||
uint8_t priomap[TC_PRIO_MAX+1]; /* Map: logical priority -> CSZ band */
|
||||
};
|
||||
|
||||
struct tc_csz_copt
|
||||
{
|
||||
struct tc_ratespec slice;
|
||||
struct tc_ratespec rate;
|
||||
struct tc_ratespec peakrate;
|
||||
uint32_t limit;
|
||||
uint32_t buffer;
|
||||
uint32_t mtu;
|
||||
};
|
||||
|
||||
enum
|
||||
{
|
||||
TCA_CSZ_UNSPEC,
|
||||
TCA_CSZ_PARMS,
|
||||
TCA_CSZ_RTAB,
|
||||
TCA_CSZ_PTAB,
|
||||
};
|
||||
|
||||
/* TBF section */
|
||||
|
||||
struct tc_tbf_qopt
|
||||
{
|
||||
struct tc_ratespec rate;
|
||||
struct tc_ratespec peakrate;
|
||||
uint32_t limit;
|
||||
uint32_t buffer;
|
||||
uint32_t mtu;
|
||||
};
|
||||
|
||||
enum
|
||||
{
|
||||
TCA_TBF_UNSPEC,
|
||||
TCA_TBF_PARMS,
|
||||
TCA_TBF_RTAB,
|
||||
TCA_TBF_PTAB,
|
||||
};
|
||||
|
||||
|
||||
/* TEQL section */
|
||||
|
||||
/* TEQL does not require any parameters */
|
||||
|
||||
/* SFQ section */
|
||||
|
||||
struct tc_sfq_qopt
|
||||
{
|
||||
unsigned quantum; /* Bytes per round allocated to flow */
|
||||
int perturb_period; /* Period of hash perturbation */
|
||||
uint32_t limit; /* Maximal packets in queue */
|
||||
unsigned divisor; /* Hash divisor */
|
||||
unsigned flows; /* Maximal number of flows */
|
||||
};
|
||||
|
||||
/*
|
||||
* NOTE: limit, divisor and flows are hardwired to code at the moment.
|
||||
*
|
||||
* limit=flows=128, divisor=1024;
|
||||
*
|
||||
* The only reason for this is efficiency, it is possible
|
||||
* to change these parameters in compile time.
|
||||
*/
|
||||
|
||||
/* RED section */
|
||||
|
||||
enum
|
||||
{
|
||||
TCA_RED_UNSPEC,
|
||||
TCA_RED_PARMS,
|
||||
TCA_RED_STAB,
|
||||
};
|
||||
|
||||
struct tc_red_qopt
|
||||
{
|
||||
uint32_t limit; /* HARD maximal queue length (bytes) */
|
||||
uint32_t qth_min; /* Min average length threshold (bytes) */
|
||||
uint32_t qth_max; /* Max average length threshold (bytes) */
|
||||
unsigned char Wlog; /* log(W) */
|
||||
unsigned char Plog; /* log(P_max/(qth_max-qth_min)) */
|
||||
unsigned char Scell_log; /* cell size for idle damping */
|
||||
unsigned char flags;
|
||||
#define TC_RED_ECN 1
|
||||
};
|
||||
|
||||
struct tc_red_xstats
|
||||
{
|
||||
uint32_t early; /* Early drops */
|
||||
uint32_t pdrop; /* Drops due to queue limits */
|
||||
uint32_t other; /* Drops due to drop() calls */
|
||||
uint32_t marked; /* Marked packets */
|
||||
};
|
||||
|
||||
/* GRED section */
|
||||
|
||||
#define MAX_DPs 16
|
||||
|
||||
enum
|
||||
{
|
||||
TCA_GRED_UNSPEC,
|
||||
TCA_GRED_PARMS,
|
||||
TCA_GRED_STAB,
|
||||
TCA_GRED_DPS,
|
||||
};
|
||||
|
||||
#define TCA_SET_OFF TCA_GRED_PARMS
|
||||
struct tc_gred_qopt
|
||||
{
|
||||
uint32_t limit; /* HARD maximal queue length (bytes) */
|
||||
uint32_t qth_min; /* Min average length threshold (bytes) */
|
||||
uint32_t qth_max; /* Max average length threshold (bytes) */
|
||||
uint32_t DP; /* upto 2^32 DPs */
|
||||
uint32_t backlog;
|
||||
uint32_t qave;
|
||||
uint32_t forced;
|
||||
uint32_t early;
|
||||
uint32_t other;
|
||||
uint32_t pdrop;
|
||||
|
||||
unsigned char Wlog; /* log(W) */
|
||||
unsigned char Plog; /* log(P_max/(qth_max-qth_min)) */
|
||||
unsigned char Scell_log; /* cell size for idle damping */
|
||||
uint8_t prio; /* prio of this VQ */
|
||||
uint32_t packets;
|
||||
uint32_t bytesin;
|
||||
};
|
||||
/* gred setup */
|
||||
struct tc_gred_sopt
|
||||
{
|
||||
uint32_t DPs;
|
||||
uint32_t def_DP;
|
||||
uint8_t grio;
|
||||
};
|
||||
|
||||
/* HTB section */
|
||||
#define TC_HTB_NUMPRIO 4
|
||||
#define TC_HTB_MAXDEPTH 4
|
||||
|
||||
struct tc_htb_opt
|
||||
{
|
||||
struct tc_ratespec rate;
|
||||
struct tc_ratespec ceil;
|
||||
uint32_t buffer;
|
||||
uint32_t cbuffer;
|
||||
uint32_t quantum; /* out only */
|
||||
uint32_t level; /* out only */
|
||||
uint8_t prio;
|
||||
uint8_t injectd; /* inject class distance */
|
||||
uint8_t pad[2];
|
||||
};
|
||||
struct tc_htb_glob
|
||||
{
|
||||
uint32_t rate2quantum; /* bps->quantum divisor */
|
||||
uint32_t defcls; /* default class number */
|
||||
uint32_t use_dcache; /* use dequeue cache ? */
|
||||
uint32_t debug; /* debug flags */
|
||||
|
||||
|
||||
/* stats */
|
||||
uint32_t deq_rate; /* dequeue rate */
|
||||
uint32_t utilz; /* dequeue utilization */
|
||||
uint32_t trials; /* deq_prio trials per dequeue */
|
||||
uint32_t dcache_hits;
|
||||
uint32_t direct_pkts; /* count of non shapped packets */
|
||||
};
|
||||
enum
|
||||
{
|
||||
TCA_HTB_UNSPEC,
|
||||
TCA_HTB_PARMS,
|
||||
TCA_HTB_INIT,
|
||||
TCA_HTB_CTAB,
|
||||
TCA_HTB_RTAB,
|
||||
};
|
||||
struct tc_htb_xstats
|
||||
{
|
||||
uint32_t lends;
|
||||
uint32_t borrows;
|
||||
uint32_t giants; /* too big packets (rate will not be accurate) */
|
||||
uint32_t injects; /* how many times leaf used injected bw */
|
||||
uint32_t tokens;
|
||||
uint32_t ctokens;
|
||||
};
|
||||
|
||||
/* CBQ section */
|
||||
|
||||
#define TC_CBQ_MAXPRIO 8
|
||||
#define TC_CBQ_MAXLEVEL 8
|
||||
#define TC_CBQ_DEF_EWMA 5
|
||||
|
||||
struct tc_cbq_lssopt
|
||||
{
|
||||
unsigned char change;
|
||||
unsigned char flags;
|
||||
#define TCF_CBQ_LSS_BOUNDED 1
|
||||
#define TCF_CBQ_LSS_ISOLATED 2
|
||||
unsigned char ewma_log;
|
||||
unsigned char level;
|
||||
#define TCF_CBQ_LSS_FLAGS 1
|
||||
#define TCF_CBQ_LSS_EWMA 2
|
||||
#define TCF_CBQ_LSS_MAXIDLE 4
|
||||
#define TCF_CBQ_LSS_MINIDLE 8
|
||||
#define TCF_CBQ_LSS_OFFTIME 0x10
|
||||
#define TCF_CBQ_LSS_AVPKT 0x20
|
||||
uint32_t maxidle;
|
||||
uint32_t minidle;
|
||||
uint32_t offtime;
|
||||
uint32_t avpkt;
|
||||
};
|
||||
|
||||
struct tc_cbq_wrropt
|
||||
{
|
||||
unsigned char flags;
|
||||
unsigned char priority;
|
||||
unsigned char cpriority;
|
||||
unsigned char __reserved;
|
||||
uint32_t allot;
|
||||
uint32_t weight;
|
||||
};
|
||||
|
||||
struct tc_cbq_ovl
|
||||
{
|
||||
unsigned char strategy;
|
||||
#define TC_CBQ_OVL_CLASSIC 0
|
||||
#define TC_CBQ_OVL_DELAY 1
|
||||
#define TC_CBQ_OVL_LOWPRIO 2
|
||||
#define TC_CBQ_OVL_DROP 3
|
||||
#define TC_CBQ_OVL_RCLASSIC 4
|
||||
unsigned char priority2;
|
||||
uint32_t penalty;
|
||||
};
|
||||
|
||||
struct tc_cbq_police
|
||||
{
|
||||
unsigned char police;
|
||||
unsigned char __res1;
|
||||
unsigned short __res2;
|
||||
};
|
||||
|
||||
struct tc_cbq_fopt
|
||||
{
|
||||
uint32_t split;
|
||||
uint32_t defmap;
|
||||
uint32_t defchange;
|
||||
};
|
||||
|
||||
struct tc_cbq_xstats
|
||||
{
|
||||
uint32_t borrows;
|
||||
uint32_t overactions;
|
||||
int32_t avgidle;
|
||||
int32_t undertime;
|
||||
};
|
||||
|
||||
enum
|
||||
{
|
||||
TCA_CBQ_UNSPEC,
|
||||
TCA_CBQ_LSSOPT,
|
||||
TCA_CBQ_WRROPT,
|
||||
TCA_CBQ_FOPT,
|
||||
TCA_CBQ_OVL_STRATEGY,
|
||||
TCA_CBQ_RATE,
|
||||
TCA_CBQ_RTAB,
|
||||
TCA_CBQ_POLICE,
|
||||
};
|
||||
|
||||
#define TCA_CBQ_MAX TCA_CBQ_POLICE
|
||||
|
||||
/* dsmark section */
|
||||
|
||||
enum {
|
||||
TCA_DSMARK_UNSPEC,
|
||||
TCA_DSMARK_INDICES,
|
||||
TCA_DSMARK_DEFAULT_INDEX,
|
||||
TCA_DSMARK_SET_TC_INDEX,
|
||||
TCA_DSMARK_MASK,
|
||||
TCA_DSMARK_VALUE
|
||||
};
|
||||
|
||||
#define TCA_DSMARK_MAX TCA_DSMARK_VALUE
|
||||
|
||||
/* ATM section */
|
||||
|
||||
enum {
|
||||
TCA_ATM_UNSPEC,
|
||||
TCA_ATM_FD, /* file/socket descriptor */
|
||||
TCA_ATM_PTR, /* pointer to descriptor - later */
|
||||
TCA_ATM_HDR, /* LL header */
|
||||
TCA_ATM_EXCESS, /* excess traffic class (0 for CLP) */
|
||||
TCA_ATM_ADDR, /* PVC address (for output only) */
|
||||
TCA_ATM_STATE /* VC state (ATM_VS_*; for output only) */
|
||||
};
|
||||
|
||||
#define TCA_ATM_MAX TCA_ATM_STATE
|
||||
|
||||
#endif
|
Loading…
x
Reference in New Issue
Block a user