diff options
Diffstat (limited to 'net/ipv6/addrlabel.c')
-rw-r--r-- | net/ipv6/addrlabel.c | 25 |
1 files changed, 15 insertions, 10 deletions
diff --git a/net/ipv6/addrlabel.c b/net/ipv6/addrlabel.c index a3c5a72218fd..9bfa8846f262 100644 --- a/net/ipv6/addrlabel.c +++ b/net/ipv6/addrlabel.c | |||
@@ -58,6 +58,7 @@ static struct ip6addrlbl_table | |||
58 | * ::ffff:0:0/96 V4MAPPED 4 | 58 | * ::ffff:0:0/96 V4MAPPED 4 |
59 | * fc00::/7 N/A 5 ULA (RFC 4193) | 59 | * fc00::/7 N/A 5 ULA (RFC 4193) |
60 | * 2001::/32 N/A 6 Teredo (RFC 4380) | 60 | * 2001::/32 N/A 6 Teredo (RFC 4380) |
61 | * 2001:10::/28 N/A 7 ORCHID (RFC 4843) | ||
61 | * | 62 | * |
62 | * Note: 0xffffffff is used if we do not have any policies. | 63 | * Note: 0xffffffff is used if we do not have any policies. |
63 | */ | 64 | */ |
@@ -85,6 +86,10 @@ static const __initdata struct ip6addrlbl_init_table | |||
85 | .prefix = &(struct in6_addr){{{ 0x20, 0x01 }}}, | 86 | .prefix = &(struct in6_addr){{{ 0x20, 0x01 }}}, |
86 | .prefixlen = 32, | 87 | .prefixlen = 32, |
87 | .label = 6, | 88 | .label = 6, |
89 | },{ /* 2001:10::/28 */ | ||
90 | .prefix = &(struct in6_addr){{{ 0x20, 0x01, 0x00, 0x10 }}}, | ||
91 | .prefixlen = 28, | ||
92 | .label = 7, | ||
88 | },{ /* ::ffff:0:0 */ | 93 | },{ /* ::ffff:0:0 */ |
89 | .prefix = &(struct in6_addr){{{ [10] = 0xff, [11] = 0xff }}}, | 94 | .prefix = &(struct in6_addr){{{ [10] = 0xff, [11] = 0xff }}}, |
90 | .prefixlen = 96, | 95 | .prefixlen = 96, |
@@ -161,7 +166,7 @@ u32 ipv6_addr_label(const struct in6_addr *addr, int type, int ifindex) | |||
161 | rcu_read_unlock(); | 166 | rcu_read_unlock(); |
162 | 167 | ||
163 | ADDRLABEL(KERN_DEBUG "%s(addr=" NIP6_FMT ", type=%d, ifindex=%d) => %08x\n", | 168 | ADDRLABEL(KERN_DEBUG "%s(addr=" NIP6_FMT ", type=%d, ifindex=%d) => %08x\n", |
164 | __FUNCTION__, | 169 | __func__, |
165 | NIP6(*addr), type, ifindex, | 170 | NIP6(*addr), type, ifindex, |
166 | label); | 171 | label); |
167 | 172 | ||
@@ -177,7 +182,7 @@ static struct ip6addrlbl_entry *ip6addrlbl_alloc(const struct in6_addr *prefix, | |||
177 | int addrtype; | 182 | int addrtype; |
178 | 183 | ||
179 | ADDRLABEL(KERN_DEBUG "%s(prefix=" NIP6_FMT ", prefixlen=%d, ifindex=%d, label=%u)\n", | 184 | ADDRLABEL(KERN_DEBUG "%s(prefix=" NIP6_FMT ", prefixlen=%d, ifindex=%d, label=%u)\n", |
180 | __FUNCTION__, | 185 | __func__, |
181 | NIP6(*prefix), prefixlen, | 186 | NIP6(*prefix), prefixlen, |
182 | ifindex, | 187 | ifindex, |
183 | (unsigned int)label); | 188 | (unsigned int)label); |
@@ -221,7 +226,7 @@ static int __ip6addrlbl_add(struct ip6addrlbl_entry *newp, int replace) | |||
221 | int ret = 0; | 226 | int ret = 0; |
222 | 227 | ||
223 | ADDRLABEL(KERN_DEBUG "%s(newp=%p, replace=%d)\n", | 228 | ADDRLABEL(KERN_DEBUG "%s(newp=%p, replace=%d)\n", |
224 | __FUNCTION__, | 229 | __func__, |
225 | newp, replace); | 230 | newp, replace); |
226 | 231 | ||
227 | if (hlist_empty(&ip6addrlbl_table.head)) { | 232 | if (hlist_empty(&ip6addrlbl_table.head)) { |
@@ -263,7 +268,7 @@ static int ip6addrlbl_add(const struct in6_addr *prefix, int prefixlen, | |||
263 | int ret = 0; | 268 | int ret = 0; |
264 | 269 | ||
265 | ADDRLABEL(KERN_DEBUG "%s(prefix=" NIP6_FMT ", prefixlen=%d, ifindex=%d, label=%u, replace=%d)\n", | 270 | ADDRLABEL(KERN_DEBUG "%s(prefix=" NIP6_FMT ", prefixlen=%d, ifindex=%d, label=%u, replace=%d)\n", |
266 | __FUNCTION__, | 271 | __func__, |
267 | NIP6(*prefix), prefixlen, | 272 | NIP6(*prefix), prefixlen, |
268 | ifindex, | 273 | ifindex, |
269 | (unsigned int)label, | 274 | (unsigned int)label, |
@@ -289,7 +294,7 @@ static int __ip6addrlbl_del(const struct in6_addr *prefix, int prefixlen, | |||
289 | int ret = -ESRCH; | 294 | int ret = -ESRCH; |
290 | 295 | ||
291 | ADDRLABEL(KERN_DEBUG "%s(prefix=" NIP6_FMT ", prefixlen=%d, ifindex=%d)\n", | 296 | ADDRLABEL(KERN_DEBUG "%s(prefix=" NIP6_FMT ", prefixlen=%d, ifindex=%d)\n", |
292 | __FUNCTION__, | 297 | __func__, |
293 | NIP6(*prefix), prefixlen, | 298 | NIP6(*prefix), prefixlen, |
294 | ifindex); | 299 | ifindex); |
295 | 300 | ||
@@ -313,7 +318,7 @@ static int ip6addrlbl_del(const struct in6_addr *prefix, int prefixlen, | |||
313 | int ret; | 318 | int ret; |
314 | 319 | ||
315 | ADDRLABEL(KERN_DEBUG "%s(prefix=" NIP6_FMT ", prefixlen=%d, ifindex=%d)\n", | 320 | ADDRLABEL(KERN_DEBUG "%s(prefix=" NIP6_FMT ", prefixlen=%d, ifindex=%d)\n", |
316 | __FUNCTION__, | 321 | __func__, |
317 | NIP6(*prefix), prefixlen, | 322 | NIP6(*prefix), prefixlen, |
318 | ifindex); | 323 | ifindex); |
319 | 324 | ||
@@ -330,7 +335,7 @@ static __init int ip6addrlbl_init(void) | |||
330 | int err = 0; | 335 | int err = 0; |
331 | int i; | 336 | int i; |
332 | 337 | ||
333 | ADDRLABEL(KERN_DEBUG "%s()\n", __FUNCTION__); | 338 | ADDRLABEL(KERN_DEBUG "%s()\n", __func__); |
334 | 339 | ||
335 | for (i = 0; i < ARRAY_SIZE(ip6addrlbl_init_table); i++) { | 340 | for (i = 0; i < ARRAY_SIZE(ip6addrlbl_init_table); i++) { |
336 | int ret = ip6addrlbl_add(ip6addrlbl_init_table[i].prefix, | 341 | int ret = ip6addrlbl_add(ip6addrlbl_init_table[i].prefix, |
@@ -359,7 +364,7 @@ static const struct nla_policy ifal_policy[IFAL_MAX+1] = { | |||
359 | static int ip6addrlbl_newdel(struct sk_buff *skb, struct nlmsghdr *nlh, | 364 | static int ip6addrlbl_newdel(struct sk_buff *skb, struct nlmsghdr *nlh, |
360 | void *arg) | 365 | void *arg) |
361 | { | 366 | { |
362 | struct net *net = skb->sk->sk_net; | 367 | struct net *net = sock_net(skb->sk); |
363 | struct ifaddrlblmsg *ifal; | 368 | struct ifaddrlblmsg *ifal; |
364 | struct nlattr *tb[IFAL_MAX+1]; | 369 | struct nlattr *tb[IFAL_MAX+1]; |
365 | struct in6_addr *pfx; | 370 | struct in6_addr *pfx; |
@@ -447,7 +452,7 @@ static int ip6addrlbl_fill(struct sk_buff *skb, | |||
447 | 452 | ||
448 | static int ip6addrlbl_dump(struct sk_buff *skb, struct netlink_callback *cb) | 453 | static int ip6addrlbl_dump(struct sk_buff *skb, struct netlink_callback *cb) |
449 | { | 454 | { |
450 | struct net *net = skb->sk->sk_net; | 455 | struct net *net = sock_net(skb->sk); |
451 | struct ip6addrlbl_entry *p; | 456 | struct ip6addrlbl_entry *p; |
452 | struct hlist_node *pos; | 457 | struct hlist_node *pos; |
453 | int idx = 0, s_idx = cb->args[0]; | 458 | int idx = 0, s_idx = cb->args[0]; |
@@ -485,7 +490,7 @@ static inline int ip6addrlbl_msgsize(void) | |||
485 | static int ip6addrlbl_get(struct sk_buff *in_skb, struct nlmsghdr* nlh, | 490 | static int ip6addrlbl_get(struct sk_buff *in_skb, struct nlmsghdr* nlh, |
486 | void *arg) | 491 | void *arg) |
487 | { | 492 | { |
488 | struct net *net = in_skb->sk->sk_net; | 493 | struct net *net = sock_net(in_skb->sk); |
489 | struct ifaddrlblmsg *ifal; | 494 | struct ifaddrlblmsg *ifal; |
490 | struct nlattr *tb[IFAL_MAX+1]; | 495 | struct nlattr *tb[IFAL_MAX+1]; |
491 | struct in6_addr *addr; | 496 | struct in6_addr *addr; |