libnl  1.1.4

Attribute Access

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

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

◆ rtnl_sfq_set_quantum()

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

Definition at line 154 of file sfq.c.

155 {
156  struct rtnl_sfq *sfq;
157 
158  sfq = sfq_alloc(qdisc);
159  if (!sfq)
160  return nl_errno(ENOMEM);
161 
162  sfq->qs_quantum = quantum;
163  sfq->qs_mask |= SCH_SFQ_ATTR_QUANTUM;
164 
165  return 0;
166 }

◆ rtnl_sfq_get_quantum()

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

Definition at line 173 of file sfq.c.

174 {
175  struct rtnl_sfq *sfq;
176 
177  sfq = sfq_qdisc(qdisc);
178  if (sfq && sfq->qs_mask & SCH_SFQ_ATTR_QUANTUM)
179  return sfq->qs_quantum;
180  else
181  return nl_errno(ENOENT);
182 }

◆ rtnl_sfq_set_limit()

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

Definition at line 190 of file sfq.c.

191 {
192  struct rtnl_sfq *sfq;
193 
194  sfq = sfq_alloc(qdisc);
195  if (!sfq)
196  return nl_errno(ENOMEM);
197 
198  sfq->qs_limit = limit;
199  sfq->qs_mask |= SCH_SFQ_ATTR_LIMIT;
200 
201  return 0;
202 }

◆ rtnl_sfq_get_limit()

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

Definition at line 209 of file sfq.c.

210 {
211  struct rtnl_sfq *sfq;
212 
213  sfq = sfq_qdisc(qdisc);
214  if (sfq && sfq->qs_mask & SCH_SFQ_ATTR_LIMIT)
215  return sfq->qs_limit;
216  else
217  return nl_errno(ENOENT);
218 }

◆ rtnl_sfq_set_perturb()

int rtnl_sfq_set_perturb ( struct rtnl_qdisc *  qdisc,
int  perturb 
)
Parameters
qdiscSFQ qdisc to be modified.
perturbNew 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.

228 {
229  struct rtnl_sfq *sfq;
230 
231  sfq = sfq_alloc(qdisc);
232  if (!sfq)
233  return nl_errno(ENOMEM);
234 
235  sfq->qs_perturb = perturb;
236  sfq->qs_mask |= SCH_SFQ_ATTR_PERTURB;
237 
238  return 0;
239 }

◆ rtnl_sfq_get_perturb()

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

Definition at line 246 of file sfq.c.

247 {
248  struct rtnl_sfq *sfq;
249 
250  sfq = sfq_qdisc(qdisc);
251  if (sfq && sfq->qs_mask & SCH_SFQ_ATTR_PERTURB)
252  return sfq->qs_perturb;
253  else
254  return nl_errno(ENOENT);
255 }

◆ rtnl_sfq_get_divisor()

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

Definition at line 262 of file sfq.c.

263 {
264  struct rtnl_sfq *sfq;
265 
266  sfq = sfq_qdisc(qdisc);
267  if (sfq && sfq->qs_mask & SCH_SFQ_ATTR_DIVISOR)
268  return sfq->qs_divisor;
269  else
270  return nl_errno(ENOENT);
271 }