/* * netsniff-ng - the packet sniffing beast * Copyright 2009, 2010 Daniel Borkmann. * Subject to the GPL, version 2. */ #include #include #include #include "str.h" #include "die.h" #include "xmalloc.h" size_t strlcpy(char *dest, const char *src, size_t size) { size_t ret = strlen(src); if (size) { size_t len = (ret >= size) ? size - 1 : ret; memcpy(dest, src, len); dest[len] = '\0'; } return ret; } static inline int vslprintf(char *dst, size_t size, const char *fmt, va_list ap) { int ret; ret = vsnprintf(dst, size, fmt, ap); dst[size - 1] = '\0'; return ret; } int slprintf(char *dst, size_t size, const char *fmt, ...) { int ret; va_list ap; va_start(ap, fmt); ret = vslprintf(dst, size, fmt, ap); va_end(ap); return ret; } int slprintf_nocheck(char *dst, size_t size, const char *fmt, ...) { int ret; va_list ap; va_start(ap, fmt); ret = vslprintf(dst, size, fmt, ap); va_end(ap); return ret; } noinline void *xmemset(void *s, int c, size_t n) { size_t i; uint8_t *ptr = s; for (i = 0; i < n; ++i) ptr[i] = (uint8_t) c; return ptr; } char *strtrim_right(char *p, char c) { char *end; size_t len; len = strlen(p); while (*p && len) { end = p + len - 1; if (c == *end) *end = 0; else break; len = strlen(p); } return p; } char *argv2str(int startind, int argc, char **argv) { off_t offset = 0; char *str = NULL; int ret, i; for (i = startind; i < argc; ++i) { size_t alen = strlen(argv[i]) + 2; size_t slen = str ? strlen(str) : 0; str = xrealloc(str, slen + alen); ret = slprintf(str + offset, strlen(argv[i]) + 2, "%s ", argv[i]); if (ret < 0) panic("Cannot concatenate string!\n"); else offset += ret; } return str; } /tree/?id=a547224dceed4645139f7eff72ff51adb9938bcb'>treecommitdiff
diff options
context:
space:
mode:
authorAlexander Duyck <aduyck@mirantis.com>2016-06-15 14:42:11 -0700
committerDavid S. Miller <davem@davemloft.net>2016-06-16 14:24:59 -0700
commita547224dceed4645139f7eff72ff51adb9938bcb (patch)
tree6f898c46120f489d7eb6073d70985df3a1122d24
parent17471c7ba5115ed724d624577b21c166d2194272 (diff)
mlx4e: Do not attempt to offload VXLAN ports that are unrecognized
The mlx4e driver does not support more than one port for VXLAN offload. As such expecting the hardware to offload other ports is invalid since it appears the parsing logic is used to perform Tx checksum and segmentation offloads. Use the vxlan_port number to determine in which cases we can apply the offload and in which cases we can not. Signed-off-by: Alexander Duyck <aduyck@mirantis.com> Reviewed-by: Tariq Toukan <tariqt@mellanox.com> Signed-off-by: David S. Miller <davem@davemloft.net>