[ovs-dev] [PATCH 3/3] datapath-windows: remove reference to OvsNetlink.h

Nithin Raju nithin at vmware.com
Thu Aug 21 16:28:10 UTC 2014


hi Ankur,
Looks good, but for a few minor comments.

On Aug 20, 2014, at 9:46 AM, Ankur Sharma <ankursharma at vmware.com> wrote:

> In this patch we remove reference to OvsNetlink.h.
> Since we do not refer to lib/netlink-protocol.h anymore,
> hence removed the WIN_DP based check.
> 
> Change-Id: I281a0c6478e3de2e9b04c988bea57b06822a504e

Like other patches, nuke the Change-Id.


> ---
> datapath-windows/automake.mk          |   5 +-
> datapath-windows/include/OvsNetlink.h | 174 ----------------------------------
> lib/netlink-protocol.h                |   6 --
> 3 files changed, 2 insertions(+), 183 deletions(-)
> delete mode 100644 datapath-windows/include/OvsNetlink.h
> 
> diff --git a/datapath-windows/automake.mk b/datapath-windows/automake.mk
> index 45348b7..73bc58e 100644
> --- a/datapath-windows/automake.mk
> +++ b/datapath-windows/automake.mk
> @@ -4,10 +4,9 @@ EXTRA_DIST += \
> 	datapath-windows/Package/package.VcxProj \
> 	datapath-windows/Package/package.VcxProj.user \
> 	datapath-windows/include/OvsDpInterfaceExt.h \
> -	datapath-windows/include/OvsNetlink.h \
> -	datapath-windows/include/OvsPub.h
> -    datapath-windows/ovsext/Netlink.c \
>    datapath-windows/ovsext/Netlink.h \
> +    datapath-windows/ovsext/Netlink.c \
> +	datapath-windows/include/OvsPub.h
>    datapath-windows/include/NetlinkProto.h \

You might need a '\' after OvsPub.h. Also, OvsPub.h should be after NetlinkProto.h in terms of alphabetical order.

> 	datapath-windows/misc/install.cmd \
> 	datapath-windows/misc/uninstall.cmd \


