hi Ankur, Looks good, but for a few minor comments. On Aug 20, 2014, at 9:46 AM, Ankur Sharma <ankursha...@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 _______________________________________________ dev mailing list dev@openvswitch.org http://openvswitch.org/mailman/listinfo/dev