ipv6: introdcue __ipv6_addr_needs_scope_id and ipv6_iface_scope_id helper functions
ipv6: introdcue __ipv6_addr_needs_scope_id and ipv6_iface_scope_id helper functions

__ipv6_addr_needs_scope_id checks if an ipv6 address needs to supply
a 'sin6_scope_id != 0'. 'sin6_scope_id != 0' was enforced in case
of link-local addresses. To support interface-local multicast these
checks had to be enhanced and are now consolidated into these new helper
functions.

v2:
a) migrated to struct ipv6_addr_props

v3:
a) reverted changes for ipv6_addr_props
b) test for address type instead of comparing scope

v4:
a) unchanged

Suggested-by: YOSHIFUJI Hideaki <948b80da4254122ea1e8973dd9930d46b7654cf3@linux-ipv6.org>
Cc: YOSHIFUJI Hideaki <948b80da4254122ea1e8973dd9930d46b7654cf3@linux-ipv6.org>
Acked-by: YOSHIFUJI Hideaki <948b80da4254122ea1e8973dd9930d46b7654cf3@linux-ipv6.org>
Signed-off-by: Hannes Frederic Sowa <331be22c6b63ca3e0a03d408c2d906b1b02cd5f2@stressinduktion.org>
Acked-by: YOSHIFUJI Hideaki <948b80da4254122ea1e8973dd9930d46b7654cf3@linux-ipv6.org>
Signed-off-by: David S. Miller <fe08d3c717adf2ae63592e4c9aec6e3e404d8e3e@davemloft.net>

TeamVee-Kanas/android_kernel_samsung_kanas,TeamVee-Kanas/android_kernel_samsung_kanas,KristFoundation/Programs,TeamVee-Kanas/android_kernel_samsung_kanas,KristFoundation/Programs,KristFoundation/Programs,KristFoundation/Programs,TeamVee-Kanas/android_kernel_samsung_kanas,KristFoundation/Programs,TeamVee-Kanas/android_kernel_samsung_kanas,KristFoundation/Programs