mirror of
				https://github.com/torvalds/linux.git
				synced 2025-11-04 02:30:34 +02:00 
			
		
		
		
	[IPv6] prefix: Convert RTM_NEWPREFIX notifications to use the new netlink api
RTM_GETPREFIX is completely unused and is thus removed. Signed-off-by: Thomas Graf <tgraf@suug.ch> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
		
							parent
							
								
									04561c1fe7
								
							
						
					
					
						commit
						6051e2f4fb
					
				
					 4 changed files with 14 additions and 20 deletions
				
			
		| 
						 | 
					@ -81,8 +81,6 @@ enum {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	RTM_NEWPREFIX	= 52,
 | 
						RTM_NEWPREFIX	= 52,
 | 
				
			||||||
#define RTM_NEWPREFIX	RTM_NEWPREFIX
 | 
					#define RTM_NEWPREFIX	RTM_NEWPREFIX
 | 
				
			||||||
	RTM_GETPREFIX	= 54,
 | 
					 | 
				
			||||||
#define RTM_GETPREFIX	RTM_GETPREFIX
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
	RTM_GETMULTICAST = 58,
 | 
						RTM_GETMULTICAST = 58,
 | 
				
			||||||
#define RTM_GETMULTICAST RTM_GETMULTICAST
 | 
					#define RTM_GETMULTICAST RTM_GETMULTICAST
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -108,7 +108,6 @@ static const int rtm_min[RTM_NR_FAMILIES] =
 | 
				
			||||||
	[RTM_FAM(RTM_NEWTCLASS)]    = NLMSG_LENGTH(sizeof(struct tcmsg)),
 | 
						[RTM_FAM(RTM_NEWTCLASS)]    = NLMSG_LENGTH(sizeof(struct tcmsg)),
 | 
				
			||||||
	[RTM_FAM(RTM_NEWTFILTER)]   = NLMSG_LENGTH(sizeof(struct tcmsg)),
 | 
						[RTM_FAM(RTM_NEWTFILTER)]   = NLMSG_LENGTH(sizeof(struct tcmsg)),
 | 
				
			||||||
	[RTM_FAM(RTM_NEWACTION)]    = NLMSG_LENGTH(sizeof(struct tcamsg)),
 | 
						[RTM_FAM(RTM_NEWACTION)]    = NLMSG_LENGTH(sizeof(struct tcamsg)),
 | 
				
			||||||
	[RTM_FAM(RTM_NEWPREFIX)]    = NLMSG_LENGTH(sizeof(struct rtgenmsg)),
 | 
					 | 
				
			||||||
	[RTM_FAM(RTM_GETMULTICAST)] = NLMSG_LENGTH(sizeof(struct rtgenmsg)),
 | 
						[RTM_FAM(RTM_GETMULTICAST)] = NLMSG_LENGTH(sizeof(struct rtgenmsg)),
 | 
				
			||||||
	[RTM_FAM(RTM_GETANYCAST)]   = NLMSG_LENGTH(sizeof(struct rtgenmsg)),
 | 
						[RTM_FAM(RTM_GETANYCAST)]   = NLMSG_LENGTH(sizeof(struct rtgenmsg)),
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -3523,11 +3523,13 @@ static int inet6_fill_prefix(struct sk_buff *skb, struct inet6_dev *idev,
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
	struct prefixmsg *pmsg;
 | 
						struct prefixmsg *pmsg;
 | 
				
			||||||
	struct nlmsghdr *nlh;
 | 
						struct nlmsghdr *nlh;
 | 
				
			||||||
	unsigned char		*b = skb->tail;
 | 
					 | 
				
			||||||
	struct prefix_cacheinfo	ci;
 | 
						struct prefix_cacheinfo	ci;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	nlh = NLMSG_NEW(skb, pid, seq, event, sizeof(*pmsg), flags);
 | 
						nlh = nlmsg_put(skb, pid, seq, event, sizeof(*pmsg), flags);
 | 
				
			||||||
	pmsg = NLMSG_DATA(nlh);
 | 
						if (nlh == NULL)
 | 
				
			||||||
 | 
							return -ENOBUFS;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						pmsg = nlmsg_data(nlh);
 | 
				
			||||||
	pmsg->prefix_family = AF_INET6;
 | 
						pmsg->prefix_family = AF_INET6;
 | 
				
			||||||
	pmsg->prefix_pad1 = 0;
 | 
						pmsg->prefix_pad1 = 0;
 | 
				
			||||||
	pmsg->prefix_pad2 = 0;
 | 
						pmsg->prefix_pad2 = 0;
 | 
				
			||||||
| 
						 | 
					@ -3535,26 +3537,22 @@ static int inet6_fill_prefix(struct sk_buff *skb, struct inet6_dev *idev,
 | 
				
			||||||
	pmsg->prefix_len = pinfo->prefix_len;
 | 
						pmsg->prefix_len = pinfo->prefix_len;
 | 
				
			||||||
	pmsg->prefix_type = pinfo->type;
 | 
						pmsg->prefix_type = pinfo->type;
 | 
				
			||||||
	pmsg->prefix_pad3 = 0;
 | 
						pmsg->prefix_pad3 = 0;
 | 
				
			||||||
	
 | 
					 | 
				
			||||||
	pmsg->prefix_flags = 0;
 | 
						pmsg->prefix_flags = 0;
 | 
				
			||||||
	if (pinfo->onlink)
 | 
						if (pinfo->onlink)
 | 
				
			||||||
		pmsg->prefix_flags |= IF_PREFIX_ONLINK;
 | 
							pmsg->prefix_flags |= IF_PREFIX_ONLINK;
 | 
				
			||||||
	if (pinfo->autoconf)
 | 
						if (pinfo->autoconf)
 | 
				
			||||||
		pmsg->prefix_flags |= IF_PREFIX_AUTOCONF;
 | 
							pmsg->prefix_flags |= IF_PREFIX_AUTOCONF;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	RTA_PUT(skb, PREFIX_ADDRESS, sizeof(pinfo->prefix), &pinfo->prefix);
 | 
						NLA_PUT(skb, PREFIX_ADDRESS, sizeof(pinfo->prefix), &pinfo->prefix);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	ci.preferred_time = ntohl(pinfo->prefered);
 | 
						ci.preferred_time = ntohl(pinfo->prefered);
 | 
				
			||||||
	ci.valid_time = ntohl(pinfo->valid);
 | 
						ci.valid_time = ntohl(pinfo->valid);
 | 
				
			||||||
	RTA_PUT(skb, PREFIX_CACHEINFO, sizeof(ci), &ci);
 | 
						NLA_PUT(skb, PREFIX_CACHEINFO, sizeof(ci), &ci);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	nlh->nlmsg_len = skb->tail - b;
 | 
						return nlmsg_end(skb, nlh);
 | 
				
			||||||
	return skb->len;
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
nlmsg_failure:
 | 
					nla_put_failure:
 | 
				
			||||||
rtattr_failure:
 | 
						return nlmsg_cancel(skb, nlh);
 | 
				
			||||||
	skb_trim(skb, b - skb->data);
 | 
					 | 
				
			||||||
	return -1;
 | 
					 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static void inet6_prefix_notify(int event, struct inet6_dev *idev, 
 | 
					static void inet6_prefix_notify(int event, struct inet6_dev *idev, 
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -60,7 +60,6 @@ static struct nlmsg_perm nlmsg_route_perms[] =
 | 
				
			||||||
	{ RTM_DELACTION,	NETLINK_ROUTE_SOCKET__NLMSG_WRITE },
 | 
						{ RTM_DELACTION,	NETLINK_ROUTE_SOCKET__NLMSG_WRITE },
 | 
				
			||||||
	{ RTM_GETACTION,	NETLINK_ROUTE_SOCKET__NLMSG_READ  },
 | 
						{ RTM_GETACTION,	NETLINK_ROUTE_SOCKET__NLMSG_READ  },
 | 
				
			||||||
	{ RTM_NEWPREFIX,	NETLINK_ROUTE_SOCKET__NLMSG_WRITE },
 | 
						{ RTM_NEWPREFIX,	NETLINK_ROUTE_SOCKET__NLMSG_WRITE },
 | 
				
			||||||
	{ RTM_GETPREFIX,	NETLINK_ROUTE_SOCKET__NLMSG_READ  },
 | 
					 | 
				
			||||||
	{ RTM_GETMULTICAST,	NETLINK_ROUTE_SOCKET__NLMSG_READ  },
 | 
						{ RTM_GETMULTICAST,	NETLINK_ROUTE_SOCKET__NLMSG_READ  },
 | 
				
			||||||
	{ RTM_GETANYCAST,	NETLINK_ROUTE_SOCKET__NLMSG_READ  },
 | 
						{ RTM_GETANYCAST,	NETLINK_ROUTE_SOCKET__NLMSG_READ  },
 | 
				
			||||||
	{ RTM_GETNEIGHTBL,	NETLINK_ROUTE_SOCKET__NLMSG_READ  },
 | 
						{ RTM_GETNEIGHTBL,	NETLINK_ROUTE_SOCKET__NLMSG_READ  },
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in a new issue