Lines Matching refs:meta
849 struct meta_match *meta = (struct meta_match *) m->data; in em_meta_match() local
852 if (meta_get(skb, info, &meta->lvalue, &l_value) < 0 || in em_meta_match()
853 meta_get(skb, info, &meta->rvalue, &r_value) < 0) in em_meta_match()
856 r = meta_type_ops(&meta->lvalue)->compare(&l_value, &r_value); in em_meta_match()
858 switch (meta->lvalue.hdr.op) { in em_meta_match()
870 static void meta_delete(struct meta_match *meta) in meta_delete() argument
872 if (meta) { in meta_delete()
873 struct meta_type_ops *ops = meta_type_ops(&meta->lvalue); in meta_delete()
876 ops->destroy(&meta->lvalue); in meta_delete()
877 ops->destroy(&meta->rvalue); in meta_delete()
881 kfree(meta); in meta_delete()
911 struct meta_match *meta = NULL; in em_meta_change() local
928 meta = kzalloc(sizeof(*meta), GFP_KERNEL); in em_meta_change()
929 if (meta == NULL) { in em_meta_change()
934 memcpy(&meta->lvalue.hdr, &hdr->left, sizeof(hdr->left)); in em_meta_change()
935 memcpy(&meta->rvalue.hdr, &hdr->right, sizeof(hdr->right)); in em_meta_change()
937 if (!meta_is_supported(&meta->lvalue) || in em_meta_change()
938 !meta_is_supported(&meta->rvalue)) { in em_meta_change()
943 if (meta_change_data(&meta->lvalue, tb[TCA_EM_META_LVALUE]) < 0 || in em_meta_change()
944 meta_change_data(&meta->rvalue, tb[TCA_EM_META_RVALUE]) < 0) in em_meta_change()
947 m->datalen = sizeof(*meta); in em_meta_change()
948 m->data = (unsigned long) meta; in em_meta_change()
952 if (err && meta) in em_meta_change()
953 meta_delete(meta); in em_meta_change()
965 struct meta_match *meta = (struct meta_match *) em->data; in em_meta_dump() local
970 memcpy(&hdr.left, &meta->lvalue.hdr, sizeof(hdr.left)); in em_meta_dump()
971 memcpy(&hdr.right, &meta->rvalue.hdr, sizeof(hdr.right)); in em_meta_dump()
976 ops = meta_type_ops(&meta->lvalue); in em_meta_dump()
977 if (ops->dump(skb, &meta->lvalue, TCA_EM_META_LVALUE) < 0 || in em_meta_dump()
978 ops->dump(skb, &meta->rvalue, TCA_EM_META_RVALUE) < 0) in em_meta_dump()