Lines Matching refs:p

48 static inline int dsmark_valid_index(struct dsmark_qdisc_data *p, u16 index)  in dsmark_valid_index()  argument
50 return index <= p->indices && index > 0; in dsmark_valid_index()
58 struct dsmark_qdisc_data *p = qdisc_priv(sch); in dsmark_graft() local
61 __func__, sch, p, new, old); in dsmark_graft()
71 *old = p->q; in dsmark_graft()
72 p->q = new; in dsmark_graft()
82 struct dsmark_qdisc_data *p = qdisc_priv(sch); in dsmark_leaf() local
83 return p->q; in dsmark_leaf()
115 struct dsmark_qdisc_data *p = qdisc_priv(sch); in dsmark_change() local
122 __func__, sch, p, classid, parent, *arg); in dsmark_change()
124 if (!dsmark_valid_index(p, *arg)) { in dsmark_change()
140 p->value[*arg - 1] = nla_get_u8(tb[TCA_DSMARK_VALUE]); in dsmark_change()
143 p->mask[*arg - 1] = mask; in dsmark_change()
153 struct dsmark_qdisc_data *p = qdisc_priv(sch); in dsmark_delete() local
155 if (!dsmark_valid_index(p, arg)) in dsmark_delete()
158 p->mask[arg - 1] = 0xff; in dsmark_delete()
159 p->value[arg - 1] = 0; in dsmark_delete()
166 struct dsmark_qdisc_data *p = qdisc_priv(sch); in dsmark_walk() local
170 __func__, sch, p, walker); in dsmark_walk()
175 for (i = 0; i < p->indices; i++) { in dsmark_walk()
176 if (p->mask[i] == 0xff && !p->value[i]) in dsmark_walk()
192 struct dsmark_qdisc_data *p = qdisc_priv(sch); in dsmark_find_tcf() local
193 return &p->filter_list; in dsmark_find_tcf()
200 struct dsmark_qdisc_data *p = qdisc_priv(sch); in dsmark_enqueue() local
203 pr_debug("%s(skb %p,sch %p,[qdisc %p])\n", __func__, skb, sch, p); in dsmark_enqueue()
205 if (p->set_tc_index) { in dsmark_enqueue()
232 struct tcf_proto *fl = rcu_dereference_bh(p->filter_list); in dsmark_enqueue()
252 if (p->default_index != NO_DEFAULT_INDEX) in dsmark_enqueue()
253 skb->tc_index = p->default_index; in dsmark_enqueue()
258 err = qdisc_enqueue(skb, p->q); in dsmark_enqueue()
276 struct dsmark_qdisc_data *p = qdisc_priv(sch); in dsmark_dequeue() local
280 pr_debug("%s(sch %p,[qdisc %p])\n", __func__, sch, p); in dsmark_dequeue()
282 skb = p->q->ops->dequeue(p->q); in dsmark_dequeue()
289 index = skb->tc_index & (p->indices - 1); in dsmark_dequeue()
294 ipv4_change_dsfield(ip_hdr(skb), p->mask[index], in dsmark_dequeue()
295 p->value[index]); in dsmark_dequeue()
298 ipv6_change_dsfield(ipv6_hdr(skb), p->mask[index], in dsmark_dequeue()
299 p->value[index]); in dsmark_dequeue()
307 if (p->mask[index] != 0xff || p->value[index]) in dsmark_dequeue()
318 struct dsmark_qdisc_data *p = qdisc_priv(sch); in dsmark_peek() local
320 pr_debug("%s(sch %p,[qdisc %p])\n", __func__, sch, p); in dsmark_peek()
322 return p->q->ops->peek(p->q); in dsmark_peek()
327 struct dsmark_qdisc_data *p = qdisc_priv(sch); in dsmark_drop() local
330 pr_debug("%s(sch %p,[qdisc %p])\n", __func__, sch, p); in dsmark_drop()
332 if (p->q->ops->drop == NULL) in dsmark_drop()
335 len = p->q->ops->drop(p->q); in dsmark_drop()
344 struct dsmark_qdisc_data *p = qdisc_priv(sch); in dsmark_init() local
351 pr_debug("%s(sch %p,[qdisc %p],opt %p)\n", __func__, sch, p, opt); in dsmark_init()
375 p->mask = mask; in dsmark_init()
376 memset(p->mask, 0xff, indices); in dsmark_init()
378 p->value = p->mask + indices; in dsmark_init()
379 memset(p->value, 0, indices); in dsmark_init()
381 p->indices = indices; in dsmark_init()
382 p->default_index = default_index; in dsmark_init()
383 p->set_tc_index = nla_get_flag(tb[TCA_DSMARK_SET_TC_INDEX]); in dsmark_init()
385 p->q = qdisc_create_dflt(sch->dev_queue, &pfifo_qdisc_ops, sch->handle); in dsmark_init()
386 if (p->q == NULL) in dsmark_init()
387 p->q = &noop_qdisc; in dsmark_init()
389 pr_debug("%s: qdisc %p\n", __func__, p->q); in dsmark_init()
398 struct dsmark_qdisc_data *p = qdisc_priv(sch); in dsmark_reset() local
400 pr_debug("%s(sch %p,[qdisc %p])\n", __func__, sch, p); in dsmark_reset()
401 qdisc_reset(p->q); in dsmark_reset()
407 struct dsmark_qdisc_data *p = qdisc_priv(sch); in dsmark_destroy() local
409 pr_debug("%s(sch %p,[qdisc %p])\n", __func__, sch, p); in dsmark_destroy()
411 tcf_destroy_chain(&p->filter_list); in dsmark_destroy()
412 qdisc_destroy(p->q); in dsmark_destroy()
413 kfree(p->mask); in dsmark_destroy()
419 struct dsmark_qdisc_data *p = qdisc_priv(sch); in dsmark_dump_class() local
422 pr_debug("%s(sch %p,[qdisc %p],class %ld\n", __func__, sch, p, cl); in dsmark_dump_class()
424 if (!dsmark_valid_index(p, cl)) in dsmark_dump_class()
428 tcm->tcm_info = p->q->handle; in dsmark_dump_class()
433 if (nla_put_u8(skb, TCA_DSMARK_MASK, p->mask[cl - 1]) || in dsmark_dump_class()
434 nla_put_u8(skb, TCA_DSMARK_VALUE, p->value[cl - 1])) in dsmark_dump_class()
446 struct dsmark_qdisc_data *p = qdisc_priv(sch); in dsmark_dump() local
452 if (nla_put_u16(skb, TCA_DSMARK_INDICES, p->indices)) in dsmark_dump()
455 if (p->default_index != NO_DEFAULT_INDEX && in dsmark_dump()
456 nla_put_u16(skb, TCA_DSMARK_DEFAULT_INDEX, p->default_index)) in dsmark_dump()
459 if (p->set_tc_index && in dsmark_dump()