From ef801135eb164356efb02313a51afa0b14b6ed3b Mon Sep 17 00:00:00 2001 From: Thomas Haller Date: Mon, 12 May 2014 14:43:30 +0200 Subject: [PATCH 1/1] fixup! introduce ip6 tunnel --- include/Makefile.am | 2 +- lib/route/link/ip6tnl.c | 57 +++++++++++++++++++++++----------------------- tests/.gitignore | 1 + tests/Makefile.am | 2 +- tests/test-create-ip6tnl.c | 1 + 5 files changed, 32 insertions(+), 31 deletions(-) diff --git a/include/Makefile.am b/include/Makefile.am index 3a3ba93..4c66e8c 100644 --- a/include/Makefile.am +++ b/include/Makefile.am @@ -53,11 +53,11 @@ nobase_libnlinclude_HEADERS = \ netlink/route/link/vlan.h \ netlink/route/link/vxlan.h \ netlink/route/link/veth.h \ + netlink/route/link/ip6tnl.h netlink/route/link/ipgre.h \ netlink/route/link/ipip.h \ netlink/route/link/ipvti.h \ netlink/route/link/sit.h \ - netlink/route/link/ip6tnl.h netlink/route/qdisc/cbq.h \ netlink/route/qdisc/dsmark.h \ netlink/route/qdisc/fifo.h \ diff --git a/lib/route/link/ip6tnl.c b/lib/route/link/ip6tnl.c index 3d0b128..6d8b2f8 100644 --- a/lib/route/link/ip6tnl.c +++ b/lib/route/link/ip6tnl.c @@ -44,16 +44,16 @@ struct ip6_tnl_info { - uint8_t ttl; - uint8_t tos; - uint8_t encap_limit; - uint8_t proto; - uint32_t flags; - uint32_t link; - uint32_t flowinfo; - struct in6_addr local; - struct in6_addr remote; - uint32_t ip6_tnl_mask; + uint8_t ttl; + uint8_t tos; + uint8_t encap_limit; + uint8_t proto; + uint32_t flags; + uint32_t link; + uint32_t flowinfo; + struct in6_addr local; + struct in6_addr remote; + uint32_t ip6_tnl_mask; }; static struct nla_policy ip6_tnl_policy[IFLA_IPTUN_MAX + 1] = { @@ -66,7 +66,6 @@ static struct nla_policy ip6_tnl_policy[IFLA_IPTUN_MAX + 1] = { [IFLA_IPTUN_FLOWINFO] = { .type = NLA_U32 }, [IFLA_IPTUN_FLAGS] = { .type = NLA_U32 }, [IFLA_IPTUN_PROTO] = { .type = NLA_U8 }, - }; static int ip6_tnl_alloc(struct rtnl_link *link) @@ -112,7 +111,7 @@ static int ip6_tnl_parse(struct rtnl_link *link, struct nlattr *data, } if (tb[IFLA_IPTUN_REMOTE]) { - nla_memcpy(&ip6_tnl->remote, tb[IFLA_IPTUN_REMOTE], sizeof(struct in6_addr)); + nla_memcpy(&ip6_tnl->remote, tb[IFLA_IPTUN_REMOTE], sizeof(struct in6_addr)); ip6_tnl->ip6_tnl_mask |= IP6_TNL_ATTR_REMOTE; } @@ -148,7 +147,7 @@ static int ip6_tnl_parse(struct rtnl_link *link, struct nlattr *data, err = 0; - errout: +errout: return err; } @@ -193,8 +192,7 @@ static int ip6_tnl_put_attrs(struct nl_msg *msg, struct rtnl_link *link) nla_nest_end(msg, data); - nla_put_failure: - +nla_put_failure: return 0; } @@ -282,7 +280,8 @@ static int ip6_tnl_clone(struct rtnl_link *dst, struct rtnl_link *src) dst->l_info = NULL; err = rtnl_link_set_type(dst, "ip6tnl"); - if (err < 0) return err; + if (err < 0) + return err; ip6_tnl_dst = dst->l_info; @@ -375,7 +374,7 @@ int rtnl_link_ip6_tnl_add(struct nl_sock *sk, const char *name) * * @return 0 on success or a negative error code */ -int rtnl_link_ip6_tnl_set_link(struct rtnl_link *link, uint32_t index) +int rtnl_link_ip6_tnl_set_link(struct rtnl_link *link, uint32_t index) { struct ip6_tnl_info *ip6_tnl = link->l_info; @@ -545,7 +544,7 @@ uint8_t rtnl_link_ip6_tnl_get_tos(struct rtnl_link *link) /** * Set IP6_TNL tunnel path MTU discovery * @arg link Link object - * @arg encap_limit + * @arg encap_limit encaplimit value * * @return 0 on success or a negative error code */ @@ -577,20 +576,20 @@ uint8_t rtnl_link_ip6_tnl_get_encaplimit(struct rtnl_link *link) } /** - * Set IP6_TNL tunnel flags + * Set IP6_TNL tunnel flowinfo * @arg link Link object - * @arg flags tunnel flags + * @arg flowinfo flowinfo value * * @return 0 on success or a negative error code */ -int rtnl_link_ip6_tnl_set_flags(struct rtnl_link *link, uint32_t flags) +int rtnl_link_ip6_tnl_set_flowinfo(struct rtnl_link *link, uint32_t flowinfo) { struct ip6_tnl_info *ip6_tnl = link->l_info; IS_IP6_TNL_LINK_ASSERT(link); - ip6_tnl->flags = flags; - ip6_tnl->ip6_tnl_mask |= IP6_TNL_ATTR_FLAGS; + ip6_tnl->flowinfo = flowinfo; + ip6_tnl->ip6_tnl_mask |= IP6_TNL_ATTR_FLOWINFO; return 0; } @@ -611,20 +610,20 @@ uint32_t rtnl_link_ip6_tnl_get_flowinfo(struct rtnl_link *link) } /** - * Set IP6_TNL tunnel flowinfo + * Set IP6_TNL tunnel flags * @arg link Link object - * @arg flowinfo + * @arg flags tunnel flags * * @return 0 on success or a negative error code */ -int rtnl_link_ip6_tnl_set_flowinfo(struct rtnl_link *link, uint32_t flowinfo) +int rtnl_link_ip6_tnl_set_flags(struct rtnl_link *link, uint32_t flags) { struct ip6_tnl_info *ip6_tnl = link->l_info; IS_IP6_TNL_LINK_ASSERT(link); - - ip6_tnl->flowinfo = flowinfo; - ip6_tnl->ip6_tnl_mask |= IP6_TNL_ATTR_FLOWINFO; + + ip6_tnl->flags = flags; + ip6_tnl->ip6_tnl_mask |= IP6_TNL_ATTR_FLAGS; return 0; } diff --git a/tests/.gitignore b/tests/.gitignore index d9cee77..6b77cac 100644 --- a/tests/.gitignore +++ b/tests/.gitignore @@ -7,6 +7,7 @@ /test-complex-HTB-with-hash-filters /test-create-bond /test-create-bridge +/test-create-ip6tnl /test-create-ipgre /test-create-ipip /test-create-ipvti diff --git a/tests/Makefile.am b/tests/Makefile.am index 56c7a94..255033d 100644 --- a/tests/Makefile.am +++ b/tests/Makefile.am @@ -24,11 +24,11 @@ check_PROGRAMS = \ test-create-vxlan \ test-create-veth \ test-create-bridge \ + test-create-ip6tnl \ test-create-ipgre \ test-create-ipip \ test-create-ipvti \ test-create-sit \ - test-create-ip6tnl \ test-delete-link \ test-socket-creation \ test-complex-HTB-with-hash-filters \ diff --git a/tests/test-create-ip6tnl.c b/tests/test-create-ip6tnl.c index 49715f6..b36ab3d 100644 --- a/tests/test-create-ip6tnl.c +++ b/tests/test-create-ip6tnl.c @@ -1,4 +1,5 @@ #include +#include int main(int argc, char *argv[]) { -- 1.9.0