> diff --git a/datapath-windows/include/OvsNetlink.h b/datapath-windows/include/OvsNetlink.h
> deleted file mode 100644
> index 8a9fc55..0000000
> --- a/datapath-windows/include/OvsNetlink.h
> +++ /dev/null
> @@ -1,174 +0,0 @@
> -/*
> - * Copyright (c) 2008, 2009, 2010, 2011, 2013, 2014 Nicira, Inc.
> - *
> - * Licensed under the Apache License, Version 2.0 (the "License");
> - * you may not use this file except in compliance with the License.
> - * You may obtain a copy of the License at:
> - *
> - *     https://urldefense.proofpoint.com/v1/url?u=http://www.apache.org/licenses/LICENSE-2.0&k=oIvRg1%2BdGAgOoM1BIlLLqw%3D%3D%0A&r=ubrOpIWavCMqX4l4j1LEVpTfDj%2FD5Qyn8KCoJIBGvzo%3D%0A&m=WwUhp4u8lTynDN2A8yd8NUR0w78OFaRuX54chtSWtVQ%3D%0A&s=1a6a82a0e5ad363ba432178ad4cb6465bfdb36fbea859d2583dfebf1c537cc0e
> - *
> - * Unless required by applicable law or agreed to in writing, software
> - * distributed under the License is distributed on an "AS IS" BASIS,
> - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
> - * See the License for the specific language governing permissions and
> - * limitations under the License.
> - */
> -
> -#ifndef __OVS_NETLINK_H_
> -#define __OVS_NETLINK_H_ 1
> -
> -#include "lib/netlink-protocol.h"
> -
> -/* Returns X / Y, rounding up.  X must be nonnegative to round correctly. */
> -#define DIV_ROUND_UP(X, Y) (((X) + ((Y) - 1)) / (Y))
> -
> -/* Returns X rounded up to the nearest multiple of Y. */
> -#define ROUND_UP(X, Y) (DIV_ROUND_UP(X, Y) * (Y))
> -
> -static __inline int
> -nl_attr_is_valid(const struct nlattr *nla, size_t maxlen)
> -{
> -    return (maxlen >= sizeof *nla
> -            && nla->nla_len >= sizeof *nla
> -            && nla->nla_len <= maxlen);
> -}
> -
> -static __inline size_t
> -nl_attr_len_pad(const struct nlattr *nla, size_t maxlen)
> -{
> -    size_t len = NLA_ALIGN(nla->nla_len);
> -
> -    return len <= maxlen ? len : nla->nla_len;
> -}
> -
> -/* This macro is careful to check for attributes with bad lengths. */
> -#define NL_ATTR_FOR_EACH(ITER, LEFT, ATTRS, ATTRS_LEN)                  \
> -    for ((ITER) = (ATTRS), (LEFT) = (ATTRS_LEN);                        \
> -         nl_attr_is_valid(ITER, LEFT);                                  \
> -         (LEFT) -= nl_attr_len_pad(ITER, LEFT), (ITER) = nl_attr_next(ITER))
> -
> -/* This macro does not check for attributes with bad lengths.  It should only
> - * be used with messages from trusted sources or with messages that have
> - * already been validated (e.g. with NL_ATTR_FOR_EACH).  */
> -#define NL_ATTR_FOR_EACH_UNSAFE(ITER, LEFT, ATTRS, ATTRS_LEN)           \
> -    for ((ITER) = (ATTRS), (LEFT) = (ATTRS_LEN);                        \
> -         (LEFT) > 0;                                                    \
> -         (LEFT) -= NLA_ALIGN((ITER)->nla_len), (ITER) = nl_attr_next(ITER))
> -
> -/* These were introduced all together in 2.6.24. */
> -#ifndef NLA_TYPE_MASK
> -#define NLA_F_NESTED        (1 << 15)
> -#define NLA_F_NET_BYTEORDER (1 << 14)
> -#define NLA_TYPE_MASK       ~(NLA_F_NESTED | NLA_F_NET_BYTEORDER)
> -#endif
> -
> -/* Netlink attribute iteration. */
> -static __inline struct nlattr *
> -nl_attr_next(const struct nlattr *nla)
> -{
> -    return (struct nlattr *) ((uint8_t *) nla + NLA_ALIGN(nla->nla_len));
> -}
> -
> - /* Returns the bits of 'nla->nla_type' that are significant for determining
> -  * its type. */
> -static __inline int
> -nl_attr_type(const struct nlattr *nla)
> -{
> -   return nla->nla_type & NLA_TYPE_MASK;
> -}
> -
> -static __inline void *
> -nl_attr_data(const struct nlattr *nla)
> -{
> -    return ((char *)nla + NLA_HDRLEN);
> -}
> -
> -/* Returns the number of bytes in the payload of attribute 'nla'. */
> -static __inline uint32_t
> -nl_attr_get_size(const struct nlattr *nla)
> -{
> -    return nla->nla_len - NLA_HDRLEN;
> -}
> -
> -/* Returns the first byte in the payload of attribute 'nla'. */
> -static __inline const void *
> -nl_attr_get(const struct nlattr *nla)
> -{
> -    ASSERT(nla->nla_len >= NLA_HDRLEN);
> -    return nla + 1;
> -}
> -
> -#define NL_ATTR_GET_AS(NLA, TYPE) \
> -        (*(TYPE*) nl_attr_get_unspec(nla, sizeof(TYPE)))
> -
> -/* Asserts that 'nla''s payload is at least 'size' bytes long, and returns the
> - * first byte of the payload. */
> -static const void *
> -nl_attr_get_unspec(const struct nlattr *nla, size_t size)
> -{
> -    DBG_UNREFERENCED_PARAMETER(size);
> -    ASSERT(nla->nla_len >= NLA_HDRLEN + size);
> -    return nla + 1;
> -}
> -
> -/* Returns the 64-bit network byte order value in 'nla''s payload.
> - *
> - * Asserts that 'nla''s payload is at least 8 bytes long. */
> -static __inline __be64
> -nl_attr_get_be64(const struct nlattr *nla)
> -{
> -    return NL_ATTR_GET_AS(nla, __be64);
> -}
> -
> -/* Returns the 32-bit network byte order value in 'nla''s payload.
> - *
> - * Asserts that 'nla''s payload is at least 4 bytes long. */
> -static __inline __be32
> -nl_attr_get_be32(const struct nlattr *nla)
> -{
> -    return NL_ATTR_GET_AS(nla, __be32);
> -}
> -
> -/* Returns the 8-bit value in 'nla''s payload. */
> -static __inline uint8_t
> -nl_attr_get_u8(const struct nlattr *nla)
> -{
> -    return NL_ATTR_GET_AS(nla, uint8_t);
> -}
> -
> -
> -/* Returns the 32-bit host byte order value in 'nla''s payload.
> - *
> - * Asserts that 'nla''s payload is at least 4 bytes long. */
> -static __inline uint32_t
> -nl_attr_get_u32(const struct nlattr *nla)
> -{
> -    return NL_ATTR_GET_AS(nla, uint32_t);
> -}
> -
> -
> -static __inline const struct nlattr *
> -nl_attr_find__(const struct nlattr *attrs, size_t size, uint16_t type)
> -{
> -    const struct nlattr *nla;
> -    size_t left;
> -
> -    NL_ATTR_FOR_EACH (nla, left, attrs, size) {
> -        if (nl_attr_type(nla) == type) {
> -            return nla;
> -        }
> -    }
> -    return NULL;
> -}
> -
> -/* Returns the first Netlink attribute within 'nla' with the specified
> - * 'type'.
> - *
> - * This function does not validate the attribute's length. */
> -static __inline const struct nlattr *
> -nl_attr_find_nested(const struct nlattr *nla, uint16_t type)
> -{
> -    return nl_attr_find__(nl_attr_get(nla), nl_attr_get_size(nla), type);
> -}
> -
> -#endif /* __OVS_NETLINK_H_ */

LG

> diff --git a/lib/netlink-protocol.h b/lib/netlink-protocol.h
> index 5fbcce1..8938055 100644
> --- a/lib/netlink-protocol.h
> +++ b/lib/netlink-protocol.h
> @@ -29,15 +29,9 @@
> * on other platforms it directly defines the structures and macros itself.
> */
> 
> -/* This file is included by windows driver as well (as of now).
> - * It does not have access to following header files,
> - * hence do not include them for windows driver.
> - */
> -#ifndef OVS_WIN_DP
> #include <stdint.h>
> #include <sys/socket.h>
> #include "util.h"
> -#endif
> 
> #ifdef HAVE_NETLINK
> #include <linux/netlink.h>

LG

thanks,
Nithin


More information about the dev mailing list