• Home
  • Raw
  • Download

Lines Matching refs:cls

35 static int cls_build(struct rtnl_cls *cls, int type, int flags,  in cls_build()  argument
42 if ((cls->ce_mask & required) != required) { in cls_build()
47 err = rtnl_tc_msg_build(TC_CAST(cls), type, flags, result); in cls_build()
52 prio = rtnl_cls_get_prio(cls); in cls_build()
53 proto = rtnl_cls_get_protocol(cls); in cls_build()
75 void rtnl_cls_put(struct rtnl_cls *cls) in rtnl_cls_put() argument
77 nl_object_put((struct nl_object *) cls); in rtnl_cls_put()
87 void rtnl_cls_set_prio(struct rtnl_cls *cls, uint16_t prio) in rtnl_cls_set_prio() argument
89 cls->c_prio = prio; in rtnl_cls_set_prio()
90 cls->ce_mask |= CLS_ATTR_PRIO; in rtnl_cls_set_prio()
93 uint16_t rtnl_cls_get_prio(struct rtnl_cls *cls) in rtnl_cls_get_prio() argument
95 if (cls->ce_mask & CLS_ATTR_PRIO) in rtnl_cls_get_prio()
96 return cls->c_prio; in rtnl_cls_get_prio()
101 void rtnl_cls_set_protocol(struct rtnl_cls *cls, uint16_t protocol) in rtnl_cls_set_protocol() argument
103 cls->c_protocol = protocol; in rtnl_cls_set_protocol()
104 cls->ce_mask |= CLS_ATTR_PROTOCOL; in rtnl_cls_set_protocol()
107 uint16_t rtnl_cls_get_protocol(struct rtnl_cls *cls) in rtnl_cls_get_protocol() argument
109 if (cls->ce_mask & CLS_ATTR_PROTOCOL) in rtnl_cls_get_protocol()
110 return cls->c_protocol; in rtnl_cls_get_protocol()
137 int rtnl_cls_build_add_request(struct rtnl_cls *cls, int flags, in rtnl_cls_build_add_request() argument
140 if (!(flags & NLM_F_CREATE) && !(cls->ce_mask & CLS_ATTR_PRIO)) { in rtnl_cls_build_add_request()
145 return cls_build(cls, RTM_NEWTFILTER, flags, result); in rtnl_cls_build_add_request()
184 int rtnl_cls_add(struct nl_sock *sk, struct rtnl_cls *cls, int flags) in rtnl_cls_add() argument
189 if ((err = rtnl_cls_build_add_request(cls, flags, &msg)) < 0) in rtnl_cls_add()
208 int rtnl_cls_build_change_request(struct rtnl_cls *cls, int flags, in rtnl_cls_build_change_request() argument
211 return cls_build(cls, RTM_NEWTFILTER, NLM_F_REPLACE | flags, result); in rtnl_cls_build_change_request()
226 int rtnl_cls_change(struct nl_sock *sk, struct rtnl_cls *cls, int flags) in rtnl_cls_change() argument
231 if ((err = rtnl_cls_build_change_request(cls, flags, &msg)) < 0) in rtnl_cls_change()
251 int rtnl_cls_build_delete_request(struct rtnl_cls *cls, int flags, in rtnl_cls_build_delete_request() argument
256 if ((cls->ce_mask & required) != required) { in rtnl_cls_build_delete_request()
261 return cls_build(cls, RTM_DELTFILTER, flags, result); in rtnl_cls_build_delete_request()
295 int rtnl_cls_delete(struct nl_sock *sk, struct rtnl_cls *cls, int flags) in rtnl_cls_delete() argument
300 if ((err = rtnl_cls_build_delete_request(cls, flags, &msg)) < 0) in rtnl_cls_delete()
351 struct rtnl_cls *cls = (struct rtnl_cls *) tc; in cls_dump_line() local
354 nl_dump(p, " prio %u protocol %s", cls->c_prio, in cls_dump_line()
355 nl_ether_proto2str(cls->c_protocol, buf, sizeof(buf))); in cls_dump_line()
361 struct rtnl_cls *cls; in cls_msg_parser() local
364 if (!(cls = rtnl_cls_alloc())) in cls_msg_parser()
367 if ((err = rtnl_tc_msg_parse(nlh, TC_CAST(cls))) < 0) in cls_msg_parser()
370 cls->c_prio = TC_H_MAJ(cls->c_info) >> 16; in cls_msg_parser()
371 if (cls->c_prio) in cls_msg_parser()
372 cls->ce_mask |= CLS_ATTR_PRIO; in cls_msg_parser()
373 cls->c_protocol = ntohs(TC_H_MIN(cls->c_info)); in cls_msg_parser()
374 if (cls->c_protocol) in cls_msg_parser()
375 cls->ce_mask |= CLS_ATTR_PROTOCOL; in cls_msg_parser()
377 err = pp->pp_cb(OBJ_CAST(cls), pp); in cls_msg_parser()
379 rtnl_cls_put(cls); in cls_msg_parser()