Merge branch 'iproute2-master' into iproute2-next
Signed-off-by: David Ahern <dsahern@gmail.com>
This commit is contained in:
commit
0868c8ab07
|
|
@ -23,12 +23,11 @@ int preferred_family = AF_UNSPEC;
|
|||
int oneline;
|
||||
int show_stats;
|
||||
int show_details;
|
||||
int show_pretty;
|
||||
int color;
|
||||
static int color;
|
||||
int compress_vlans;
|
||||
int json;
|
||||
int timestamp;
|
||||
char *batch_file;
|
||||
static const char *batch_file;
|
||||
int force;
|
||||
|
||||
static void usage(void) __attribute__((noreturn));
|
||||
|
|
|
|||
|
|
@ -27,7 +27,7 @@
|
|||
|
||||
|
||||
static void usage(void) __attribute__((noreturn));
|
||||
int prefix_banner;
|
||||
static int prefix_banner;
|
||||
|
||||
static void usage(void)
|
||||
{
|
||||
|
|
|
|||
71
genl/ctrl.c
71
genl/ctrl.c
|
|
@ -38,77 +38,6 @@ static int usage(void)
|
|||
return -1;
|
||||
}
|
||||
|
||||
int genl_ctrl_resolve_family(const char *family)
|
||||
{
|
||||
struct rtnl_handle rth;
|
||||
int ret = 0;
|
||||
struct {
|
||||
struct nlmsghdr n;
|
||||
struct genlmsghdr g;
|
||||
char buf[4096];
|
||||
} req = {
|
||||
.n.nlmsg_len = NLMSG_LENGTH(GENL_HDRLEN),
|
||||
.n.nlmsg_flags = NLM_F_REQUEST | NLM_F_ACK,
|
||||
.n.nlmsg_type = GENL_ID_CTRL,
|
||||
.g.cmd = CTRL_CMD_GETFAMILY,
|
||||
};
|
||||
struct nlmsghdr *nlh = &req.n;
|
||||
struct genlmsghdr *ghdr = &req.g;
|
||||
struct nlmsghdr *answer = NULL;
|
||||
|
||||
if (rtnl_open_byproto(&rth, 0, NETLINK_GENERIC) < 0) {
|
||||
fprintf(stderr, "Cannot open generic netlink socket\n");
|
||||
exit(1);
|
||||
}
|
||||
|
||||
addattr_l(nlh, 128, CTRL_ATTR_FAMILY_NAME, family, strlen(family) + 1);
|
||||
|
||||
if (rtnl_talk(&rth, nlh, &answer) < 0) {
|
||||
fprintf(stderr, "Error talking to the kernel\n");
|
||||
goto errout;
|
||||
}
|
||||
|
||||
{
|
||||
struct rtattr *tb[CTRL_ATTR_MAX + 1];
|
||||
int len = answer->nlmsg_len;
|
||||
struct rtattr *attrs;
|
||||
|
||||
if (answer->nlmsg_type != GENL_ID_CTRL) {
|
||||
fprintf(stderr, "Not a controller message, nlmsg_len=%d "
|
||||
"nlmsg_type=0x%x\n", answer->nlmsg_len, answer->nlmsg_type);
|
||||
goto errout;
|
||||
}
|
||||
|
||||
if (ghdr->cmd != CTRL_CMD_NEWFAMILY) {
|
||||
fprintf(stderr, "Unknown controller command %d\n", ghdr->cmd);
|
||||
goto errout;
|
||||
}
|
||||
|
||||
len -= NLMSG_LENGTH(GENL_HDRLEN);
|
||||
|
||||
if (len < 0) {
|
||||
fprintf(stderr, "wrong controller message len %d\n", len);
|
||||
free(answer);
|
||||
return -1;
|
||||
}
|
||||
|
||||
attrs = (struct rtattr *) ((char *) answer + NLMSG_LENGTH(GENL_HDRLEN));
|
||||
parse_rtattr(tb, CTRL_ATTR_MAX, attrs, len);
|
||||
|
||||
if (tb[CTRL_ATTR_FAMILY_ID] == NULL) {
|
||||
fprintf(stderr, "Missing family id TLV\n");
|
||||
goto errout;
|
||||
}
|
||||
|
||||
ret = rta_getattr_u16(tb[CTRL_ATTR_FAMILY_ID]);
|
||||
}
|
||||
|
||||
errout:
|
||||
free(answer);
|
||||
rtnl_close(&rth);
|
||||
return ret;
|
||||
}
|
||||
|
||||
static void print_ctrl_cmd_flags(FILE *fp, __u32 fl)
|
||||
{
|
||||
fprintf(fp, "\n\t\tCapabilities (0x%x):\n ", fl);
|
||||
|
|
|
|||
|
|
@ -13,6 +13,4 @@ struct genl_util
|
|||
int (*print_genlopt)(struct nlmsghdr *n, void *arg);
|
||||
};
|
||||
|
||||
int genl_ctrl_resolve_family(const char *family);
|
||||
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -20,10 +20,8 @@ enum color_opt {
|
|||
COLOR_OPT_ALWAYS = 2
|
||||
};
|
||||
|
||||
void enable_color(void);
|
||||
bool check_enable_color(int color, int json);
|
||||
bool matches_color(const char *arg, int *val);
|
||||
void set_color_palette(void);
|
||||
int color_fprintf(FILE *fp, enum color_attr attr, const char *fmt, ...);
|
||||
enum color_attr ifa_family_color(__u8 ifa_family);
|
||||
enum color_attr oper_state_color(__u8 state);
|
||||
|
|
|
|||
|
|
@ -102,8 +102,6 @@ struct rtnl_dump_filter_arg {
|
|||
__u16 nc_flags;
|
||||
};
|
||||
|
||||
int rtnl_dump_filter_l(struct rtnl_handle *rth,
|
||||
const struct rtnl_dump_filter_arg *arg);
|
||||
int rtnl_dump_filter_nc(struct rtnl_handle *rth,
|
||||
rtnl_filter_t filter,
|
||||
void *arg, __u16 nc_flags);
|
||||
|
|
@ -115,9 +113,6 @@ int rtnl_talk(struct rtnl_handle *rtnl, struct nlmsghdr *n,
|
|||
int rtnl_talk_iov(struct rtnl_handle *rtnl, struct iovec *iovec, size_t iovlen,
|
||||
struct nlmsghdr **answer)
|
||||
__attribute__((warn_unused_result));
|
||||
int rtnl_talk_extack(struct rtnl_handle *rtnl, struct nlmsghdr *n,
|
||||
struct nlmsghdr **answer, nl_ext_ack_fn_t errfn)
|
||||
__attribute__((warn_unused_result));
|
||||
int rtnl_talk_suppress_rtnl_errmsg(struct rtnl_handle *rtnl, struct nlmsghdr *n,
|
||||
struct nlmsghdr **answer)
|
||||
__attribute__((warn_unused_result));
|
||||
|
|
@ -152,8 +147,6 @@ int rta_addattr_l(struct rtattr *rta, int maxlen, int type,
|
|||
int parse_rtattr(struct rtattr *tb[], int max, struct rtattr *rta, int len);
|
||||
int parse_rtattr_flags(struct rtattr *tb[], int max, struct rtattr *rta,
|
||||
int len, unsigned short flags);
|
||||
int parse_rtattr_byindex(struct rtattr *tb[], int max,
|
||||
struct rtattr *rta, int len);
|
||||
struct rtattr *parse_rtattr_one(int type, struct rtattr *rta, int len);
|
||||
int __parse_rtattr_nested_compat(struct rtattr *tb[], int max, struct rtattr *rta, int len);
|
||||
|
||||
|
|
|
|||
|
|
@ -12,6 +12,5 @@ int ll_index_to_flags(unsigned idx);
|
|||
unsigned namehash(const char *str);
|
||||
|
||||
const char *ll_idx_n2a(unsigned int idx);
|
||||
unsigned int ll_idx_a2n(const char *name);
|
||||
|
||||
#endif /* __LL_MAP_H__ */
|
||||
|
|
|
|||
|
|
@ -22,6 +22,5 @@ int db_names_load(struct db_names *db, const char *path);
|
|||
void db_names_free(struct db_names *db);
|
||||
|
||||
char *id_to_name(struct db_names *db, int id, char *name);
|
||||
int name_to_id(struct db_names *db, int *id, const char *name);
|
||||
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -157,9 +157,7 @@ int get_u64(__u64 *val, const char *arg, int base);
|
|||
int get_u32(__u32 *val, const char *arg, int base);
|
||||
int get_s32(__s32 *val, const char *arg, int base);
|
||||
int get_u16(__u16 *val, const char *arg, int base);
|
||||
int get_s16(__s16 *val, const char *arg, int base);
|
||||
int get_u8(__u8 *val, const char *arg, int base);
|
||||
int get_s8(__s8 *val, const char *arg, int base);
|
||||
int get_be64(__be64 *val, const char *arg, int base);
|
||||
int get_be32(__be32 *val, const char *arg, int base);
|
||||
int get_be16(__be16 *val, const char *arg, int base);
|
||||
|
|
@ -172,7 +170,6 @@ __u8 *hexstring_a2n(const char *str, __u8 *buf, int blen, unsigned int *len);
|
|||
int addr64_n2a(__u64 addr, char *buff, size_t len);
|
||||
|
||||
int af_bit_len(int af);
|
||||
int af_byte_len(int af);
|
||||
|
||||
const char *format_host_r(int af, int len, const void *addr,
|
||||
char *buf, int buflen);
|
||||
|
|
@ -326,8 +323,6 @@ void drop_cap(void);
|
|||
|
||||
int get_time(unsigned int *time, const char *str);
|
||||
int get_time64(__s64 *time, const char *str);
|
||||
void print_time(char *buf, int len, __u32 time);
|
||||
void print_time64(char *buf, int len, __s64 time);
|
||||
char *sprint_time(__u32 time, char *buf);
|
||||
char *sprint_time64(__s64 time, char *buf);
|
||||
|
||||
|
|
|
|||
|
|
@ -1149,7 +1149,7 @@ static unsigned int get_ifa_flags(struct ifaddrmsg *ifa,
|
|||
}
|
||||
|
||||
/* Mapping from argument to address flag mask */
|
||||
struct {
|
||||
static const struct {
|
||||
const char *name;
|
||||
unsigned long value;
|
||||
} ifa_flag_names[] = {
|
||||
|
|
@ -1211,38 +1211,35 @@ static void print_ifa_flags(FILE *fp, const struct ifaddrmsg *ifa,
|
|||
|
||||
static int get_filter(const char *arg)
|
||||
{
|
||||
bool inv = false;
|
||||
unsigned int i;
|
||||
|
||||
if (arg[0] == '-') {
|
||||
inv = true;
|
||||
arg++;
|
||||
}
|
||||
|
||||
/* Special cases */
|
||||
if (strcmp(arg, "dynamic") == 0) {
|
||||
filter.flags &= ~IFA_F_PERMANENT;
|
||||
filter.flagmask |= IFA_F_PERMANENT;
|
||||
inv = !inv;
|
||||
arg = "permanent";
|
||||
} else if (strcmp(arg, "primary") == 0) {
|
||||
filter.flags &= ~IFA_F_SECONDARY;
|
||||
filter.flagmask |= IFA_F_SECONDARY;
|
||||
} else if (*arg == '-') {
|
||||
for (i = 0; i < ARRAY_SIZE(ifa_flag_names); i++) {
|
||||
if (strcmp(arg + 1, ifa_flag_names[i].name))
|
||||
continue;
|
||||
|
||||
filter.flags &= ifa_flag_names[i].value;
|
||||
filter.flagmask |= ifa_flag_names[i].value;
|
||||
return 0;
|
||||
}
|
||||
|
||||
return -1;
|
||||
} else {
|
||||
for (i = 0; i < ARRAY_SIZE(ifa_flag_names); i++) {
|
||||
if (strcmp(arg, ifa_flag_names[i].name))
|
||||
continue;
|
||||
filter.flags |= ifa_flag_names[i].value;
|
||||
filter.flagmask |= ifa_flag_names[i].value;
|
||||
return 0;
|
||||
}
|
||||
return -1;
|
||||
inv = !inv;
|
||||
arg = "secondary";
|
||||
}
|
||||
|
||||
return 0;
|
||||
for (i = 0; i < ARRAY_SIZE(ifa_flag_names); i++) {
|
||||
if (strcmp(arg, ifa_flag_names[i].name))
|
||||
continue;
|
||||
|
||||
if (inv)
|
||||
filter.flags &= ~ifa_flag_names[i].value;
|
||||
else
|
||||
filter.flags |= ifa_flag_names[i].value;
|
||||
filter.flagmask |= ifa_flag_names[i].value;
|
||||
return 0;
|
||||
}
|
||||
return -1;
|
||||
}
|
||||
|
||||
static int ifa_label_match_rta(int ifindex, const struct rtattr *rta)
|
||||
|
|
|
|||
|
|
@ -24,7 +24,7 @@
|
|||
#include "ip_common.h"
|
||||
|
||||
static void usage(void) __attribute__((noreturn));
|
||||
int prefix_banner;
|
||||
static int prefix_banner;
|
||||
int listen_all_nsid;
|
||||
|
||||
static void usage(void)
|
||||
|
|
|
|||
|
|
@ -35,6 +35,7 @@ static int usage(void)
|
|||
fprintf(stderr, " ip [-all] netns exec [NAME] cmd ...\n");
|
||||
fprintf(stderr, " ip netns monitor\n");
|
||||
fprintf(stderr, " ip netns list-id\n");
|
||||
fprintf(stderr, "NETNSID := auto | POSITIVE-INT\n");
|
||||
exit(-1);
|
||||
}
|
||||
|
||||
|
|
@ -739,8 +740,7 @@ static int netns_set(int argc, char **argv)
|
|||
{
|
||||
char netns_path[PATH_MAX];
|
||||
const char *name;
|
||||
unsigned int nsid;
|
||||
int netns;
|
||||
int netns, nsid;
|
||||
|
||||
if (argc < 1) {
|
||||
fprintf(stderr, "No netns name specified\n");
|
||||
|
|
@ -754,8 +754,10 @@ static int netns_set(int argc, char **argv)
|
|||
/* If a negative nsid is specified the kernel will select the nsid. */
|
||||
if (strcmp(argv[1], "auto") == 0)
|
||||
nsid = -1;
|
||||
else if (get_unsigned(&nsid, argv[1], 0))
|
||||
else if (get_integer(&nsid, argv[1], 0))
|
||||
invarg("Invalid \"netnsid\" value\n", argv[1]);
|
||||
else if (nsid < 0)
|
||||
invarg("\"netnsid\" value should be >= 0\n", argv[1]);
|
||||
|
||||
snprintf(netns_path, sizeof(netns_path), "%s/%s", NETNS_RUN_DIR, name);
|
||||
netns = open(netns_path, O_RDONLY | O_CLOEXEC);
|
||||
|
|
|
|||
|
|
@ -860,7 +860,7 @@ static int parse_encap_ila(struct rtattr *rta, size_t len,
|
|||
|
||||
argc--; argv++;
|
||||
|
||||
if (rta_addattr64(rta, 1024, ILA_ATTR_LOCATOR, locator))
|
||||
if (rta_addattr64(rta, len, ILA_ATTR_LOCATOR, locator))
|
||||
return -1;
|
||||
|
||||
while (argc > 0) {
|
||||
|
|
@ -874,7 +874,7 @@ static int parse_encap_ila(struct rtattr *rta, size_t len,
|
|||
invarg("\"csum-mode\" value is invalid\n",
|
||||
*argv);
|
||||
|
||||
ret = rta_addattr8(rta, 1024, ILA_ATTR_CSUM_MODE,
|
||||
ret = rta_addattr8(rta, len, ILA_ATTR_CSUM_MODE,
|
||||
(__u8)csum_mode);
|
||||
|
||||
argc--; argv++;
|
||||
|
|
@ -888,7 +888,7 @@ static int parse_encap_ila(struct rtattr *rta, size_t len,
|
|||
invarg("\"ident-type\" value is invalid\n",
|
||||
*argv);
|
||||
|
||||
ret = rta_addattr8(rta, 1024, ILA_ATTR_IDENT_TYPE,
|
||||
ret = rta_addattr8(rta, len, ILA_ATTR_IDENT_TYPE,
|
||||
(__u8)ident_type);
|
||||
|
||||
argc--; argv++;
|
||||
|
|
@ -902,7 +902,7 @@ static int parse_encap_ila(struct rtattr *rta, size_t len,
|
|||
invarg("\"hook-type\" value is invalid\n",
|
||||
*argv);
|
||||
|
||||
ret = rta_addattr8(rta, 1024, ILA_ATTR_HOOK_TYPE,
|
||||
ret = rta_addattr8(rta, len, ILA_ATTR_HOOK_TYPE,
|
||||
(__u8)hook_type);
|
||||
|
||||
argc--; argv++;
|
||||
|
|
@ -1034,7 +1034,7 @@ static int parse_encap_bpf(struct rtattr *rta, size_t len, int *argcp,
|
|||
if (get_unsigned(&headroom, *argv, 0) || headroom == 0)
|
||||
invarg("headroom is invalid\n", *argv);
|
||||
if (!headroom_set)
|
||||
rta_addattr32(rta, 1024, LWT_BPF_XMIT_HEADROOM,
|
||||
rta_addattr32(rta, len, LWT_BPF_XMIT_HEADROOM,
|
||||
headroom);
|
||||
headroom_set = 1;
|
||||
} else if (strcmp(*argv, "help") == 0) {
|
||||
|
|
@ -1075,7 +1075,7 @@ int lwt_parse_encap(struct rtattr *rta, size_t len, int *argcp, char ***argvp)
|
|||
exit(-1);
|
||||
}
|
||||
|
||||
nest = rta_nest(rta, 1024, RTA_ENCAP);
|
||||
nest = rta_nest(rta, len, RTA_ENCAP);
|
||||
switch (type) {
|
||||
case LWTUNNEL_ENCAP_MPLS:
|
||||
ret = parse_encap_mpls(rta, len, &argc, &argv);
|
||||
|
|
@ -1108,7 +1108,7 @@ int lwt_parse_encap(struct rtattr *rta, size_t len, int *argcp, char ***argvp)
|
|||
|
||||
rta_nest_end(rta, nest);
|
||||
|
||||
ret = rta_addattr16(rta, 1024, RTA_ENCAP_TYPE, type);
|
||||
ret = rta_addattr16(rta, len, RTA_ENCAP_TYPE, type);
|
||||
|
||||
*argcp = argc;
|
||||
*argvp = argv;
|
||||
|
|
|
|||
11
ip/ipxfrm.c
11
ip/ipxfrm.c
|
|
@ -186,7 +186,7 @@ const char *strxf_algotype(int type)
|
|||
return str;
|
||||
}
|
||||
|
||||
const char *strxf_mask8(__u8 mask)
|
||||
static const char *strxf_mask8(__u8 mask)
|
||||
{
|
||||
static char str[16];
|
||||
const int sn = sizeof(mask) * 8 - 1;
|
||||
|
|
@ -209,7 +209,7 @@ const char *strxf_mask32(__u32 mask)
|
|||
return str;
|
||||
}
|
||||
|
||||
const char *strxf_share(__u8 share)
|
||||
static const char *strxf_share(__u8 share)
|
||||
{
|
||||
static char str[32];
|
||||
|
||||
|
|
@ -270,7 +270,7 @@ const char *strxf_ptype(__u8 ptype)
|
|||
return str;
|
||||
}
|
||||
|
||||
void xfrm_id_info_print(xfrm_address_t *saddr, struct xfrm_id *id,
|
||||
static void xfrm_id_info_print(xfrm_address_t *saddr, struct xfrm_id *id,
|
||||
__u8 mode, __u32 reqid, __u16 family, int force_spi,
|
||||
FILE *fp, const char *prefix, const char *title)
|
||||
{
|
||||
|
|
@ -337,7 +337,8 @@ static const char *strxf_limit(__u64 limit)
|
|||
return str;
|
||||
}
|
||||
|
||||
void xfrm_stats_print(struct xfrm_stats *s, FILE *fp, const char *prefix)
|
||||
static void xfrm_stats_print(struct xfrm_stats *s, FILE *fp,
|
||||
const char *prefix)
|
||||
{
|
||||
if (prefix)
|
||||
fputs(prefix, fp);
|
||||
|
|
@ -371,7 +372,7 @@ static const char *strxf_time(__u64 time)
|
|||
return str;
|
||||
}
|
||||
|
||||
void xfrm_lifetime_print(struct xfrm_lifetime_cfg *cfg,
|
||||
static void xfrm_lifetime_print(struct xfrm_lifetime_cfg *cfg,
|
||||
struct xfrm_lifetime_cur *cur,
|
||||
FILE *fp, const char *prefix)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -118,18 +118,9 @@ int xfrm_algotype_getbyname(char *name);
|
|||
int xfrm_parse_mark(struct xfrm_mark *mark, int *argcp, char ***argvp);
|
||||
const char *strxf_xfrmproto(__u8 proto);
|
||||
const char *strxf_algotype(int type);
|
||||
const char *strxf_mask8(__u8 mask);
|
||||
const char *strxf_mask32(__u32 mask);
|
||||
const char *strxf_share(__u8 share);
|
||||
const char *strxf_proto(__u8 proto);
|
||||
const char *strxf_ptype(__u8 ptype);
|
||||
void xfrm_id_info_print(xfrm_address_t *saddr, struct xfrm_id *id,
|
||||
__u8 mode, __u32 reqid, __u16 family, int force_spi,
|
||||
FILE *fp, const char *prefix, const char *title);
|
||||
void xfrm_stats_print(struct xfrm_stats *s, FILE *fp, const char *prefix);
|
||||
void xfrm_lifetime_print(struct xfrm_lifetime_cfg *cfg,
|
||||
struct xfrm_lifetime_cur *cur,
|
||||
FILE *fp, const char *prefix);
|
||||
void xfrm_selector_print(struct xfrm_selector *sel, __u16 family,
|
||||
FILE *fp, const char *prefix);
|
||||
void xfrm_xfrma_print(struct rtattr *tb[], __u16 family,
|
||||
|
|
|
|||
|
|
@ -34,7 +34,7 @@
|
|||
#include "ip_common.h"
|
||||
|
||||
static void usage(void) __attribute__((noreturn));
|
||||
int listen_all_nsid;
|
||||
static int listen_all_nsid;
|
||||
|
||||
static void usage(void)
|
||||
{
|
||||
|
|
|
|||
10
lib/bpf.c
10
lib/bpf.c
|
|
@ -1758,11 +1758,12 @@ static const char *bpf_map_fetch_name(struct bpf_elf_ctx *ctx, int which)
|
|||
int i;
|
||||
|
||||
for (i = 0; i < ctx->sym_num; i++) {
|
||||
int type = GELF_ST_TYPE(sym.st_info);
|
||||
int type;
|
||||
|
||||
if (gelf_getsym(ctx->sym_tab, i, &sym) != &sym)
|
||||
continue;
|
||||
|
||||
type = GELF_ST_TYPE(sym.st_info);
|
||||
if (GELF_ST_BIND(sym.st_info) != STB_GLOBAL ||
|
||||
(type != STT_NOTYPE && type != STT_OBJECT) ||
|
||||
sym.st_shndx != ctx->sec_maps ||
|
||||
|
|
@ -1851,11 +1852,12 @@ static int bpf_map_num_sym(struct bpf_elf_ctx *ctx)
|
|||
GElf_Sym sym;
|
||||
|
||||
for (i = 0; i < ctx->sym_num; i++) {
|
||||
int type = GELF_ST_TYPE(sym.st_info);
|
||||
int type;
|
||||
|
||||
if (gelf_getsym(ctx->sym_tab, i, &sym) != &sym)
|
||||
continue;
|
||||
|
||||
type = GELF_ST_TYPE(sym.st_info);
|
||||
if (GELF_ST_BIND(sym.st_info) != STB_GLOBAL ||
|
||||
(type != STT_NOTYPE && type != STT_OBJECT) ||
|
||||
sym.st_shndx != ctx->sec_maps)
|
||||
|
|
@ -1931,10 +1933,12 @@ static int bpf_map_verify_all_offs(struct bpf_elf_ctx *ctx, int end)
|
|||
* the table again.
|
||||
*/
|
||||
for (i = 0; i < ctx->sym_num; i++) {
|
||||
int type = GELF_ST_TYPE(sym.st_info);
|
||||
int type;
|
||||
|
||||
if (gelf_getsym(ctx->sym_tab, i, &sym) != &sym)
|
||||
continue;
|
||||
|
||||
type = GELF_ST_TYPE(sym.st_info);
|
||||
if (GELF_ST_BIND(sym.st_info) != STB_GLOBAL ||
|
||||
(type != STT_NOTYPE && type != STT_OBJECT) ||
|
||||
sym.st_shndx != ctx->sec_maps)
|
||||
|
|
|
|||
|
|
@ -11,6 +11,8 @@
|
|||
#include "color.h"
|
||||
#include "utils.h"
|
||||
|
||||
static void set_color_palette(void);
|
||||
|
||||
enum color {
|
||||
C_RED,
|
||||
C_GREEN,
|
||||
|
|
@ -73,7 +75,7 @@ static enum color attr_colors_dark[] = {
|
|||
static int is_dark_bg;
|
||||
static int color_is_enabled;
|
||||
|
||||
void enable_color(void)
|
||||
static void enable_color(void)
|
||||
{
|
||||
color_is_enabled = 1;
|
||||
set_color_palette();
|
||||
|
|
@ -117,7 +119,7 @@ bool matches_color(const char *arg, int *val)
|
|||
return true;
|
||||
}
|
||||
|
||||
void set_color_palette(void)
|
||||
static void set_color_palette(void)
|
||||
{
|
||||
char *p = getenv("COLORFGBG");
|
||||
|
||||
|
|
|
|||
|
|
@ -611,8 +611,8 @@ static int rtnl_recvmsg(int fd, struct msghdr *msg, char **answer)
|
|||
return len;
|
||||
}
|
||||
|
||||
int rtnl_dump_filter_l(struct rtnl_handle *rth,
|
||||
const struct rtnl_dump_filter_arg *arg)
|
||||
static int rtnl_dump_filter_l(struct rtnl_handle *rth,
|
||||
const struct rtnl_dump_filter_arg *arg)
|
||||
{
|
||||
struct sockaddr_nl nladdr;
|
||||
struct iovec iov;
|
||||
|
|
@ -877,13 +877,6 @@ int rtnl_talk_iov(struct rtnl_handle *rtnl, struct iovec *iovec, size_t iovlen,
|
|||
return __rtnl_talk_iov(rtnl, iovec, iovlen, answer, true, NULL);
|
||||
}
|
||||
|
||||
int rtnl_talk_extack(struct rtnl_handle *rtnl, struct nlmsghdr *n,
|
||||
struct nlmsghdr **answer,
|
||||
nl_ext_ack_fn_t errfn)
|
||||
{
|
||||
return __rtnl_talk(rtnl, n, answer, true, errfn);
|
||||
}
|
||||
|
||||
int rtnl_talk_suppress_rtnl_errmsg(struct rtnl_handle *rtnl, struct nlmsghdr *n,
|
||||
struct nlmsghdr **answer)
|
||||
{
|
||||
|
|
@ -1242,23 +1235,6 @@ int parse_rtattr_flags(struct rtattr *tb[], int max, struct rtattr *rta,
|
|||
return 0;
|
||||
}
|
||||
|
||||
int parse_rtattr_byindex(struct rtattr *tb[], int max,
|
||||
struct rtattr *rta, int len)
|
||||
{
|
||||
int i = 0;
|
||||
|
||||
memset(tb, 0, sizeof(struct rtattr *) * max);
|
||||
while (RTA_OK(rta, len)) {
|
||||
if (rta->rta_type <= max && i < max)
|
||||
tb[i++] = rta;
|
||||
rta = RTA_NEXT(rta, len);
|
||||
}
|
||||
if (len)
|
||||
fprintf(stderr, "!!!Deficit %d, rta_len=%d\n",
|
||||
len, rta->rta_len);
|
||||
return i;
|
||||
}
|
||||
|
||||
struct rtattr *parse_rtattr_one(int type, struct rtattr *rta, int len)
|
||||
{
|
||||
while (RTA_OK(rta, len)) {
|
||||
|
|
|
|||
|
|
@ -26,20 +26,20 @@
|
|||
#include "rt_names.h"
|
||||
#include "utils.h"
|
||||
|
||||
|
||||
const char *ll_addr_n2a(const unsigned char *addr, int alen, int type, char *buf, int blen)
|
||||
const char *ll_addr_n2a(const unsigned char *addr, int alen, int type,
|
||||
char *buf, int blen)
|
||||
{
|
||||
int i;
|
||||
int l;
|
||||
|
||||
if (alen == 4 &&
|
||||
(type == ARPHRD_TUNNEL || type == ARPHRD_SIT || type == ARPHRD_IPGRE)) {
|
||||
(type == ARPHRD_TUNNEL || type == ARPHRD_SIT
|
||||
|| type == ARPHRD_IPGRE))
|
||||
return inet_ntop(AF_INET, addr, buf, blen);
|
||||
}
|
||||
if (alen == 16 &&
|
||||
(type == ARPHRD_TUNNEL6 || type == ARPHRD_IP6GRE)) {
|
||||
|
||||
if (alen == 16 && (type == ARPHRD_TUNNEL6 || type == ARPHRD_IP6GRE))
|
||||
return inet_ntop(AF_INET6, addr, buf, blen);
|
||||
}
|
||||
|
||||
snprintf(buf, blen, "%02x", addr[0]);
|
||||
for (i = 1, l = 2; i < alen && l < blen; i++, l += 3)
|
||||
snprintf(buf + l, blen - l, ":%02x", addr[i]);
|
||||
|
|
@ -62,7 +62,7 @@ int ll_addr_a2n(char *lladdr, int len, const char *arg)
|
|||
} else {
|
||||
int i;
|
||||
|
||||
for (i=0; i<len; i++) {
|
||||
for (i = 0; i < len; i++) {
|
||||
int temp;
|
||||
char *cp = strchr(arg, ':');
|
||||
if (cp) {
|
||||
|
|
@ -70,11 +70,13 @@ int ll_addr_a2n(char *lladdr, int len, const char *arg)
|
|||
cp++;
|
||||
}
|
||||
if (sscanf(arg, "%x", &temp) != 1) {
|
||||
fprintf(stderr, "\"%s\" is invalid lladdr.\n", arg);
|
||||
fprintf(stderr, "\"%s\" is invalid lladdr.\n",
|
||||
arg);
|
||||
return -1;
|
||||
}
|
||||
if (temp < 0 || temp > 255) {
|
||||
fprintf(stderr, "\"%s\" is invalid lladdr.\n", arg);
|
||||
fprintf(stderr, "\"%s\" is invalid lladdr.\n",
|
||||
arg);
|
||||
return -1;
|
||||
}
|
||||
lladdr[i] = temp;
|
||||
|
|
@ -82,6 +84,6 @@ int ll_addr_a2n(char *lladdr, int len, const char *arg)
|
|||
break;
|
||||
arg = cp;
|
||||
}
|
||||
return i+1;
|
||||
return i + 1;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -143,7 +143,7 @@ const char *ll_idx_n2a(unsigned int idx)
|
|||
return buf;
|
||||
}
|
||||
|
||||
unsigned int ll_idx_a2n(const char *name)
|
||||
static unsigned int ll_idx_a2n(const char *name)
|
||||
{
|
||||
unsigned int idx;
|
||||
|
||||
|
|
|
|||
28
lib/names.c
28
lib/names.c
|
|
@ -150,31 +150,3 @@ char *id_to_name(struct db_names *db, int id, char *name)
|
|||
snprintf(name, IDNAME_MAX, "%d", id);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
int name_to_id(struct db_names *db, int *id, const char *name)
|
||||
{
|
||||
struct db_entry *entry;
|
||||
int i;
|
||||
|
||||
if (!db)
|
||||
return -1;
|
||||
|
||||
if (db->cached && strcmp(db->cached->name, name) == 0) {
|
||||
*id = db->cached->id;
|
||||
return 0;
|
||||
}
|
||||
|
||||
for (i = 0; i < db->size; i++) {
|
||||
entry = db->hash[i];
|
||||
while (entry && strcmp(entry->name, name))
|
||||
entry = entry->next;
|
||||
|
||||
if (entry) {
|
||||
db->cached = entry;
|
||||
*id = entry->id;
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
return -1;
|
||||
}
|
||||
|
|
|
|||
48
lib/utils.c
48
lib/utils.c
|
|
@ -45,6 +45,10 @@ int timestamp_short;
|
|||
int pretty;
|
||||
const char *_SL_ = "\n";
|
||||
|
||||
static int af_byte_len(int af);
|
||||
static void print_time(char *buf, int len, __u32 time);
|
||||
static void print_time64(char *buf, int len, __s64 time);
|
||||
|
||||
int read_prop(const char *dev, char *prop, long *value)
|
||||
{
|
||||
char fname[128], buf[80], *endp, *nl;
|
||||
|
|
@ -426,43 +430,6 @@ int get_s32(__s32 *val, const char *arg, int base)
|
|||
return 0;
|
||||
}
|
||||
|
||||
int get_s16(__s16 *val, const char *arg, int base)
|
||||
{
|
||||
long res;
|
||||
char *ptr;
|
||||
|
||||
if (!arg || !*arg)
|
||||
return -1;
|
||||
res = strtol(arg, &ptr, base);
|
||||
if (!ptr || ptr == arg || *ptr)
|
||||
return -1;
|
||||
if ((res == LONG_MIN || res == LONG_MAX) && errno == ERANGE)
|
||||
return -1;
|
||||
if (res > 0x7FFF || res < -0x8000)
|
||||
return -1;
|
||||
|
||||
*val = res;
|
||||
return 0;
|
||||
}
|
||||
|
||||
int get_s8(__s8 *val, const char *arg, int base)
|
||||
{
|
||||
long res;
|
||||
char *ptr;
|
||||
|
||||
if (!arg || !*arg)
|
||||
return -1;
|
||||
res = strtol(arg, &ptr, base);
|
||||
if (!ptr || ptr == arg || *ptr)
|
||||
return -1;
|
||||
if ((res == LONG_MIN || res == LONG_MAX) && errno == ERANGE)
|
||||
return -1;
|
||||
if (res > 0x7F || res < -0x80)
|
||||
return -1;
|
||||
*val = res;
|
||||
return 0;
|
||||
}
|
||||
|
||||
int get_be64(__be64 *val, const char *arg, int base)
|
||||
{
|
||||
__u64 v;
|
||||
|
|
@ -708,7 +675,7 @@ int af_bit_len(int af)
|
|||
return 0;
|
||||
}
|
||||
|
||||
int af_byte_len(int af)
|
||||
static int af_byte_len(int af)
|
||||
{
|
||||
return af_bit_len(af) / 8;
|
||||
}
|
||||
|
|
@ -1710,8 +1677,7 @@ int get_time(unsigned int *time, const char *str)
|
|||
return 0;
|
||||
}
|
||||
|
||||
|
||||
void print_time(char *buf, int len, __u32 time)
|
||||
static void print_time(char *buf, int len, __u32 time)
|
||||
{
|
||||
double tmp = time;
|
||||
|
||||
|
|
@ -1764,7 +1730,7 @@ int get_time64(__s64 *time, const char *str)
|
|||
return 0;
|
||||
}
|
||||
|
||||
void print_time64(char *buf, int len, __s64 time)
|
||||
static void print_time64(char *buf, int len, __s64 time)
|
||||
{
|
||||
double nsec = time;
|
||||
|
||||
|
|
|
|||
|
|
@ -76,10 +76,15 @@ ip-address \- protocol address management
|
|||
.IR FLAG-LIST " := [ " FLAG-LIST " ] " FLAG
|
||||
|
||||
.ti -8
|
||||
.IR FLAG " := "
|
||||
.RB "[ " permanent " | " dynamic " | " secondary " | " primary " |"
|
||||
.RB [ - ] tentative " | [" - ] deprecated " | [" - ] dadfailed " |"
|
||||
.BR temporary " |"
|
||||
.IR FLAG " := ["
|
||||
.RB [ - ] permanent " |"
|
||||
.RB [ - ] dynamic " |"
|
||||
.RB [ - ] secondary " |"
|
||||
.RB [ - ] primary " |"
|
||||
.RB [ - ] tentative " |"
|
||||
.RB [ - ] deprecated " |"
|
||||
.RB [ - ] dadfailed " |"
|
||||
.RB [ - ] temporary " |"
|
||||
.IR CONFFLAG-LIST " ]"
|
||||
|
||||
.ti -8
|
||||
|
|
@ -334,7 +339,9 @@ only list running interfaces.
|
|||
.BR dynamic " and " permanent
|
||||
(IPv6 only) only list addresses installed due to stateless
|
||||
address configuration or only list permanent (not dynamic)
|
||||
addresses.
|
||||
addresses. These two flags are inverses of each other, so
|
||||
.BR -dynamic " is equal to " permanent " and "
|
||||
.BR -permanent " is equal to " dynamic .
|
||||
|
||||
.TP
|
||||
.B tentative
|
||||
|
|
@ -365,12 +372,26 @@ address detection.
|
|||
address detection.
|
||||
|
||||
.TP
|
||||
.B temporary
|
||||
(IPv6 only) only list temporary addresses.
|
||||
.BR temporary " or " secondary
|
||||
List temporary IPv6 or secondary IPv4 addresses only. The Linux kernel shares a
|
||||
single bit for those, so they are actually aliases for each other although the
|
||||
meaning differs depending on address family.
|
||||
|
||||
.TP
|
||||
.BR primary " and " secondary
|
||||
only list primary (or secondary) addresses.
|
||||
.BR -temporary " or " -secondary
|
||||
These flags are aliases for
|
||||
.BR primary .
|
||||
|
||||
.TP
|
||||
.B primary
|
||||
List only primary addresses, in IPv6 exclude temporary ones. This flag is the
|
||||
inverse of
|
||||
.BR temporary " and " secondary .
|
||||
|
||||
.TP
|
||||
.B -primary
|
||||
This is an alias for
|
||||
.BR temporary " or " secondary .
|
||||
|
||||
.SS ip address flush - flush protocol addresses
|
||||
This command flushes the protocol addresses selected by some criteria.
|
||||
|
|
|
|||
|
|
@ -589,6 +589,15 @@ argument lists:
|
|||
route reflecting its relative bandwidth or quality.
|
||||
.in -8
|
||||
|
||||
The internal buffer used in iproute2 limits the maximum number of nexthops that
|
||||
may be specified in one go. If only
|
||||
.I ADDRESS
|
||||
is given, the current buffer size allows for 144 IPv6 nexthops and 253 IPv4
|
||||
ones. For IPv4, this effectively limits the number of nexthops possible per
|
||||
route. With IPv6, further nexthops may be appended to the same route via
|
||||
.B "ip route append"
|
||||
command.
|
||||
|
||||
.TP
|
||||
.BI scope " SCOPE_VAL"
|
||||
the scope of the destinations covered by the route prefix.
|
||||
|
|
|
|||
28
misc/ss.c
28
misc/ss.c
|
|
@ -96,20 +96,20 @@ static int security_get_initial_context(char *name, char **context)
|
|||
}
|
||||
#endif
|
||||
|
||||
int resolve_services = 1;
|
||||
static int resolve_services = 1;
|
||||
int preferred_family = AF_UNSPEC;
|
||||
int show_options;
|
||||
static int show_options;
|
||||
int show_details;
|
||||
int show_users;
|
||||
int show_mem;
|
||||
int show_tcpinfo;
|
||||
int show_bpf;
|
||||
int show_proc_ctx;
|
||||
int show_sock_ctx;
|
||||
int show_header = 1;
|
||||
int follow_events;
|
||||
int sctp_ino;
|
||||
int show_tipcinfo;
|
||||
static int show_users;
|
||||
static int show_mem;
|
||||
static int show_tcpinfo;
|
||||
static int show_bpf;
|
||||
static int show_proc_ctx;
|
||||
static int show_sock_ctx;
|
||||
static int show_header = 1;
|
||||
static int follow_events;
|
||||
static int sctp_ino;
|
||||
static int show_tipcinfo;
|
||||
|
||||
enum col_id {
|
||||
COL_NETID,
|
||||
|
|
@ -494,7 +494,7 @@ struct user_ent {
|
|||
};
|
||||
|
||||
#define USER_ENT_HASH_SIZE 256
|
||||
struct user_ent *user_ent_hash[USER_ENT_HASH_SIZE];
|
||||
static struct user_ent *user_ent_hash[USER_ENT_HASH_SIZE];
|
||||
|
||||
static int user_ent_hashfn(unsigned int ino)
|
||||
{
|
||||
|
|
@ -1404,7 +1404,7 @@ struct scache {
|
|||
const char *proto;
|
||||
};
|
||||
|
||||
struct scache *rlist;
|
||||
static struct scache *rlist;
|
||||
|
||||
static void init_service_resolver(void)
|
||||
{
|
||||
|
|
|
|||
11
rdma/rdma.h
11
rdma/rdma.h
|
|
@ -74,13 +74,6 @@ struct rd_cmd {
|
|||
int (*func)(struct rd *rd);
|
||||
};
|
||||
|
||||
/*
|
||||
* Parser interface
|
||||
*/
|
||||
bool rd_no_arg(struct rd *rd);
|
||||
void rd_arg_inc(struct rd *rd);
|
||||
|
||||
char *rd_argv(struct rd *rd);
|
||||
|
||||
/*
|
||||
* Commands interface
|
||||
|
|
@ -96,8 +89,6 @@ void rd_free(struct rd *rd);
|
|||
int rd_set_arg_to_devname(struct rd *rd);
|
||||
int rd_argc(struct rd *rd);
|
||||
|
||||
int strcmpx(const char *str1, const char *str2);
|
||||
|
||||
/*
|
||||
* Device manipulation
|
||||
*/
|
||||
|
|
@ -118,14 +109,12 @@ int rd_recv_msg(struct rd *rd, mnl_cb_t callback, void *data, uint32_t seq);
|
|||
void rd_prepare_msg(struct rd *rd, uint32_t cmd, uint32_t *seq, uint16_t flags);
|
||||
int rd_dev_init_cb(const struct nlmsghdr *nlh, void *data);
|
||||
int rd_attr_cb(const struct nlattr *attr, void *data);
|
||||
int rd_attr_check(const struct nlattr *attr, int *typep);
|
||||
|
||||
/*
|
||||
* Print helpers
|
||||
*/
|
||||
void print_driver_table(struct rd *rd, struct nlattr *tb);
|
||||
void newline(struct rd *rd);
|
||||
void newline_indent(struct rd *rd);
|
||||
#define MAX_LINE_LENGTH 80
|
||||
|
||||
#endif /* _RDMA_TOOL_H_ */
|
||||
|
|
|
|||
12
rdma/utils.c
12
rdma/utils.c
|
|
@ -18,14 +18,14 @@ int rd_argc(struct rd *rd)
|
|||
return rd->argc;
|
||||
}
|
||||
|
||||
char *rd_argv(struct rd *rd)
|
||||
static char *rd_argv(struct rd *rd)
|
||||
{
|
||||
if (!rd_argc(rd))
|
||||
return NULL;
|
||||
return *rd->argv;
|
||||
}
|
||||
|
||||
int strcmpx(const char *str1, const char *str2)
|
||||
static int strcmpx(const char *str1, const char *str2)
|
||||
{
|
||||
if (strlen(str1) > strlen(str2))
|
||||
return -1;
|
||||
|
|
@ -39,7 +39,7 @@ static bool rd_argv_match(struct rd *rd, const char *pattern)
|
|||
return strcmpx(rd_argv(rd), pattern) == 0;
|
||||
}
|
||||
|
||||
void rd_arg_inc(struct rd *rd)
|
||||
static void rd_arg_inc(struct rd *rd)
|
||||
{
|
||||
if (!rd_argc(rd))
|
||||
return;
|
||||
|
|
@ -47,7 +47,7 @@ void rd_arg_inc(struct rd *rd)
|
|||
rd->argv++;
|
||||
}
|
||||
|
||||
bool rd_no_arg(struct rd *rd)
|
||||
static bool rd_no_arg(struct rd *rd)
|
||||
{
|
||||
return rd_argc(rd) == 0;
|
||||
}
|
||||
|
|
@ -404,7 +404,7 @@ static const enum mnl_attr_data_type nldev_policy[RDMA_NLDEV_ATTR_MAX] = {
|
|||
[RDMA_NLDEV_ATTR_DRIVER_U64] = MNL_TYPE_U64,
|
||||
};
|
||||
|
||||
int rd_attr_check(const struct nlattr *attr, int *typep)
|
||||
static int rd_attr_check(const struct nlattr *attr, int *typep)
|
||||
{
|
||||
int type;
|
||||
|
||||
|
|
@ -706,7 +706,7 @@ void newline(struct rd *rd)
|
|||
pr_out("\n");
|
||||
}
|
||||
|
||||
void newline_indent(struct rd *rd)
|
||||
static void newline_indent(struct rd *rd)
|
||||
{
|
||||
newline(rd);
|
||||
if (!rd->json_output)
|
||||
|
|
|
|||
12
tc/em_meta.c
12
tc/em_meta.c
|
|
@ -38,7 +38,7 @@ static void meta_print_usage(FILE *fd)
|
|||
"For a list of meta identifiers, use meta(list).\n");
|
||||
}
|
||||
|
||||
struct meta_entry {
|
||||
static const struct meta_entry {
|
||||
int id;
|
||||
char *kind;
|
||||
char *mask;
|
||||
|
|
@ -121,7 +121,7 @@ static inline int map_type(char k)
|
|||
return INT_MAX;
|
||||
}
|
||||
|
||||
static struct meta_entry *lookup_meta_entry(struct bstr *kind)
|
||||
static const struct meta_entry *lookup_meta_entry(struct bstr *kind)
|
||||
{
|
||||
int i;
|
||||
|
||||
|
|
@ -133,7 +133,7 @@ static struct meta_entry *lookup_meta_entry(struct bstr *kind)
|
|||
return NULL;
|
||||
}
|
||||
|
||||
static struct meta_entry *lookup_meta_entry_byid(int id)
|
||||
static const struct meta_entry *lookup_meta_entry_byid(int id)
|
||||
{
|
||||
int i;
|
||||
|
||||
|
|
@ -168,8 +168,8 @@ static inline void dump_value(struct nlmsghdr *n, int tlv, unsigned long val,
|
|||
static inline int is_compatible(struct tcf_meta_val *what,
|
||||
struct tcf_meta_val *needed)
|
||||
{
|
||||
const struct meta_entry *entry;
|
||||
char *p;
|
||||
struct meta_entry *entry;
|
||||
|
||||
entry = lookup_meta_entry_byid(TCF_META_ID(what->kind));
|
||||
|
||||
|
|
@ -249,7 +249,7 @@ static inline struct bstr *
|
|||
parse_object(struct bstr *args, struct bstr *arg, struct tcf_meta_val *obj,
|
||||
unsigned long *dst, struct tcf_meta_val *left)
|
||||
{
|
||||
struct meta_entry *entry;
|
||||
const struct meta_entry *entry;
|
||||
unsigned long num;
|
||||
struct bstr *a;
|
||||
|
||||
|
|
@ -461,7 +461,7 @@ static int print_object(FILE *fd, struct tcf_meta_val *obj, struct rtattr *rta)
|
|||
{
|
||||
int id = TCF_META_ID(obj->kind);
|
||||
int type = TCF_META_TYPE(obj->kind);
|
||||
struct meta_entry *entry;
|
||||
const struct meta_entry *entry;
|
||||
|
||||
if (id == TCF_META_ID_VALUE)
|
||||
return print_value(fd, type, rta);
|
||||
|
|
|
|||
|
|
@ -30,9 +30,9 @@
|
|||
|
||||
static struct action_util *action_list;
|
||||
#ifdef CONFIG_GACT
|
||||
int gact_ld; /* f*ckin backward compatibility */
|
||||
static int gact_ld; /* f*ckin backward compatibility */
|
||||
#endif
|
||||
int tab_flush;
|
||||
static int tab_flush;
|
||||
|
||||
static void act_usage(void)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -38,6 +38,8 @@ struct ematch *ematch_root;
|
|||
static int begin_argc;
|
||||
static char **begin_argv;
|
||||
|
||||
static void bstr_print(FILE *fd, const struct bstr *b, int ascii);
|
||||
|
||||
static inline void map_warning(int num, char *kind)
|
||||
{
|
||||
fprintf(stderr,
|
||||
|
|
@ -548,7 +550,7 @@ unsigned long bstrtoul(const struct bstr *b)
|
|||
return l;
|
||||
}
|
||||
|
||||
void bstr_print(FILE *fd, const struct bstr *b, int ascii)
|
||||
static void bstr_print(FILE *fd, const struct bstr *b, int ascii)
|
||||
{
|
||||
int i;
|
||||
char *s = b->data;
|
||||
|
|
@ -565,29 +567,3 @@ void bstr_print(FILE *fd, const struct bstr *b, int ascii)
|
|||
fprintf(fd, "\"");
|
||||
}
|
||||
}
|
||||
|
||||
void print_ematch_tree(const struct ematch *tree)
|
||||
{
|
||||
const struct ematch *t;
|
||||
|
||||
for (t = tree; t; t = t->next) {
|
||||
if (t->inverted)
|
||||
printf("NOT ");
|
||||
|
||||
if (t->child) {
|
||||
printf("(");
|
||||
print_ematch_tree(t->child);
|
||||
printf(")");
|
||||
} else {
|
||||
struct bstr *b;
|
||||
|
||||
for (b = t->args; b; b = b->next)
|
||||
printf("%s%s", b->data, b->next ? " " : "");
|
||||
}
|
||||
|
||||
if (t->relation == TCF_EM_REL_AND)
|
||||
printf(" AND ");
|
||||
else if (t->relation == TCF_EM_REL_OR)
|
||||
printf(" OR ");
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -51,7 +51,6 @@ static inline struct bstr *bstr_next(struct bstr *b)
|
|||
}
|
||||
|
||||
unsigned long bstrtoul(const struct bstr *b);
|
||||
void bstr_print(FILE *fd, const struct bstr *b, int ascii);
|
||||
|
||||
struct ematch {
|
||||
struct bstr *args;
|
||||
|
|
|
|||
33
tc/m_pedit.c
33
tc/m_pedit.c
|
|
@ -118,7 +118,7 @@ noexist:
|
|||
return p;
|
||||
}
|
||||
|
||||
int pack_key(struct m_pedit_sel *_sel, struct m_pedit_key *tkey)
|
||||
static int pack_key(struct m_pedit_sel *_sel, struct m_pedit_key *tkey)
|
||||
{
|
||||
struct tc_pedit_sel *sel = &_sel->sel;
|
||||
struct m_pedit_key_ex *keys_ex = _sel->keys_ex;
|
||||
|
|
@ -155,8 +155,8 @@ int pack_key(struct m_pedit_sel *_sel, struct m_pedit_key *tkey)
|
|||
return 0;
|
||||
}
|
||||
|
||||
int pack_key32(__u32 retain, struct m_pedit_sel *sel,
|
||||
struct m_pedit_key *tkey)
|
||||
static int pack_key32(__u32 retain, struct m_pedit_sel *sel,
|
||||
struct m_pedit_key *tkey)
|
||||
{
|
||||
if (tkey->off > (tkey->off & ~3)) {
|
||||
fprintf(stderr,
|
||||
|
|
@ -169,8 +169,8 @@ int pack_key32(__u32 retain, struct m_pedit_sel *sel,
|
|||
return pack_key(sel, tkey);
|
||||
}
|
||||
|
||||
int pack_key16(__u32 retain, struct m_pedit_sel *sel,
|
||||
struct m_pedit_key *tkey)
|
||||
static int pack_key16(__u32 retain, struct m_pedit_sel *sel,
|
||||
struct m_pedit_key *tkey)
|
||||
{
|
||||
int ind, stride;
|
||||
__u32 m[4] = { 0x0000FFFF, 0xFF0000FF, 0xFFFF0000 };
|
||||
|
|
@ -197,10 +197,10 @@ int pack_key16(__u32 retain, struct m_pedit_sel *sel,
|
|||
printf("pack_key16: Final val %08x mask %08x\n",
|
||||
tkey->val, tkey->mask);
|
||||
return pack_key(sel, tkey);
|
||||
|
||||
}
|
||||
|
||||
int pack_key8(__u32 retain, struct m_pedit_sel *sel, struct m_pedit_key *tkey)
|
||||
static int pack_key8(__u32 retain, struct m_pedit_sel *sel,
|
||||
struct m_pedit_key *tkey)
|
||||
{
|
||||
int ind, stride;
|
||||
__u32 m[4] = { 0x00FFFFFF, 0xFF00FFFF, 0xFFFF00FF, 0xFFFFFF00 };
|
||||
|
|
@ -283,7 +283,7 @@ static int pack_ipv6(struct m_pedit_sel *sel, struct m_pedit_key *tkey,
|
|||
return 0;
|
||||
}
|
||||
|
||||
int parse_val(int *argc_p, char ***argv_p, __u32 *val, int type)
|
||||
static int parse_val(int *argc_p, char ***argv_p, __u32 *val, int type)
|
||||
{
|
||||
int argc = *argc_p;
|
||||
char **argv = *argv_p;
|
||||
|
|
@ -433,8 +433,8 @@ done:
|
|||
|
||||
}
|
||||
|
||||
int parse_offset(int *argc_p, char ***argv_p, struct m_pedit_sel *sel,
|
||||
struct m_pedit_key *tkey)
|
||||
static int parse_offset(int *argc_p, char ***argv_p, struct m_pedit_sel *sel,
|
||||
struct m_pedit_key *tkey)
|
||||
{
|
||||
int off;
|
||||
__u32 len, retain;
|
||||
|
|
@ -612,8 +612,8 @@ static int pedit_keys_ex_addattr(struct m_pedit_sel *sel, struct nlmsghdr *n)
|
|||
return 0;
|
||||
}
|
||||
|
||||
int parse_pedit(struct action_util *a, int *argc_p, char ***argv_p, int tca_id,
|
||||
struct nlmsghdr *n)
|
||||
static int parse_pedit(struct action_util *a, int *argc_p, char ***argv_p,
|
||||
int tca_id, struct nlmsghdr *n)
|
||||
{
|
||||
struct m_pedit_sel sel = {};
|
||||
|
||||
|
|
@ -705,7 +705,7 @@ int parse_pedit(struct action_util *a, int *argc_p, char ***argv_p, int tca_id,
|
|||
return 0;
|
||||
}
|
||||
|
||||
const char *pedit_htype_str[] = {
|
||||
static const char * const pedit_htype_str[] = {
|
||||
[TCA_PEDIT_KEY_EX_HDR_TYPE_NETWORK] = "",
|
||||
[TCA_PEDIT_KEY_EX_HDR_TYPE_ETH] = "eth",
|
||||
[TCA_PEDIT_KEY_EX_HDR_TYPE_IP4] = "ipv4",
|
||||
|
|
@ -730,7 +730,7 @@ static void print_pedit_location(FILE *f,
|
|||
fprintf(f, "%c%d", (int)off >= 0 ? '+' : '-', abs((int)off));
|
||||
}
|
||||
|
||||
int print_pedit(struct action_util *au, FILE *f, struct rtattr *arg)
|
||||
static int print_pedit(struct action_util *au, FILE *f, struct rtattr *arg)
|
||||
{
|
||||
struct tc_pedit_sel *sel;
|
||||
struct rtattr *tb[TCA_PEDIT_MAX + 1];
|
||||
|
|
@ -826,11 +826,6 @@ int print_pedit(struct action_util *au, FILE *f, struct rtattr *arg)
|
|||
return 0;
|
||||
}
|
||||
|
||||
int pedit_print_xstats(struct action_util *au, FILE *f, struct rtattr *xstats)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
struct action_util pedit_action_util = {
|
||||
.id = "pedit",
|
||||
.parse_aopt = parse_pedit,
|
||||
|
|
|
|||
15
tc/m_pedit.h
15
tc/m_pedit.h
|
|
@ -71,22 +71,7 @@ struct m_pedit_util {
|
|||
struct m_pedit_key *tkey);
|
||||
};
|
||||
|
||||
int pack_key(struct m_pedit_sel *sel, struct m_pedit_key *tkey);
|
||||
int pack_key32(__u32 retain, struct m_pedit_sel *sel,
|
||||
struct m_pedit_key *tkey);
|
||||
int pack_key16(__u32 retain, struct m_pedit_sel *sel,
|
||||
struct m_pedit_key *tkey);
|
||||
int pack_key8(__u32 retain, struct m_pedit_sel *sel,
|
||||
struct m_pedit_key *tkey);
|
||||
int parse_val(int *argc_p, char ***argv_p, __u32 *val, int type);
|
||||
int parse_cmd(int *argc_p, char ***argv_p, __u32 len, int type,
|
||||
__u32 retain,
|
||||
struct m_pedit_sel *sel, struct m_pedit_key *tkey);
|
||||
int parse_offset(int *argc_p, char ***argv_p,
|
||||
struct m_pedit_sel *sel, struct m_pedit_key *tkey);
|
||||
int parse_pedit(struct action_util *a, int *argc_p, char ***argv_p,
|
||||
int tca_id, struct nlmsghdr *n);
|
||||
int print_pedit(struct action_util *au, FILE *f, struct rtattr *arg);
|
||||
int pedit_print_xstats(struct action_util *au, FILE *f,
|
||||
struct rtattr *xstats);
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -25,6 +25,10 @@
|
|||
#include "utils.h"
|
||||
#include "tc_util.h"
|
||||
|
||||
static int act_parse_police(struct action_util *a, int *argc_p,
|
||||
char ***argv_p, int tca_id, struct nlmsghdr *n);
|
||||
static int print_police(struct action_util *a, FILE *f, struct rtattr *tb);
|
||||
|
||||
struct action_util police_action_util = {
|
||||
.id = "police",
|
||||
.parse_aopt = act_parse_police,
|
||||
|
|
@ -50,8 +54,8 @@ static void explain1(char *arg)
|
|||
fprintf(stderr, "Illegal \"%s\"\n", arg);
|
||||
}
|
||||
|
||||
int act_parse_police(struct action_util *a, int *argc_p, char ***argv_p,
|
||||
int tca_id, struct nlmsghdr *n)
|
||||
static int act_parse_police(struct action_util *a, int *argc_p, char ***argv_p,
|
||||
int tca_id, struct nlmsghdr *n)
|
||||
{
|
||||
int argc = *argc_p;
|
||||
char **argv = *argv_p;
|
||||
|
|
@ -256,7 +260,7 @@ int parse_police(int *argc_p, char ***argv_p, int tca_id, struct nlmsghdr *n)
|
|||
return act_parse_police(NULL, argc_p, argv_p, tca_id, n);
|
||||
}
|
||||
|
||||
int print_police(struct action_util *a, FILE *f, struct rtattr *arg)
|
||||
static int print_police(struct action_util *a, FILE *f, struct rtattr *arg)
|
||||
{
|
||||
SPRINT_BUF(b1);
|
||||
SPRINT_BUF(b2);
|
||||
|
|
|
|||
|
|
@ -68,7 +68,6 @@ done:
|
|||
}
|
||||
|
||||
struct m_pedit_util p_pedit_eth = {
|
||||
NULL,
|
||||
"eth",
|
||||
parse_eth,
|
||||
.id = "eth",
|
||||
.parse_peopt = parse_eth,
|
||||
};
|
||||
|
|
|
|||
|
|
@ -55,7 +55,6 @@ done:
|
|||
}
|
||||
|
||||
struct m_pedit_util p_pedit_icmp = {
|
||||
NULL,
|
||||
"icmp",
|
||||
parse_icmp,
|
||||
.id = "icmp",
|
||||
.parse_peopt = parse_icmp,
|
||||
};
|
||||
|
|
|
|||
|
|
@ -156,7 +156,6 @@ done:
|
|||
}
|
||||
|
||||
struct m_pedit_util p_pedit_ip = {
|
||||
NULL,
|
||||
"ip",
|
||||
parse_ip,
|
||||
.id = "ip",
|
||||
.parse_peopt = parse_ip,
|
||||
};
|
||||
|
|
|
|||
|
|
@ -84,7 +84,6 @@ done:
|
|||
}
|
||||
|
||||
struct m_pedit_util p_pedit_ip6 = {
|
||||
NULL,
|
||||
"ipv6",
|
||||
parse_ip6,
|
||||
.id = "ipv6",
|
||||
.parse_peopt = parse_ip6,
|
||||
};
|
||||
|
|
|
|||
|
|
@ -67,7 +67,6 @@ done:
|
|||
return res;
|
||||
}
|
||||
struct m_pedit_util p_pedit_tcp = {
|
||||
NULL,
|
||||
"tcp",
|
||||
parse_tcp,
|
||||
.id = "tcp",
|
||||
.parse_peopt = parse_tcp,
|
||||
};
|
||||
|
|
|
|||
|
|
@ -61,7 +61,6 @@ done:
|
|||
}
|
||||
|
||||
struct m_pedit_util p_pedit_udp = {
|
||||
NULL,
|
||||
"udp",
|
||||
parse_udp,
|
||||
.id = "udp",
|
||||
.parse_peopt = parse_udp,
|
||||
};
|
||||
|
|
|
|||
|
|
@ -153,9 +153,9 @@ static int tc_class_modify(int cmd, unsigned int flags, int argc, char **argv)
|
|||
return 0;
|
||||
}
|
||||
|
||||
int filter_ifindex;
|
||||
__u32 filter_qdisc;
|
||||
__u32 filter_classid;
|
||||
static int filter_ifindex;
|
||||
static __u32 filter_qdisc;
|
||||
static __u32 filter_classid;
|
||||
|
||||
static void graph_node_add(__u32 parent_id, __u32 id, void *data,
|
||||
int len)
|
||||
|
|
|
|||
17
tc/tc_util.c
17
tc/tc_util.c
|
|
@ -190,7 +190,7 @@ static const struct rate_suffix {
|
|||
{ NULL }
|
||||
};
|
||||
|
||||
int parse_percent_rate(char *rate, const char *str, const char *dev)
|
||||
static int parse_percent_rate(char *rate, const char *str, const char *dev)
|
||||
{
|
||||
long dev_mbit;
|
||||
int ret;
|
||||
|
|
@ -409,7 +409,7 @@ void print_devname(enum output_type type, int ifindex)
|
|||
"dev", "%s ", ifname);
|
||||
}
|
||||
|
||||
void print_size(char *buf, int len, __u32 sz)
|
||||
static void print_size(char *buf, int len, __u32 sz)
|
||||
{
|
||||
double tmp = sz;
|
||||
|
||||
|
|
@ -427,17 +427,6 @@ char *sprint_size(__u32 size, char *buf)
|
|||
return buf;
|
||||
}
|
||||
|
||||
void print_qdisc_handle(char *buf, int len, __u32 h)
|
||||
{
|
||||
snprintf(buf, len, "%x:", TC_H_MAJ(h)>>16);
|
||||
}
|
||||
|
||||
char *sprint_qdisc_handle(__u32 h, char *buf)
|
||||
{
|
||||
print_qdisc_handle(buf, SPRINT_BSIZE-1, h);
|
||||
return buf;
|
||||
}
|
||||
|
||||
static const char *action_n2a(int action)
|
||||
{
|
||||
static char buf[64];
|
||||
|
|
@ -709,7 +698,7 @@ int get_linklayer(unsigned int *val, const char *arg)
|
|||
return 0;
|
||||
}
|
||||
|
||||
void print_linklayer(char *buf, int len, unsigned int linklayer)
|
||||
static void print_linklayer(char *buf, int len, unsigned int linklayer)
|
||||
{
|
||||
switch (linklayer) {
|
||||
case LINKLAYER_UNSPEC:
|
||||
|
|
|
|||
|
|
@ -73,7 +73,6 @@ const char *get_tc_lib(void);
|
|||
struct qdisc_util *get_qdisc_kind(const char *str);
|
||||
struct filter_util *get_filter_kind(const char *str);
|
||||
|
||||
int parse_percent_rate(char *rate, const char *str, const char *dev);
|
||||
int get_qdisc_handle(__u32 *h, const char *str);
|
||||
int get_rate(unsigned int *rate, const char *str);
|
||||
int get_percent_rate(unsigned int *rate, const char *str, const char *dev);
|
||||
|
|
@ -84,14 +83,10 @@ int get_size_and_cell(unsigned int *size, int *cell_log, char *str);
|
|||
int get_linklayer(unsigned int *val, const char *arg);
|
||||
|
||||
void print_rate(char *buf, int len, __u64 rate);
|
||||
void print_size(char *buf, int len, __u32 size);
|
||||
void print_qdisc_handle(char *buf, int len, __u32 h);
|
||||
void print_linklayer(char *buf, int len, unsigned int linklayer);
|
||||
void print_devname(enum output_type type, int ifindex);
|
||||
|
||||
char *sprint_rate(__u64 rate, char *buf);
|
||||
char *sprint_size(__u32 size, char *buf);
|
||||
char *sprint_qdisc_handle(__u32 h, char *buf);
|
||||
char *sprint_tc_classid(__u32 h, char *buf);
|
||||
char *sprint_ticks(__u32 ticks, char *buf);
|
||||
char *sprint_linklayer(unsigned int linklayer, char *buf);
|
||||
|
|
@ -117,9 +112,6 @@ int parse_action_control_slash(int *argc_p, char ***argv_p,
|
|||
int *result1_p, int *result2_p, bool allow_num);
|
||||
void print_action_control(FILE *f, const char *prefix,
|
||||
int action, const char *suffix);
|
||||
int act_parse_police(struct action_util *a, int *argc_p,
|
||||
char ***argv_p, int tca_id, struct nlmsghdr *n);
|
||||
int print_police(struct action_util *a, FILE *f, struct rtattr *tb);
|
||||
int police_print_xstats(struct action_util *a, FILE *f, struct rtattr *tb);
|
||||
int tc_print_action(FILE *f, const struct rtattr *tb, unsigned short tot_acts);
|
||||
int tc_print_ipt(FILE *f, const struct rtattr *tb);
|
||||
|
|
|
|||
|
|
@ -85,11 +85,11 @@ endif
|
|||
TC="$$i/tc/tc" IP="$$i/ip/ip" SS=$$i/misc/ss DEV="$(DEV)" IPVER="$@" SNAME="$$i" \
|
||||
ERRF="$(RESULTS_DIR)/$@.$$o.err" $(PREFIX) tests/$@ > $(RESULTS_DIR)/$@.$$o.out; \
|
||||
if [ "$$?" = "127" ]; then \
|
||||
echo "SKIPPED"; \
|
||||
echo "\e[1;35mSKIPPED\e[0m"; \
|
||||
elif [ -e "$(RESULTS_DIR)/$@.$$o.err" ]; then \
|
||||
echo "FAILED"; \
|
||||
echo "\e[0;31mFAILED\e[0m"; \
|
||||
else \
|
||||
echo "PASS"; \
|
||||
echo "\e[0;32mPASS\e[0m"; \
|
||||
fi; \
|
||||
rm "$$TMP_ERR" "$$TMP_OUT"; \
|
||||
sudo dmesg > $(RESULTS_DIR)/$@.$$o.dmesg; \
|
||||
|
|
|
|||
|
|
@ -1,848 +0,0 @@
|
|||
#
|
||||
# Automatically generated by make menuconfig: don't edit
|
||||
#
|
||||
CONFIG_X86=y
|
||||
# CONFIG_SBUS is not set
|
||||
CONFIG_UID16=y
|
||||
|
||||
#
|
||||
# Code maturity level options
|
||||
#
|
||||
CONFIG_EXPERIMENTAL=y
|
||||
|
||||
#
|
||||
# Loadable module support
|
||||
#
|
||||
CONFIG_MODULES=y
|
||||
CONFIG_MODVERSIONS=y
|
||||
CONFIG_KMOD=y
|
||||
|
||||
#
|
||||
# Processor type and features
|
||||
#
|
||||
# CONFIG_M386 is not set
|
||||
# CONFIG_M486 is not set
|
||||
# CONFIG_M586 is not set
|
||||
# CONFIG_M586TSC is not set
|
||||
# CONFIG_M586MMX is not set
|
||||
# CONFIG_M686 is not set
|
||||
# CONFIG_MPENTIUMIII is not set
|
||||
CONFIG_MPENTIUM4=y
|
||||
# CONFIG_MK6 is not set
|
||||
# CONFIG_MK7 is not set
|
||||
# CONFIG_MK8 is not set
|
||||
# CONFIG_MELAN is not set
|
||||
# CONFIG_MCRUSOE is not set
|
||||
# CONFIG_MWINCHIPC6 is not set
|
||||
# CONFIG_MWINCHIP2 is not set
|
||||
# CONFIG_MWINCHIP3D is not set
|
||||
# CONFIG_MCYRIXIII is not set
|
||||
# CONFIG_MVIAC3_2 is not set
|
||||
CONFIG_X86_WP_WORKS_OK=y
|
||||
CONFIG_X86_INVLPG=y
|
||||
CONFIG_X86_CMPXCHG=y
|
||||
CONFIG_X86_XADD=y
|
||||
CONFIG_X86_BSWAP=y
|
||||
CONFIG_X86_POPAD_OK=y
|
||||
# CONFIG_RWSEM_GENERIC_SPINLOCK is not set
|
||||
CONFIG_RWSEM_XCHGADD_ALGORITHM=y
|
||||
CONFIG_X86_L1_CACHE_SHIFT=7
|
||||
CONFIG_X86_HAS_TSC=y
|
||||
CONFIG_X86_GOOD_APIC=y
|
||||
CONFIG_X86_PGE=y
|
||||
CONFIG_X86_USE_PPRO_CHECKSUM=y
|
||||
CONFIG_X86_F00F_WORKS_OK=y
|
||||
CONFIG_X86_MCE=y
|
||||
# CONFIG_TOSHIBA is not set
|
||||
# CONFIG_I8K is not set
|
||||
# CONFIG_MICROCODE is not set
|
||||
# CONFIG_X86_MSR is not set
|
||||
# CONFIG_X86_CPUID is not set
|
||||
# CONFIG_EDD is not set
|
||||
CONFIG_NOHIGHMEM=y
|
||||
# CONFIG_HIGHMEM4G is not set
|
||||
# CONFIG_HIGHMEM64G is not set
|
||||
# CONFIG_HIGHMEM is not set
|
||||
# CONFIG_MATH_EMULATION is not set
|
||||
# CONFIG_MTRR is not set
|
||||
CONFIG_SMP=y
|
||||
CONFIG_NR_CPUS=32
|
||||
# CONFIG_X86_NUMA is not set
|
||||
# CONFIG_X86_TSC_DISABLE is not set
|
||||
CONFIG_X86_TSC=y
|
||||
CONFIG_HAVE_DEC_LOCK=y
|
||||
|
||||
#
|
||||
# General setup
|
||||
#
|
||||
CONFIG_NET=y
|
||||
CONFIG_X86_IO_APIC=y
|
||||
CONFIG_X86_LOCAL_APIC=y
|
||||
CONFIG_PCI=y
|
||||
# CONFIG_PCI_GOBIOS is not set
|
||||
# CONFIG_PCI_GODIRECT is not set
|
||||
CONFIG_PCI_GOANY=y
|
||||
CONFIG_PCI_BIOS=y
|
||||
CONFIG_PCI_DIRECT=y
|
||||
CONFIG_ISA=y
|
||||
CONFIG_PCI_NAMES=y
|
||||
# CONFIG_EISA is not set
|
||||
# CONFIG_MCA is not set
|
||||
CONFIG_HOTPLUG=y
|
||||
|
||||
#
|
||||
# PCMCIA/CardBus support
|
||||
#
|
||||
CONFIG_PCMCIA=y
|
||||
CONFIG_CARDBUS=y
|
||||
# CONFIG_TCIC is not set
|
||||
# CONFIG_I82092 is not set
|
||||
# CONFIG_I82365 is not set
|
||||
|
||||
#
|
||||
# PCI Hotplug Support
|
||||
#
|
||||
# CONFIG_HOTPLUG_PCI is not set
|
||||
# CONFIG_HOTPLUG_PCI_COMPAQ is not set
|
||||
# CONFIG_HOTPLUG_PCI_COMPAQ_NVRAM is not set
|
||||
# CONFIG_HOTPLUG_PCI_IBM is not set
|
||||
# CONFIG_HOTPLUG_PCI_SHPC is not set
|
||||
# CONFIG_HOTPLUG_PCI_SHPC_POLL_EVENT_MODE is not set
|
||||
# CONFIG_HOTPLUG_PCI_SHPC_PHPRM_LEGACY is not set
|
||||
# CONFIG_HOTPLUG_PCI_PCIE is not set
|
||||
# CONFIG_HOTPLUG_PCI_PCIE_POLL_EVENT_MODE is not set
|
||||
CONFIG_SYSVIPC=y
|
||||
# CONFIG_BSD_PROCESS_ACCT is not set
|
||||
CONFIG_SYSCTL=y
|
||||
CONFIG_KCORE_ELF=y
|
||||
# CONFIG_KCORE_AOUT is not set
|
||||
CONFIG_BINFMT_AOUT=y
|
||||
CONFIG_BINFMT_ELF=y
|
||||
CONFIG_BINFMT_MISC=y
|
||||
# CONFIG_OOM_KILLER is not set
|
||||
CONFIG_PM=y
|
||||
# CONFIG_APM is not set
|
||||
|
||||
#
|
||||
# ACPI Support
|
||||
#
|
||||
# CONFIG_ACPI is not set
|
||||
CONFIG_ACPI_BOOT=y
|
||||
|
||||
#
|
||||
# Memory Technology Devices (MTD)
|
||||
#
|
||||
# CONFIG_MTD is not set
|
||||
|
||||
#
|
||||
# Parallel port support
|
||||
#
|
||||
# CONFIG_PARPORT is not set
|
||||
|
||||
#
|
||||
# Plug and Play configuration
|
||||
#
|
||||
CONFIG_PNP=y
|
||||
CONFIG_ISAPNP=y
|
||||
|
||||
#
|
||||
# Block devices
|
||||
#
|
||||
CONFIG_BLK_DEV_FD=y
|
||||
# CONFIG_BLK_DEV_XD is not set
|
||||
# CONFIG_PARIDE is not set
|
||||
# CONFIG_BLK_CPQ_DA is not set
|
||||
# CONFIG_BLK_CPQ_CISS_DA is not set
|
||||
# CONFIG_CISS_SCSI_TAPE is not set
|
||||
# CONFIG_CISS_MONITOR_THREAD is not set
|
||||
# CONFIG_BLK_DEV_DAC960 is not set
|
||||
# CONFIG_BLK_DEV_UMEM is not set
|
||||
# CONFIG_BLK_DEV_SX8 is not set
|
||||
# CONFIG_BLK_DEV_LOOP is not set
|
||||
# CONFIG_BLK_DEV_NBD is not set
|
||||
# CONFIG_BLK_DEV_RAM is not set
|
||||
# CONFIG_BLK_DEV_INITRD is not set
|
||||
# CONFIG_BLK_STATS is not set
|
||||
|
||||
#
|
||||
# Multi-device support (RAID and LVM)
|
||||
#
|
||||
# CONFIG_MD is not set
|
||||
# CONFIG_BLK_DEV_MD is not set
|
||||
# CONFIG_MD_LINEAR is not set
|
||||
# CONFIG_MD_RAID0 is not set
|
||||
# CONFIG_MD_RAID1 is not set
|
||||
# CONFIG_MD_RAID5 is not set
|
||||
# CONFIG_MD_MULTIPATH is not set
|
||||
# CONFIG_BLK_DEV_LVM is not set
|
||||
|
||||
#
|
||||
# Networking options
|
||||
#
|
||||
CONFIG_PACKET=y
|
||||
# CONFIG_PACKET_MMAP is not set
|
||||
# CONFIG_NETLINK_DEV is not set
|
||||
# CONFIG_NETFILTER is not set
|
||||
# CONFIG_FILTER is not set
|
||||
CONFIG_UNIX=y
|
||||
CONFIG_INET=y
|
||||
CONFIG_IP_MULTICAST=y
|
||||
CONFIG_IP_ADVANCED_ROUTER=y
|
||||
CONFIG_IP_MULTIPLE_TABLES=y
|
||||
CONFIG_IP_ROUTE_NAT=y
|
||||
CONFIG_IP_ROUTE_MULTIPATH=y
|
||||
CONFIG_IP_ROUTE_TOS=y
|
||||
# CONFIG_IP_ROUTE_VERBOSE is not set
|
||||
# CONFIG_IP_PNP is not set
|
||||
# CONFIG_NET_IPIP is not set
|
||||
# CONFIG_NET_IPGRE is not set
|
||||
# CONFIG_IP_MROUTE is not set
|
||||
# CONFIG_ARPD is not set
|
||||
# CONFIG_INET_ECN is not set
|
||||
# CONFIG_SYN_COOKIES is not set
|
||||
# CONFIG_IPV6 is not set
|
||||
# CONFIG_KHTTPD is not set
|
||||
|
||||
#
|
||||
# SCTP Configuration (EXPERIMENTAL)
|
||||
#
|
||||
# CONFIG_IP_SCTP is not set
|
||||
CONFIG_ATM=y
|
||||
CONFIG_ATM_CLIP=y
|
||||
# CONFIG_ATM_CLIP_NO_ICMP is not set
|
||||
# CONFIG_ATM_LANE is not set
|
||||
# CONFIG_ATM_BR2684 is not set
|
||||
# CONFIG_VLAN_8021Q is not set
|
||||
# CONFIG_IPX is not set
|
||||
# CONFIG_ATALK is not set
|
||||
|
||||
#
|
||||
# Appletalk devices
|
||||
#
|
||||
# CONFIG_DEV_APPLETALK is not set
|
||||
# CONFIG_DECNET is not set
|
||||
# CONFIG_BRIDGE is not set
|
||||
# CONFIG_X25 is not set
|
||||
# CONFIG_LAPB is not set
|
||||
# CONFIG_LLC is not set
|
||||
# CONFIG_NET_DIVERT is not set
|
||||
# CONFIG_ECONET is not set
|
||||
# CONFIG_WAN_ROUTER is not set
|
||||
# CONFIG_NET_FASTROUTE is not set
|
||||
# CONFIG_NET_HW_FLOWCONTROL is not set
|
||||
|
||||
#
|
||||
# QoS and/or fair queueing
|
||||
#
|
||||
CONFIG_NET_SCHED=y
|
||||
CONFIG_NET_SCH_CBQ=y
|
||||
CONFIG_NET_SCH_HTB=y
|
||||
CONFIG_NET_SCH_CSZ=y
|
||||
CONFIG_NET_SCH_HFSC=y
|
||||
CONFIG_NET_SCH_ATM=y
|
||||
CONFIG_NET_SCH_PRIO=y
|
||||
CONFIG_NET_SCH_RED=y
|
||||
CONFIG_NET_SCH_SFQ=y
|
||||
CONFIG_NET_SCH_TEQL=y
|
||||
CONFIG_NET_SCH_TBF=y
|
||||
CONFIG_NET_SCH_GRED=y
|
||||
CONFIG_NET_SCH_NETEM=y
|
||||
CONFIG_NET_SCH_DSMARK=y
|
||||
CONFIG_NET_QOS=y
|
||||
CONFIG_NET_ESTIMATOR=y
|
||||
CONFIG_NET_CLS=y
|
||||
CONFIG_NET_CLS_TCINDEX=y
|
||||
CONFIG_NET_CLS_ROUTE4=y
|
||||
CONFIG_NET_CLS_ROUTE=y
|
||||
CONFIG_NET_CLS_FW=y
|
||||
CONFIG_NET_CLS_U32=y
|
||||
CONFIG_NET_CLS_RSVP=y
|
||||
CONFIG_NET_CLS_RSVP6=y
|
||||
CONFIG_NET_CLS_POLICE=y
|
||||
|
||||
#
|
||||
# Network testing
|
||||
#
|
||||
# CONFIG_NET_PKTGEN is not set
|
||||
|
||||
#
|
||||
# Telephony Support
|
||||
#
|
||||
# CONFIG_PHONE is not set
|
||||
# CONFIG_PHONE_IXJ is not set
|
||||
# CONFIG_PHONE_IXJ_PCMCIA is not set
|
||||
|
||||
#
|
||||
# ATA/IDE/MFM/RLL support
|
||||
#
|
||||
CONFIG_IDE=y
|
||||
|
||||
#
|
||||
# IDE, ATA and ATAPI Block devices
|
||||
#
|
||||
CONFIG_BLK_DEV_IDE=y
|
||||
# CONFIG_BLK_DEV_HD_IDE is not set
|
||||
# CONFIG_BLK_DEV_HD is not set
|
||||
# CONFIG_BLK_DEV_IDE_SATA is not set
|
||||
CONFIG_BLK_DEV_IDEDISK=y
|
||||
CONFIG_IDEDISK_MULTI_MODE=y
|
||||
# CONFIG_IDEDISK_STROKE is not set
|
||||
# CONFIG_BLK_DEV_IDECS is not set
|
||||
# CONFIG_BLK_DEV_DELKIN is not set
|
||||
CONFIG_BLK_DEV_IDECD=y
|
||||
# CONFIG_BLK_DEV_IDETAPE is not set
|
||||
# CONFIG_BLK_DEV_IDEFLOPPY is not set
|
||||
# CONFIG_BLK_DEV_IDESCSI is not set
|
||||
# CONFIG_IDE_TASK_IOCTL is not set
|
||||
CONFIG_BLK_DEV_CMD640=y
|
||||
# CONFIG_BLK_DEV_CMD640_ENHANCED is not set
|
||||
# CONFIG_BLK_DEV_ISAPNP is not set
|
||||
CONFIG_BLK_DEV_IDEPCI=y
|
||||
# CONFIG_BLK_DEV_GENERIC is not set
|
||||
CONFIG_IDEPCI_SHARE_IRQ=y
|
||||
CONFIG_BLK_DEV_IDEDMA_PCI=y
|
||||
# CONFIG_BLK_DEV_OFFBOARD is not set
|
||||
# CONFIG_BLK_DEV_IDEDMA_FORCED is not set
|
||||
CONFIG_IDEDMA_PCI_AUTO=y
|
||||
# CONFIG_IDEDMA_ONLYDISK is not set
|
||||
CONFIG_BLK_DEV_IDEDMA=y
|
||||
# CONFIG_IDEDMA_PCI_WIP is not set
|
||||
# CONFIG_BLK_DEV_ADMA100 is not set
|
||||
# CONFIG_BLK_DEV_AEC62XX is not set
|
||||
# CONFIG_BLK_DEV_ALI15X3 is not set
|
||||
# CONFIG_WDC_ALI15X3 is not set
|
||||
# CONFIG_BLK_DEV_AMD74XX is not set
|
||||
# CONFIG_AMD74XX_OVERRIDE is not set
|
||||
# CONFIG_BLK_DEV_ATIIXP is not set
|
||||
# CONFIG_BLK_DEV_CMD64X is not set
|
||||
# CONFIG_BLK_DEV_TRIFLEX is not set
|
||||
# CONFIG_BLK_DEV_CY82C693 is not set
|
||||
# CONFIG_BLK_DEV_CS5530 is not set
|
||||
# CONFIG_BLK_DEV_HPT34X is not set
|
||||
# CONFIG_HPT34X_AUTODMA is not set
|
||||
# CONFIG_BLK_DEV_HPT366 is not set
|
||||
CONFIG_BLK_DEV_PIIX=y
|
||||
# CONFIG_BLK_DEV_NS87415 is not set
|
||||
# CONFIG_BLK_DEV_OPTI621 is not set
|
||||
# CONFIG_BLK_DEV_PDC202XX_OLD is not set
|
||||
# CONFIG_PDC202XX_BURST is not set
|
||||
# CONFIG_BLK_DEV_PDC202XX_NEW is not set
|
||||
CONFIG_BLK_DEV_RZ1000=y
|
||||
# CONFIG_BLK_DEV_SC1200 is not set
|
||||
# CONFIG_BLK_DEV_SVWKS is not set
|
||||
# CONFIG_BLK_DEV_SIIMAGE is not set
|
||||
# CONFIG_BLK_DEV_SIS5513 is not set
|
||||
# CONFIG_BLK_DEV_SLC90E66 is not set
|
||||
# CONFIG_BLK_DEV_TRM290 is not set
|
||||
# CONFIG_BLK_DEV_VIA82CXXX is not set
|
||||
# CONFIG_IDE_CHIPSETS is not set
|
||||
CONFIG_IDEDMA_AUTO=y
|
||||
# CONFIG_IDEDMA_IVB is not set
|
||||
# CONFIG_DMA_NONPCI is not set
|
||||
# CONFIG_BLK_DEV_ATARAID is not set
|
||||
# CONFIG_BLK_DEV_ATARAID_PDC is not set
|
||||
# CONFIG_BLK_DEV_ATARAID_HPT is not set
|
||||
# CONFIG_BLK_DEV_ATARAID_MEDLEY is not set
|
||||
# CONFIG_BLK_DEV_ATARAID_SII is not set
|
||||
|
||||
#
|
||||
# SCSI support
|
||||
#
|
||||
# CONFIG_SCSI is not set
|
||||
|
||||
#
|
||||
# Fusion MPT device support
|
||||
#
|
||||
# CONFIG_FUSION is not set
|
||||
# CONFIG_FUSION_BOOT is not set
|
||||
# CONFIG_FUSION_ISENSE is not set
|
||||
# CONFIG_FUSION_CTL is not set
|
||||
# CONFIG_FUSION_LAN is not set
|
||||
|
||||
#
|
||||
# IEEE 1394 (FireWire) support (EXPERIMENTAL)
|
||||
#
|
||||
# CONFIG_IEEE1394 is not set
|
||||
|
||||
#
|
||||
# I2O device support
|
||||
#
|
||||
# CONFIG_I2O is not set
|
||||
# CONFIG_I2O_PCI is not set
|
||||
# CONFIG_I2O_BLOCK is not set
|
||||
# CONFIG_I2O_LAN is not set
|
||||
# CONFIG_I2O_SCSI is not set
|
||||
# CONFIG_I2O_PROC is not set
|
||||
|
||||
#
|
||||
# Network device support
|
||||
#
|
||||
CONFIG_NETDEVICES=y
|
||||
|
||||
#
|
||||
# ARCnet devices
|
||||
#
|
||||
# CONFIG_ARCNET is not set
|
||||
CONFIG_DUMMY=m
|
||||
# CONFIG_BONDING is not set
|
||||
# CONFIG_EQUALIZER is not set
|
||||
# CONFIG_TUN is not set
|
||||
# CONFIG_ETHERTAP is not set
|
||||
# CONFIG_NET_SB1000 is not set
|
||||
|
||||
#
|
||||
# Ethernet (10 or 100Mbit)
|
||||
#
|
||||
CONFIG_NET_ETHERNET=y
|
||||
# CONFIG_SUNLANCE is not set
|
||||
# CONFIG_HAPPYMEAL is not set
|
||||
# CONFIG_SUNBMAC is not set
|
||||
# CONFIG_SUNQE is not set
|
||||
# CONFIG_SUNGEM is not set
|
||||
# CONFIG_NET_VENDOR_3COM is not set
|
||||
# CONFIG_LANCE is not set
|
||||
# CONFIG_NET_VENDOR_SMC is not set
|
||||
# CONFIG_NET_VENDOR_RACAL is not set
|
||||
# CONFIG_AT1700 is not set
|
||||
# CONFIG_DEPCA is not set
|
||||
# CONFIG_HP100 is not set
|
||||
# CONFIG_NET_ISA is not set
|
||||
CONFIG_NET_PCI=y
|
||||
# CONFIG_PCNET32 is not set
|
||||
# CONFIG_AMD8111_ETH is not set
|
||||
# CONFIG_ADAPTEC_STARFIRE is not set
|
||||
# CONFIG_AC3200 is not set
|
||||
# CONFIG_APRICOT is not set
|
||||
# CONFIG_B44 is not set
|
||||
# CONFIG_CS89x0 is not set
|
||||
# CONFIG_TULIP is not set
|
||||
# CONFIG_DE4X5 is not set
|
||||
# CONFIG_DGRS is not set
|
||||
# CONFIG_DM9102 is not set
|
||||
# CONFIG_EEPRO100 is not set
|
||||
# CONFIG_EEPRO100_PIO is not set
|
||||
# CONFIG_E100 is not set
|
||||
# CONFIG_LNE390 is not set
|
||||
# CONFIG_FEALNX is not set
|
||||
# CONFIG_NATSEMI is not set
|
||||
# CONFIG_NE2K_PCI is not set
|
||||
# CONFIG_FORCEDETH is not set
|
||||
# CONFIG_NE3210 is not set
|
||||
# CONFIG_ES3210 is not set
|
||||
# CONFIG_8139CP is not set
|
||||
CONFIG_8139TOO=y
|
||||
CONFIG_8139TOO_PIO=y
|
||||
# CONFIG_8139TOO_TUNE_TWISTER is not set
|
||||
# CONFIG_8139TOO_8129 is not set
|
||||
# CONFIG_8139_OLD_RX_RESET is not set
|
||||
# CONFIG_SIS900 is not set
|
||||
# CONFIG_EPIC100 is not set
|
||||
# CONFIG_SUNDANCE is not set
|
||||
# CONFIG_SUNDANCE_MMIO is not set
|
||||
# CONFIG_TLAN is not set
|
||||
# CONFIG_VIA_RHINE is not set
|
||||
# CONFIG_VIA_RHINE_MMIO is not set
|
||||
# CONFIG_WINBOND_840 is not set
|
||||
# CONFIG_NET_POCKET is not set
|
||||
|
||||
#
|
||||
# Ethernet (1000 Mbit)
|
||||
#
|
||||
# CONFIG_ACENIC is not set
|
||||
# CONFIG_DL2K is not set
|
||||
# CONFIG_E1000 is not set
|
||||
# CONFIG_MYRI_SBUS is not set
|
||||
# CONFIG_NS83820 is not set
|
||||
# CONFIG_HAMACHI is not set
|
||||
# CONFIG_YELLOWFIN is not set
|
||||
# CONFIG_R8169 is not set
|
||||
# CONFIG_SK98LIN is not set
|
||||
# CONFIG_TIGON3 is not set
|
||||
# CONFIG_FDDI is not set
|
||||
# CONFIG_HIPPI is not set
|
||||
# CONFIG_PLIP is not set
|
||||
# CONFIG_PPP is not set
|
||||
# CONFIG_SLIP is not set
|
||||
|
||||
#
|
||||
# Wireless LAN (non-hamradio)
|
||||
#
|
||||
# CONFIG_NET_RADIO is not set
|
||||
|
||||
#
|
||||
# Token Ring devices
|
||||
#
|
||||
# CONFIG_TR is not set
|
||||
# CONFIG_NET_FC is not set
|
||||
# CONFIG_RCPCI is not set
|
||||
# CONFIG_SHAPER is not set
|
||||
|
||||
#
|
||||
# Wan interfaces
|
||||
#
|
||||
# CONFIG_WAN is not set
|
||||
|
||||
#
|
||||
# PCMCIA network device support
|
||||
#
|
||||
# CONFIG_NET_PCMCIA is not set
|
||||
|
||||
#
|
||||
# ATM drivers
|
||||
#
|
||||
# CONFIG_ATM_TCP is not set
|
||||
# CONFIG_ATM_LANAI is not set
|
||||
# CONFIG_ATM_ENI is not set
|
||||
# CONFIG_ATM_FIRESTREAM is not set
|
||||
# CONFIG_ATM_ZATM is not set
|
||||
# CONFIG_ATM_NICSTAR is not set
|
||||
# CONFIG_ATM_IDT77252 is not set
|
||||
# CONFIG_ATM_AMBASSADOR is not set
|
||||
# CONFIG_ATM_HORIZON is not set
|
||||
# CONFIG_ATM_IA is not set
|
||||
# CONFIG_ATM_FORE200E_MAYBE is not set
|
||||
# CONFIG_ATM_HE is not set
|
||||
|
||||
#
|
||||
# Amateur Radio support
|
||||
#
|
||||
# CONFIG_HAMRADIO is not set
|
||||
|
||||
#
|
||||
# IrDA (infrared) support
|
||||
#
|
||||
# CONFIG_IRDA is not set
|
||||
|
||||
#
|
||||
# ISDN subsystem
|
||||
#
|
||||
# CONFIG_ISDN is not set
|
||||
|
||||
#
|
||||
# Old CD-ROM drivers (not SCSI, not IDE)
|
||||
#
|
||||
# CONFIG_CD_NO_IDESCSI is not set
|
||||
|
||||
#
|
||||
# Input core support
|
||||
#
|
||||
# CONFIG_INPUT is not set
|
||||
# CONFIG_INPUT_KEYBDEV is not set
|
||||
# CONFIG_INPUT_MOUSEDEV is not set
|
||||
# CONFIG_INPUT_JOYDEV is not set
|
||||
# CONFIG_INPUT_EVDEV is not set
|
||||
# CONFIG_INPUT_UINPUT is not set
|
||||
|
||||
#
|
||||
# Character devices
|
||||
#
|
||||
CONFIG_VT=y
|
||||
CONFIG_VT_CONSOLE=y
|
||||
CONFIG_SERIAL=y
|
||||
# CONFIG_SERIAL_CONSOLE is not set
|
||||
# CONFIG_SERIAL_EXTENDED is not set
|
||||
# CONFIG_SERIAL_NONSTANDARD is not set
|
||||
CONFIG_UNIX98_PTYS=y
|
||||
CONFIG_UNIX98_PTY_COUNT=256
|
||||
|
||||
#
|
||||
# I2C support
|
||||
#
|
||||
# CONFIG_I2C is not set
|
||||
|
||||
#
|
||||
# Mice
|
||||
#
|
||||
# CONFIG_BUSMOUSE is not set
|
||||
CONFIG_MOUSE=y
|
||||
CONFIG_PSMOUSE=y
|
||||
# CONFIG_82C710_MOUSE is not set
|
||||
# CONFIG_PC110_PAD is not set
|
||||
# CONFIG_MK712_MOUSE is not set
|
||||
|
||||
#
|
||||
# Joysticks
|
||||
#
|
||||
# CONFIG_INPUT_GAMEPORT is not set
|
||||
# CONFIG_QIC02_TAPE is not set
|
||||
# CONFIG_IPMI_HANDLER is not set
|
||||
# CONFIG_IPMI_PANIC_EVENT is not set
|
||||
# CONFIG_IPMI_DEVICE_INTERFACE is not set
|
||||
# CONFIG_IPMI_KCS is not set
|
||||
# CONFIG_IPMI_WATCHDOG is not set
|
||||
|
||||
#
|
||||
# Watchdog Cards
|
||||
#
|
||||
# CONFIG_WATCHDOG is not set
|
||||
# CONFIG_SCx200 is not set
|
||||
# CONFIG_SCx200_GPIO is not set
|
||||
# CONFIG_AMD_RNG is not set
|
||||
# CONFIG_INTEL_RNG is not set
|
||||
# CONFIG_HW_RANDOM is not set
|
||||
# CONFIG_AMD_PM768 is not set
|
||||
# CONFIG_NVRAM is not set
|
||||
# CONFIG_RTC is not set
|
||||
# CONFIG_DTLK is not set
|
||||
# CONFIG_R3964 is not set
|
||||
# CONFIG_APPLICOM is not set
|
||||
# CONFIG_SONYPI is not set
|
||||
|
||||
#
|
||||
# Ftape, the floppy tape device driver
|
||||
#
|
||||
# CONFIG_FTAPE is not set
|
||||
# CONFIG_AGP is not set
|
||||
|
||||
#
|
||||
# Direct Rendering Manager (XFree86 DRI support)
|
||||
#
|
||||
# CONFIG_DRM is not set
|
||||
|
||||
#
|
||||
# PCMCIA character devices
|
||||
#
|
||||
# CONFIG_PCMCIA_SERIAL_CS is not set
|
||||
# CONFIG_SYNCLINK_CS is not set
|
||||
# CONFIG_MWAVE is not set
|
||||
# CONFIG_OBMOUSE is not set
|
||||
|
||||
#
|
||||
# Multimedia devices
|
||||
#
|
||||
# CONFIG_VIDEO_DEV is not set
|
||||
|
||||
#
|
||||
# File systems
|
||||
#
|
||||
# CONFIG_QUOTA is not set
|
||||
# CONFIG_QFMT_V2 is not set
|
||||
# CONFIG_AUTOFS_FS is not set
|
||||
CONFIG_AUTOFS4_FS=y
|
||||
# CONFIG_REISERFS_FS is not set
|
||||
# CONFIG_REISERFS_CHECK is not set
|
||||
# CONFIG_REISERFS_PROC_INFO is not set
|
||||
# CONFIG_ADFS_FS is not set
|
||||
# CONFIG_ADFS_FS_RW is not set
|
||||
# CONFIG_AFFS_FS is not set
|
||||
# CONFIG_HFS_FS is not set
|
||||
# CONFIG_HFSPLUS_FS is not set
|
||||
# CONFIG_BEFS_FS is not set
|
||||
# CONFIG_BEFS_DEBUG is not set
|
||||
# CONFIG_BFS_FS is not set
|
||||
# CONFIG_EXT3_FS is not set
|
||||
# CONFIG_JBD is not set
|
||||
# CONFIG_JBD_DEBUG is not set
|
||||
# CONFIG_FAT_FS is not set
|
||||
# CONFIG_MSDOS_FS is not set
|
||||
# CONFIG_UMSDOS_FS is not set
|
||||
# CONFIG_VFAT_FS is not set
|
||||
# CONFIG_EFS_FS is not set
|
||||
# CONFIG_JFFS_FS is not set
|
||||
# CONFIG_JFFS2_FS is not set
|
||||
# CONFIG_CRAMFS is not set
|
||||
CONFIG_TMPFS=y
|
||||
CONFIG_RAMFS=y
|
||||
CONFIG_ISO9660_FS=y
|
||||
# CONFIG_JOLIET is not set
|
||||
# CONFIG_ZISOFS is not set
|
||||
# CONFIG_JFS_FS is not set
|
||||
# CONFIG_JFS_DEBUG is not set
|
||||
# CONFIG_JFS_STATISTICS is not set
|
||||
# CONFIG_MINIX_FS is not set
|
||||
# CONFIG_VXFS_FS is not set
|
||||
# CONFIG_NTFS_FS is not set
|
||||
# CONFIG_NTFS_RW is not set
|
||||
# CONFIG_HPFS_FS is not set
|
||||
CONFIG_PROC_FS=y
|
||||
# CONFIG_DEVFS_FS is not set
|
||||
# CONFIG_DEVFS_MOUNT is not set
|
||||
# CONFIG_DEVFS_DEBUG is not set
|
||||
CONFIG_DEVPTS_FS=y
|
||||
# CONFIG_QNX4FS_FS is not set
|
||||
# CONFIG_QNX4FS_RW is not set
|
||||
# CONFIG_ROMFS_FS is not set
|
||||
CONFIG_EXT2_FS=y
|
||||
# CONFIG_SYSV_FS is not set
|
||||
# CONFIG_UDF_FS is not set
|
||||
# CONFIG_UDF_RW is not set
|
||||
# CONFIG_UFS_FS is not set
|
||||
# CONFIG_UFS_FS_WRITE is not set
|
||||
# CONFIG_XFS_FS is not set
|
||||
# CONFIG_XFS_QUOTA is not set
|
||||
# CONFIG_XFS_RT is not set
|
||||
# CONFIG_XFS_TRACE is not set
|
||||
# CONFIG_XFS_DEBUG is not set
|
||||
|
||||
#
|
||||
# Network File Systems
|
||||
#
|
||||
# CONFIG_CODA_FS is not set
|
||||
# CONFIG_INTERMEZZO_FS is not set
|
||||
CONFIG_NFS_FS=y
|
||||
# CONFIG_NFS_V3 is not set
|
||||
# CONFIG_NFS_DIRECTIO is not set
|
||||
# CONFIG_ROOT_NFS is not set
|
||||
CONFIG_NFSD=y
|
||||
# CONFIG_NFSD_V3 is not set
|
||||
CONFIG_NFSD_TCP=y
|
||||
CONFIG_SUNRPC=y
|
||||
CONFIG_LOCKD=y
|
||||
# CONFIG_SMB_FS is not set
|
||||
# CONFIG_NCP_FS is not set
|
||||
# CONFIG_NCPFS_PACKET_SIGNING is not set
|
||||
# CONFIG_NCPFS_IOCTL_LOCKING is not set
|
||||
# CONFIG_NCPFS_STRONG is not set
|
||||
# CONFIG_NCPFS_NFS_NS is not set
|
||||
# CONFIG_NCPFS_OS2_NS is not set
|
||||
# CONFIG_NCPFS_SMALLDOS is not set
|
||||
# CONFIG_NCPFS_NLS is not set
|
||||
# CONFIG_NCPFS_EXTRAS is not set
|
||||
# CONFIG_ZISOFS_FS is not set
|
||||
|
||||
#
|
||||
# Partition Types
|
||||
#
|
||||
# CONFIG_PARTITION_ADVANCED is not set
|
||||
CONFIG_MSDOS_PARTITION=y
|
||||
# CONFIG_SMB_NLS is not set
|
||||
# CONFIG_NLS is not set
|
||||
|
||||
#
|
||||
# Console drivers
|
||||
#
|
||||
CONFIG_VGA_CONSOLE=y
|
||||
# CONFIG_VIDEO_SELECT is not set
|
||||
# CONFIG_MDA_CONSOLE is not set
|
||||
|
||||
#
|
||||
# Frame-buffer support
|
||||
#
|
||||
# CONFIG_FB is not set
|
||||
|
||||
#
|
||||
# Sound
|
||||
#
|
||||
CONFIG_SOUND=y
|
||||
# CONFIG_SOUND_ALI5455 is not set
|
||||
# CONFIG_SOUND_BT878 is not set
|
||||
# CONFIG_SOUND_CMPCI is not set
|
||||
CONFIG_SOUND_EMU10K1=y
|
||||
CONFIG_MIDI_EMU10K1=y
|
||||
# CONFIG_SOUND_FUSION is not set
|
||||
# CONFIG_SOUND_CS4281 is not set
|
||||
# CONFIG_SOUND_ES1370 is not set
|
||||
# CONFIG_SOUND_ES1371 is not set
|
||||
# CONFIG_SOUND_ESSSOLO1 is not set
|
||||
# CONFIG_SOUND_MAESTRO is not set
|
||||
# CONFIG_SOUND_MAESTRO3 is not set
|
||||
# CONFIG_SOUND_FORTE is not set
|
||||
# CONFIG_SOUND_ICH is not set
|
||||
# CONFIG_SOUND_RME96XX is not set
|
||||
# CONFIG_SOUND_SONICVIBES is not set
|
||||
# CONFIG_SOUND_TRIDENT is not set
|
||||
# CONFIG_SOUND_MSNDCLAS is not set
|
||||
# CONFIG_SOUND_MSNDPIN is not set
|
||||
# CONFIG_SOUND_VIA82CXXX is not set
|
||||
# CONFIG_MIDI_VIA82CXXX is not set
|
||||
# CONFIG_SOUND_OSS is not set
|
||||
# CONFIG_SOUND_TVMIXER is not set
|
||||
# CONFIG_SOUND_AD1980 is not set
|
||||
# CONFIG_SOUND_WM97XX is not set
|
||||
|
||||
#
|
||||
# USB support
|
||||
#
|
||||
CONFIG_USB=y
|
||||
# CONFIG_USB_DEBUG is not set
|
||||
# CONFIG_USB_DEVICEFS is not set
|
||||
# CONFIG_USB_BANDWIDTH is not set
|
||||
# CONFIG_USB_EHCI_HCD is not set
|
||||
CONFIG_USB_UHCI_ALT=y
|
||||
# CONFIG_USB_OHCI is not set
|
||||
# CONFIG_USB_SL811HS_ALT is not set
|
||||
# CONFIG_USB_SL811HS is not set
|
||||
# CONFIG_USB_AUDIO is not set
|
||||
# CONFIG_USB_EMI26 is not set
|
||||
# CONFIG_USB_BLUETOOTH is not set
|
||||
# CONFIG_USB_MIDI is not set
|
||||
# CONFIG_USB_STORAGE is not set
|
||||
# CONFIG_USB_STORAGE_DEBUG is not set
|
||||
# CONFIG_USB_STORAGE_DATAFAB is not set
|
||||
# CONFIG_USB_STORAGE_FREECOM is not set
|
||||
# CONFIG_USB_STORAGE_ISD200 is not set
|
||||
# CONFIG_USB_STORAGE_DPCM is not set
|
||||
# CONFIG_USB_STORAGE_HP8200e is not set
|
||||
# CONFIG_USB_STORAGE_SDDR09 is not set
|
||||
# CONFIG_USB_STORAGE_SDDR55 is not set
|
||||
# CONFIG_USB_STORAGE_JUMPSHOT is not set
|
||||
# CONFIG_USB_ACM is not set
|
||||
# CONFIG_USB_PRINTER is not set
|
||||
# CONFIG_USB_HID is not set
|
||||
# CONFIG_USB_HIDINPUT is not set
|
||||
# CONFIG_USB_HIDDEV is not set
|
||||
# CONFIG_USB_KBD is not set
|
||||
# CONFIG_USB_MOUSE is not set
|
||||
# CONFIG_USB_AIPTEK is not set
|
||||
# CONFIG_USB_WACOM is not set
|
||||
# CONFIG_USB_KBTAB is not set
|
||||
# CONFIG_USB_POWERMATE is not set
|
||||
# CONFIG_USB_DC2XX is not set
|
||||
# CONFIG_USB_MDC800 is not set
|
||||
# CONFIG_USB_SCANNER is not set
|
||||
# CONFIG_USB_MICROTEK is not set
|
||||
# CONFIG_USB_HPUSBSCSI is not set
|
||||
# CONFIG_USB_PEGASUS is not set
|
||||
# CONFIG_USB_RTL8150 is not set
|
||||
# CONFIG_USB_KAWETH is not set
|
||||
# CONFIG_USB_CATC is not set
|
||||
# CONFIG_USB_CDCETHER is not set
|
||||
# CONFIG_USB_USBNET is not set
|
||||
# CONFIG_USB_USS720 is not set
|
||||
|
||||
#
|
||||
# USB Serial Converter support
|
||||
#
|
||||
# CONFIG_USB_SERIAL is not set
|
||||
# CONFIG_USB_RIO500 is not set
|
||||
# CONFIG_USB_AUERSWALD is not set
|
||||
# CONFIG_USB_TIGL is not set
|
||||
# CONFIG_USB_BRLVGER is not set
|
||||
# CONFIG_USB_LCD is not set
|
||||
# CONFIG_USB_SPEEDTOUCH is not set
|
||||
|
||||
#
|
||||
# Support for USB gadgets
|
||||
#
|
||||
# CONFIG_USB_GADGET is not set
|
||||
|
||||
#
|
||||
# Bluetooth support
|
||||
#
|
||||
# CONFIG_BLUEZ is not set
|
||||
|
||||
#
|
||||
# Kernel hacking
|
||||
#
|
||||
CONFIG_DEBUG_KERNEL=y
|
||||
CONFIG_DEBUG_STACKOVERFLOW=y
|
||||
CONFIG_DEBUG_HIGHMEM=y
|
||||
CONFIG_DEBUG_SLAB=y
|
||||
CONFIG_DEBUG_IOVIRT=y
|
||||
CONFIG_MAGIC_SYSRQ=y
|
||||
CONFIG_DEBUG_SPINLOCK=y
|
||||
CONFIG_FRAME_POINTER=y
|
||||
CONFIG_LOG_BUF_SHIFT=0
|
||||
|
||||
#
|
||||
# Cryptographic options
|
||||
#
|
||||
# CONFIG_CRYPTO is not set
|
||||
|
||||
#
|
||||
# Library routines
|
||||
#
|
||||
CONFIG_CRC32=y
|
||||
# CONFIG_ZLIB_INFLATE is not set
|
||||
# CONFIG_ZLIB_DEFLATE is not set
|
||||
# CONFIG_FW_LOADER is not set
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
|
|
@ -12,37 +12,37 @@ export TCPDIAG_FILE="$(dirname $0)/ss1.dump"
|
|||
ts_log "[Testing ssfilter]"
|
||||
|
||||
ts_ss "$0" "Match dport = 22" -Htna dport = 22
|
||||
test_on "ESTAB 0 0 10.0.0.1:36266 10.0.0.1:22"
|
||||
test_on "ESTAB 0 0 10.0.0.1:36266 10.0.0.1:22"
|
||||
|
||||
ts_ss "$0" "Match dport 22" -Htna dport 22
|
||||
test_on "ESTAB 0 0 10.0.0.1:36266 10.0.0.1:22"
|
||||
test_on "ESTAB 0 0 10.0.0.1:36266 10.0.0.1:22"
|
||||
|
||||
ts_ss "$0" "Match (dport)" -Htna '( dport = 22 )'
|
||||
test_on "ESTAB 0 0 10.0.0.1:36266 10.0.0.1:22"
|
||||
test_on "ESTAB 0 0 10.0.0.1:36266 10.0.0.1:22"
|
||||
|
||||
ts_ss "$0" "Match src = 0.0.0.0" -Htna src = 0.0.0.0
|
||||
test_on "LISTEN 0 128 0.0.0.0:22 0.0.0.0:*"
|
||||
test_on "LISTEN 0 128 0.0.0.0:22 0.0.0.0:*"
|
||||
|
||||
ts_ss "$0" "Match src 0.0.0.0" -Htna src 0.0.0.0
|
||||
test_on "LISTEN 0 128 0.0.0.0:22 0.0.0.0:*"
|
||||
test_on "LISTEN 0 128 0.0.0.0:22 0.0.0.0:*"
|
||||
|
||||
ts_ss "$0" "Match src sport" -Htna src 0.0.0.0 sport = 22
|
||||
test_on "LISTEN 0 128 0.0.0.0:22 0.0.0.0:*"
|
||||
test_on "LISTEN 0 128 0.0.0.0:22 0.0.0.0:*"
|
||||
|
||||
ts_ss "$0" "Match src and sport" -Htna src 0.0.0.0 and sport = 22
|
||||
test_on "LISTEN 0 128 0.0.0.0:22 0.0.0.0:*"
|
||||
test_on "LISTEN 0 128 0.0.0.0:22 0.0.0.0:*"
|
||||
|
||||
ts_ss "$0" "Match src and sport and dport" -Htna src 10.0.0.1 and sport = 22 and dport = 50312
|
||||
test_on "ESTAB 0 0 10.0.0.1:22 10.0.0.2:50312"
|
||||
test_on "ESTAB 0 0 10.0.0.1:22 10.0.0.2:50312"
|
||||
|
||||
ts_ss "$0" "Match src and sport and (dport)" -Htna 'src 10.0.0.1 and sport = 22 and ( dport = 50312 )'
|
||||
test_on "ESTAB 0 0 10.0.0.1:22 10.0.0.2:50312"
|
||||
test_on "ESTAB 0 0 10.0.0.1:22 10.0.0.2:50312"
|
||||
|
||||
ts_ss "$0" "Match src and (sport and dport)" -Htna 'src 10.0.0.1 and ( sport = 22 and dport = 50312 )'
|
||||
test_on "ESTAB 0 0 10.0.0.1:22 10.0.0.2:50312"
|
||||
test_on "ESTAB 0 0 10.0.0.1:22 10.0.0.2:50312"
|
||||
|
||||
ts_ss "$0" "Match (src and sport) and dport" -Htna '( src 10.0.0.1 and sport = 22 ) and dport = 50312'
|
||||
test_on "ESTAB 0 0 10.0.0.1:22 10.0.0.2:50312"
|
||||
test_on "ESTAB 0 0 10.0.0.1:22 10.0.0.2:50312"
|
||||
|
||||
ts_ss "$0" "Match (src or src) and dst" -Htna '( src 0.0.0.0 or src 10.0.0.1 ) and dst 10.0.0.2'
|
||||
test_on "ESTAB 0 0 10.0.0.1:22 10.0.0.2:50312"
|
||||
test_on "ESTAB 0 0 10.0.0.1:22 10.0.0.2:50312"
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@ CFLAGS=
|
|||
include ../../config.mk
|
||||
|
||||
generate_nlmsg: generate_nlmsg.c ../../lib/libnetlink.c
|
||||
$(QUIET_CC) $(CPPFLAGS) $(CFLAGS) $(EXTRA_CFLAGS) -I../../include -include../../include/uapi/linux/netlink.h -o $@ $^ -lmnl
|
||||
$(QUIET_CC)$(CC) $(CPPFLAGS) $(CFLAGS) $(EXTRA_CFLAGS) -I../../include -include../../include/uapi/linux/netlink.h -o $@ $^ -lmnl
|
||||
|
||||
clean:
|
||||
rm -f generate_nlmsg
|
||||
|
|
|
|||
|
|
@ -17,7 +17,7 @@
|
|||
|
||||
#include "cmdl.h"
|
||||
|
||||
const struct cmd *find_cmd(const struct cmd *cmds, char *str)
|
||||
static const struct cmd *find_cmd(const struct cmd *cmds, char *str)
|
||||
{
|
||||
const struct cmd *c;
|
||||
const struct cmd *match = NULL;
|
||||
|
|
|
|||
|
|
@ -54,6 +54,4 @@ char *shift_cmdl(struct cmdl *cmdl);
|
|||
int run_cmd(struct nlmsghdr *nlh, const struct cmd *caller,
|
||||
const struct cmd *cmds, struct cmdl *cmdl, void *data);
|
||||
|
||||
const struct cmd *find_cmd(const struct cmd *cmds, char *str);
|
||||
|
||||
#endif
|
||||
|
|
|
|||
Loading…
Reference in New Issue