Lines Matching refs:p

54 static inline int dsmark_valid_index(struct dsmark_qdisc_data *p, u16 index)  in dsmark_valid_index()  argument
56 return index <= p->indices && index > 0; in dsmark_valid_index()
64 struct dsmark_qdisc_data *p = qdisc_priv(sch); in dsmark_graft() local
67 __func__, sch, p, new, old); in dsmark_graft()
76 *old = qdisc_replace(sch, new, &p->q); 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
121 __func__, sch, p, classid, parent, *arg); in dsmark_change()
123 if (!dsmark_valid_index(p, *arg)) { in dsmark_change()
136 p->mv[*arg - 1].value = nla_get_u8(tb[TCA_DSMARK_VALUE]); in dsmark_change()
139 p->mv[*arg - 1].mask = nla_get_u8(tb[TCA_DSMARK_MASK]); in dsmark_change()
149 struct dsmark_qdisc_data *p = qdisc_priv(sch); in dsmark_delete() local
151 if (!dsmark_valid_index(p, arg)) in dsmark_delete()
154 p->mv[arg - 1].mask = 0xff; in dsmark_delete()
155 p->mv[arg - 1].value = 0; in dsmark_delete()
162 struct dsmark_qdisc_data *p = qdisc_priv(sch); in dsmark_walk() local
166 __func__, sch, p, walker); in dsmark_walk()
171 for (i = 0; i < p->indices; i++) { in dsmark_walk()
172 if (p->mv[i].mask == 0xff && !p->mv[i].value) in dsmark_walk()
188 struct dsmark_qdisc_data *p = qdisc_priv(sch); in dsmark_find_tcf() local
189 return &p->filter_list; in dsmark_find_tcf()
196 struct dsmark_qdisc_data *p = qdisc_priv(sch); in dsmark_enqueue() local
199 pr_debug("%s(skb %p,sch %p,[qdisc %p])\n", __func__, skb, sch, p); in dsmark_enqueue()
201 if (p->set_tc_index) { in dsmark_enqueue()
228 struct tcf_proto *fl = rcu_dereference_bh(p->filter_list); in dsmark_enqueue()
248 if (p->default_index != NO_DEFAULT_INDEX) in dsmark_enqueue()
249 skb->tc_index = p->default_index; in dsmark_enqueue()
254 err = qdisc_enqueue(skb, p->q); in dsmark_enqueue()
273 struct dsmark_qdisc_data *p = qdisc_priv(sch); in dsmark_dequeue() local
277 pr_debug("%s(sch %p,[qdisc %p])\n", __func__, sch, p); in dsmark_dequeue()
279 skb = p->q->ops->dequeue(p->q); in dsmark_dequeue()
287 index = skb->tc_index & (p->indices - 1); in dsmark_dequeue()
292 ipv4_change_dsfield(ip_hdr(skb), p->mv[index].mask, in dsmark_dequeue()
293 p->mv[index].value); in dsmark_dequeue()
296 ipv6_change_dsfield(ipv6_hdr(skb), p->mv[index].mask, in dsmark_dequeue()
297 p->mv[index].value); in dsmark_dequeue()
305 if (p->mv[index].mask != 0xff || p->mv[index].value) in dsmark_dequeue()
316 struct dsmark_qdisc_data *p = qdisc_priv(sch); in dsmark_peek() local
318 pr_debug("%s(sch %p,[qdisc %p])\n", __func__, sch, p); in dsmark_peek()
320 return p->q->ops->peek(p->q); in dsmark_peek()
325 struct dsmark_qdisc_data *p = qdisc_priv(sch); in dsmark_drop() local
328 pr_debug("%s(sch %p,[qdisc %p])\n", __func__, sch, p); in dsmark_drop()
330 if (p->q->ops->drop == NULL) in dsmark_drop()
333 len = p->q->ops->drop(p->q); in dsmark_drop()
342 struct dsmark_qdisc_data *p = qdisc_priv(sch); in dsmark_init() local
349 pr_debug("%s(sch %p,[qdisc %p],opt %p)\n", __func__, sch, p, opt); in dsmark_init()
368 p->mv = p->embedded; in dsmark_init()
370 p->mv = kmalloc_array(indices, sizeof(*p->mv), GFP_KERNEL); in dsmark_init()
371 if (!p->mv) { in dsmark_init()
376 p->mv[i].mask = 0xff; in dsmark_init()
377 p->mv[i].value = 0; in dsmark_init()
379 p->indices = indices; in dsmark_init()
380 p->default_index = default_index; in dsmark_init()
381 p->set_tc_index = nla_get_flag(tb[TCA_DSMARK_SET_TC_INDEX]); in dsmark_init()
383 p->q = qdisc_create_dflt(sch->dev_queue, &pfifo_qdisc_ops, sch->handle); in dsmark_init()
384 if (p->q == NULL) in dsmark_init()
385 p->q = &noop_qdisc; in dsmark_init()
387 pr_debug("%s: qdisc %p\n", __func__, p->q); in dsmark_init()
396 struct dsmark_qdisc_data *p = qdisc_priv(sch); in dsmark_reset() local
398 pr_debug("%s(sch %p,[qdisc %p])\n", __func__, sch, p); in dsmark_reset()
399 qdisc_reset(p->q); in dsmark_reset()
406 struct dsmark_qdisc_data *p = qdisc_priv(sch); in dsmark_destroy() local
408 pr_debug("%s(sch %p,[qdisc %p])\n", __func__, sch, p); in dsmark_destroy()
410 tcf_destroy_chain(&p->filter_list); in dsmark_destroy()
411 qdisc_destroy(p->q); in dsmark_destroy()
412 if (p->mv != p->embedded) in dsmark_destroy()
413 kfree(p->mv); 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->mv[cl - 1].mask) || in dsmark_dump_class()
434 nla_put_u8(skb, TCA_DSMARK_VALUE, p->mv[cl - 1].value)) 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()