NETLINK_CB(skb).dst_groups = ctl->group; 
NETLINK_CB(skb).dst_group = ctl->group; 
static int cn_test_want_notify(void){	struct cn_ctl_msg *ctl;	struct cn_notify_req *req;	struct cn_msg *msg = NULL;	int size, size0;	struct sk_buff *skb;	struct nlmsghdr *nlh;	u32 group = 1;	size0 = sizeof(*msg) + sizeof(*ctl) + 3 * sizeof(*req);	size = NLMSG_SPACE(size0);	skb = alloc_skb(size, GFP_ATOMIC);	if (!skb) {		printk(KERN_ERR "Failed to allocate new skb with size=%u.\n",		       size);		return -ENOMEM;	}	nlh = NLMSG_PUT(skb, 0, 0x123, NLMSG_DONE, size - sizeof(*nlh));	msg = (struct cn_msg *)NLMSG_DATA(nlh);	memset(msg, 0, size0);	msg->id.idx = -1;	msg->id.val = -1;	msg->seq = 0x123;	msg->ack = 0x345;	msg->len = size0 - sizeof(*msg);	ctl = (struct cn_ctl_msg *)(msg + 1);	ctl->idx_notify_num = 1;	ctl->val_notify_num = 2;	ctl->group = group;	ctl->len = msg->len - sizeof(*ctl);	req = (struct cn_notify_req *)(ctl + 1);	/*	 * Idx.	 */	req->first = cn_test_id.idx;	req->range = 10;	/*	 * Val 0.	 */	req++;	req->first = cn_test_id.val;	req->range = 10;	/*	 * Val 1.	 */	req++;	req->first = cn_test_id.val + 20;	req->range = 10;	NETLINK_CB(skb).dst_groups = ctl->group;	//netlink_broadcast(nls, skb, 0, ctl->group, GFP_ATOMIC);	netlink_unicast(nls, skb, 0, 0);	printk(KERN_INFO "Request was sent. Group=0x%x.\n", ctl->group);	return 0;nlmsg_failure:	printk(KERN_ERR "Failed to send %u.%u\n", msg->seq, msg->ack);	kfree_skb(skb);	return -EINVAL;}
4520	/local/tlutelli/issta_data/temp/c/2005_temp/2005/4520/18a0c23617a2cb1c2e55e650046c2084d823fde0/cn_test.c/clean/Documentation/connector/cn_test.c