Lines Matching refs:filter

896 				  struct ctnetlink_filter *filter)  in ctnetlink_parse_filter()  argument
907 filter->orig_flags = nla_get_u32(tb[CTA_FILTER_ORIG_FLAGS]); in ctnetlink_parse_filter()
908 if (filter->orig_flags & ~CTA_FILTER_F_ALL) in ctnetlink_parse_filter()
913 filter->reply_flags = nla_get_u32(tb[CTA_FILTER_REPLY_FLAGS]); in ctnetlink_parse_filter()
914 if (filter->reply_flags & ~CTA_FILTER_F_ALL) in ctnetlink_parse_filter()
972 struct ctnetlink_filter *filter; in ctnetlink_alloc_filter() local
980 filter = kzalloc(sizeof(*filter), GFP_KERNEL); in ctnetlink_alloc_filter()
981 if (filter == NULL) in ctnetlink_alloc_filter()
984 filter->family = family; in ctnetlink_alloc_filter()
986 err = ctnetlink_filter_parse_mark(&filter->mark, cda); in ctnetlink_alloc_filter()
990 err = ctnetlink_filter_parse_status(&filter->status, cda); in ctnetlink_alloc_filter()
995 return filter; in ctnetlink_alloc_filter()
997 err = ctnetlink_parse_zone(cda[CTA_ZONE], &filter->zone); in ctnetlink_alloc_filter()
1001 err = ctnetlink_parse_filter(cda[CTA_FILTER], filter); in ctnetlink_alloc_filter()
1005 if (filter->orig_flags) { in ctnetlink_alloc_filter()
1011 err = ctnetlink_parse_tuple_filter(cda, &filter->orig, in ctnetlink_alloc_filter()
1013 filter->family, in ctnetlink_alloc_filter()
1014 &filter->zone, in ctnetlink_alloc_filter()
1015 filter->orig_flags); in ctnetlink_alloc_filter()
1020 if (filter->reply_flags) { in ctnetlink_alloc_filter()
1026 err = ctnetlink_parse_tuple_filter(cda, &filter->reply, in ctnetlink_alloc_filter()
1028 filter->family, in ctnetlink_alloc_filter()
1029 &filter->zone, in ctnetlink_alloc_filter()
1030 filter->reply_flags); in ctnetlink_alloc_filter()
1035 return filter; in ctnetlink_alloc_filter()
1038 kfree(filter); in ctnetlink_alloc_filter()
1051 struct ctnetlink_filter *filter = NULL; in ctnetlink_start() local
1056 filter = ctnetlink_alloc_filter(cda, family); in ctnetlink_start()
1057 if (IS_ERR(filter)) in ctnetlink_start()
1058 return PTR_ERR(filter); in ctnetlink_start()
1061 cb->data = filter; in ctnetlink_start()
1136 struct ctnetlink_filter *filter = data; in ctnetlink_filter_match() local
1140 if (filter == NULL) in ctnetlink_filter_match()
1147 if (filter->family && nf_ct_l3num(ct) != filter->family) in ctnetlink_filter_match()
1150 if (filter->orig_flags) { in ctnetlink_filter_match()
1152 if (!ctnetlink_filter_match_tuple(&filter->orig, tuple, in ctnetlink_filter_match()
1153 filter->orig_flags, in ctnetlink_filter_match()
1154 filter->family)) in ctnetlink_filter_match()
1158 if (filter->reply_flags) { in ctnetlink_filter_match()
1160 if (!ctnetlink_filter_match_tuple(&filter->reply, tuple, in ctnetlink_filter_match()
1161 filter->reply_flags, in ctnetlink_filter_match()
1162 filter->family)) in ctnetlink_filter_match()
1167 if ((READ_ONCE(ct->mark) & filter->mark.mask) != filter->mark.val) in ctnetlink_filter_match()
1171 if ((status & filter->status.mask) != filter->status.val) in ctnetlink_filter_match()
1565 struct ctnetlink_filter *filter = NULL; in ctnetlink_flush_conntrack() local
1576 filter = ctnetlink_alloc_filter(cda, family); in ctnetlink_flush_conntrack()
1577 if (IS_ERR(filter)) in ctnetlink_flush_conntrack()
1578 return PTR_ERR(filter); in ctnetlink_flush_conntrack()
1580 iter.data = filter; in ctnetlink_flush_conntrack()
1584 kfree(filter); in ctnetlink_flush_conntrack()