Lines Matching defs:group
40 struct psample_group *group,
51 ret = nla_put_u32(msg, PSAMPLE_ATTR_SAMPLE_GROUP, group->group_num);
55 ret = nla_put_u32(msg, PSAMPLE_ATTR_GROUP_REFCOUNT, group->refcount);
59 ret = nla_put_u32(msg, PSAMPLE_ATTR_GROUP_SEQ, group->seq);
74 struct psample_group *group;
80 list_for_each_entry(group, &psample_groups_list, list) {
81 if (!net_eq(group->net, sock_net(msg->sk)))
87 err = psample_group_nl_fill(msg, group, PSAMPLE_CMD_NEW_GROUP,
121 static void psample_group_notify(struct psample_group *group,
131 err = psample_group_nl_fill(msg, group, cmd, 0, 0, NLM_F_MULTI);
133 genlmsg_multicast_netns(&psample_nl_family, group->net, msg, 0,
142 struct psample_group *group;
144 group = kzalloc(sizeof(*group), GFP_ATOMIC);
145 if (!group)
148 group->net = net;
149 group->group_num = group_num;
150 list_add_tail(&group->list, &psample_groups_list);
152 psample_group_notify(group, PSAMPLE_CMD_NEW_GROUP);
153 return group;
156 static void psample_group_destroy(struct psample_group *group)
158 psample_group_notify(group, PSAMPLE_CMD_DEL_GROUP);
159 list_del(&group->list);
160 kfree_rcu(group, rcu);
166 struct psample_group *group;
168 list_for_each_entry(group, &psample_groups_list, list)
169 if ((group->group_num == group_num) && (group->net == net))
170 return group;
176 struct psample_group *group;
180 group = psample_group_lookup(net, group_num);
181 if (!group) {
182 group = psample_group_create(net, group_num);
183 if (!group)
186 group->refcount++;
190 return group;
194 void psample_group_take(struct psample_group *group)
197 group->refcount++;
202 void psample_group_put(struct psample_group *group)
206 if (--group->refcount == 0)
207 psample_group_destroy(group);
359 void psample_sample_packet(struct psample_group *group, struct sk_buff *skb,
419 ret = nla_put_u32(nl_skb, PSAMPLE_ATTR_SAMPLE_GROUP, group->group_num);
423 ret = nla_put_u32(nl_skb, PSAMPLE_ATTR_GROUP_SEQ, group->seq++);
448 genlmsg_multicast_netns(&psample_nl_family, group->net, nl_skb, 0,