Stochastic Fairness Queueing (SFQ)
[Queueing Discipline Modules]

Attribute Access



int rtnl_sfq_set_quantum (struct rtnl_qdisc *qdisc, int quantum)
 Set quantum of SFQ qdisc.
int rtnl_sfq_get_quantum (struct rtnl_qdisc *qdisc)
 Get quantum of SFQ qdisc.
int rtnl_sfq_set_limit (struct rtnl_qdisc *qdisc, int limit)
 Set limit of SFQ qdisc.
int rtnl_sfq_get_limit (struct rtnl_qdisc *qdisc)
 Get limit of SFQ qdisc.
int rtnl_sfq_set_perturb (struct rtnl_qdisc *qdisc, int perturb)
 Set perturbation interval of SFQ qdisc.
int rtnl_sfq_get_perturb (struct rtnl_qdisc *qdisc)
 Get perturbation interval of SFQ qdisc.
int rtnl_sfq_get_divisor (struct rtnl_qdisc *qdisc)
 Get divisor of SFQ qdisc.

Detailed Description

Parameter Description
  • Quantum: Number of bytes to send out per slot and round.
  • Perturbation: Timer period between changing the hash function.
  • Limit: Upper limit of queue in number of packets before SFQ starts dropping packets.
  • Divisor: Hash table divisor, i.e. size of hash table.

Function Documentation

int rtnl_sfq_set_quantum ( struct rtnl_qdisc *  qdisc,
int  quantum 
)
Parameters:
qdisc SFQ qdisc to be modified.
quantum New quantum in bytes.
Returns:
0 on success or a negative error code.

Definition at line 154 of file sfq.c.

00155 {
00156         struct rtnl_sfq *sfq;
00157         
00158         sfq = sfq_alloc(qdisc);
00159         if (!sfq)
00160                 return nl_errno(ENOMEM);
00161 
00162         sfq->qs_quantum = quantum;
00163         sfq->qs_mask |= SCH_SFQ_ATTR_QUANTUM;
00164 
00165         return 0;
00166 }

int rtnl_sfq_get_quantum ( struct rtnl_qdisc *  qdisc  ) 
Parameters:
qdisc SFQ qdisc.
Returns:
Quantum in bytes or a negative error code.

Definition at line 173 of file sfq.c.

00174 {
00175         struct rtnl_sfq *sfq;
00176 
00177         sfq = sfq_qdisc(qdisc);
00178         if (sfq && sfq->qs_mask & SCH_SFQ_ATTR_QUANTUM)
00179                 return sfq->qs_quantum;
00180         else
00181                 return nl_errno(ENOENT);
00182 }

int rtnl_sfq_set_limit ( struct rtnl_qdisc *  qdisc,
int  limit 
)
Parameters:
qdisc SFQ qdisc to be modified.
limit New limit in number of packets.
Returns:
0 on success or a negative error code.

Definition at line 190 of file sfq.c.

00191 {
00192         struct rtnl_sfq *sfq;
00193 
00194         sfq = sfq_alloc(qdisc);
00195         if (!sfq)
00196                 return nl_errno(ENOMEM);
00197 
00198         sfq->qs_limit = limit;
00199         sfq->qs_mask |= SCH_SFQ_ATTR_LIMIT;
00200 
00201         return 0;
00202 }

int rtnl_sfq_get_limit ( struct rtnl_qdisc *  qdisc  ) 
Parameters:
qdisc SFQ qdisc.
Returns:
Limit or a negative error code.

Definition at line 209 of file sfq.c.

00210 {
00211         struct rtnl_sfq *sfq;
00212 
00213         sfq = sfq_qdisc(qdisc);
00214         if (sfq && sfq->qs_mask & SCH_SFQ_ATTR_LIMIT)
00215                 return sfq->qs_limit;
00216         else
00217                 return nl_errno(ENOENT);
00218 }

int rtnl_sfq_set_perturb ( struct rtnl_qdisc *  qdisc,
int  perturb 
)
Parameters:
qdisc SFQ qdisc to be modified.
perturb New perturbation interval in seconds.
Note:
A value of 0 disables perturbation altogether.
Returns:
0 on success or a negative error code.

Definition at line 227 of file sfq.c.

00228 {
00229         struct rtnl_sfq *sfq;
00230 
00231         sfq = sfq_alloc(qdisc);
00232         if (!sfq)
00233                 return nl_errno(ENOMEM);
00234 
00235         sfq->qs_perturb = perturb;
00236         sfq->qs_mask |= SCH_SFQ_ATTR_PERTURB;
00237 
00238         return 0;
00239 }

int rtnl_sfq_get_perturb ( struct rtnl_qdisc *  qdisc  ) 
Parameters:
qdisc SFQ qdisc.
Returns:
Perturbation interval in seconds or a negative error code.

Definition at line 246 of file sfq.c.

00247 {
00248         struct rtnl_sfq *sfq;
00249 
00250         sfq = sfq_qdisc(qdisc);
00251         if (sfq && sfq->qs_mask & SCH_SFQ_ATTR_PERTURB)
00252                 return sfq->qs_perturb;
00253         else
00254                 return nl_errno(ENOENT);
00255 }

int rtnl_sfq_get_divisor ( struct rtnl_qdisc *  qdisc  ) 
Parameters:
qdisc SFQ qdisc.
Returns:
Divisor in number of entries or a negative error code.

Definition at line 262 of file sfq.c.

00263 {
00264         struct rtnl_sfq *sfq;
00265 
00266         sfq = sfq_qdisc(qdisc);
00267         if (sfq && sfq->qs_mask & SCH_SFQ_ATTR_DIVISOR)
00268                 return sfq->qs_divisor;
00269         else
00270                 return nl_errno(ENOENT);
00271 }


Generated on 30 Oct 2009 for libnl by  doxygen 1.6.1