Lines Matching refs:meta

850 	struct meta_match *meta = (struct meta_match *) m->data;  in em_meta_match()  local
853 if (meta_get(skb, info, &meta->lvalue, &l_value) < 0 || in em_meta_match()
854 meta_get(skb, info, &meta->rvalue, &r_value) < 0) in em_meta_match()
857 r = meta_type_ops(&meta->lvalue)->compare(&l_value, &r_value); in em_meta_match()
859 switch (meta->lvalue.hdr.op) { in em_meta_match()
871 static void meta_delete(struct meta_match *meta) in meta_delete() argument
873 if (meta) { in meta_delete()
874 const struct meta_type_ops *ops = meta_type_ops(&meta->lvalue); in meta_delete()
877 ops->destroy(&meta->lvalue); in meta_delete()
878 ops->destroy(&meta->rvalue); in meta_delete()
882 kfree(meta); in meta_delete()
912 struct meta_match *meta = NULL; in em_meta_change() local
930 meta = kzalloc(sizeof(*meta), GFP_KERNEL); in em_meta_change()
931 if (meta == NULL) { in em_meta_change()
936 memcpy(&meta->lvalue.hdr, &hdr->left, sizeof(hdr->left)); in em_meta_change()
937 memcpy(&meta->rvalue.hdr, &hdr->right, sizeof(hdr->right)); in em_meta_change()
939 if (!meta_is_supported(&meta->lvalue) || in em_meta_change()
940 !meta_is_supported(&meta->rvalue)) { in em_meta_change()
945 if (meta_change_data(&meta->lvalue, tb[TCA_EM_META_LVALUE]) < 0 || in em_meta_change()
946 meta_change_data(&meta->rvalue, tb[TCA_EM_META_RVALUE]) < 0) in em_meta_change()
949 m->datalen = sizeof(*meta); in em_meta_change()
950 m->data = (unsigned long) meta; in em_meta_change()
954 if (err && meta) in em_meta_change()
955 meta_delete(meta); in em_meta_change()
967 struct meta_match *meta = (struct meta_match *) em->data; in em_meta_dump() local
972 memcpy(&hdr.left, &meta->lvalue.hdr, sizeof(hdr.left)); in em_meta_dump()
973 memcpy(&hdr.right, &meta->rvalue.hdr, sizeof(hdr.right)); in em_meta_dump()
978 ops = meta_type_ops(&meta->lvalue); in em_meta_dump()
979 if (ops->dump(skb, &meta->lvalue, TCA_EM_META_LVALUE) < 0 || in em_meta_dump()
980 ops->dump(skb, &meta->rvalue, TCA_EM_META_RVALUE) < 0) in em_meta_dump()