Merge branch 'master' into net-next
This commit is contained in:
commit
6831acc8ef
|
|
@ -10,6 +10,7 @@ Config
|
||||||
# cscope
|
# cscope
|
||||||
cscope.*
|
cscope.*
|
||||||
ncscope.*
|
ncscope.*
|
||||||
|
tags
|
||||||
TAGS
|
TAGS
|
||||||
|
|
||||||
# git files that we don't want to ignore even it they are dot-files
|
# git files that we don't want to ignore even it they are dot-files
|
||||||
|
|
|
||||||
|
|
@ -39,7 +39,7 @@ static void usage(void)
|
||||||
{
|
{
|
||||||
fprintf(stderr, "Usage: ip tuntap { add | del | show | list | lst | help } [ dev PHYS_DEV ]\n");
|
fprintf(stderr, "Usage: ip tuntap { add | del | show | list | lst | help } [ dev PHYS_DEV ]\n");
|
||||||
fprintf(stderr, " [ mode { tun | tap } ] [ user USER ] [ group GROUP ]\n");
|
fprintf(stderr, " [ mode { tun | tap } ] [ user USER ] [ group GROUP ]\n");
|
||||||
fprintf(stderr, " [ one_queue ] [ pi ] [ vnet_hdr ] [ multi_queue ]\n");
|
fprintf(stderr, " [ one_queue ] [ pi ] [ vnet_hdr ] [ multi_queue ] [ name NAME ]\n");
|
||||||
fprintf(stderr, "\n");
|
fprintf(stderr, "\n");
|
||||||
fprintf(stderr, "Where: USER := { STRING | NUMBER }\n");
|
fprintf(stderr, "Where: USER := { STRING | NUMBER }\n");
|
||||||
fprintf(stderr, " GROUP := { STRING | NUMBER }\n");
|
fprintf(stderr, " GROUP := { STRING | NUMBER }\n");
|
||||||
|
|
|
||||||
|
|
@ -93,7 +93,7 @@ Each policy routing rule consists of a
|
||||||
.B selector
|
.B selector
|
||||||
and an
|
and an
|
||||||
.B action predicate.
|
.B action predicate.
|
||||||
The RPDB is scanned in order of increasing priority. The selector
|
The RPDB is scanned in order of decreasing priority. The selector
|
||||||
of each rule is applied to {source address, destination address, incoming
|
of each rule is applied to {source address, destination address, incoming
|
||||||
interface, tos, fwmark} and, if the selector matches the packet,
|
interface, tos, fwmark} and, if the selector matches the packet,
|
||||||
the action is performed. The action predicate may return with success.
|
the action is performed. The action predicate may return with success.
|
||||||
|
|
@ -221,8 +221,10 @@ value to match.
|
||||||
|
|
||||||
.TP
|
.TP
|
||||||
.BI priority " PREFERENCE"
|
.BI priority " PREFERENCE"
|
||||||
the priority of this rule. Each rule should have an explicitly
|
the priority of this rule.
|
||||||
set
|
.I PREFERENCE
|
||||||
|
is an unsigned integer value, higher number means lower priority. Each rule
|
||||||
|
should have an explicitly set
|
||||||
.I unique
|
.I unique
|
||||||
priority value.
|
priority value.
|
||||||
The options preference and order are synonyms with priority.
|
The options preference and order are synonyms with priority.
|
||||||
|
|
|
||||||
18
misc/nstat.c
18
misc/nstat.c
|
|
@ -76,6 +76,11 @@ static int net_snmp6_open(void)
|
||||||
return generic_proc_open("PROC_NET_SNMP6", "net/snmp6");
|
return generic_proc_open("PROC_NET_SNMP6", "net/snmp6");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static int net_sctp_snmp_open(void)
|
||||||
|
{
|
||||||
|
return generic_proc_open("PROC_NET_SCTP_SNMP", "net/sctp/snmp");
|
||||||
|
}
|
||||||
|
|
||||||
struct nstat_ent {
|
struct nstat_ent {
|
||||||
struct nstat_ent *next;
|
struct nstat_ent *next;
|
||||||
char *id;
|
char *id;
|
||||||
|
|
@ -247,6 +252,16 @@ static void load_ugly_table(FILE *fp)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void load_sctp_snmp(void)
|
||||||
|
{
|
||||||
|
FILE *fp = fdopen(net_sctp_snmp_open(), "r");
|
||||||
|
|
||||||
|
if (fp) {
|
||||||
|
load_good_table(fp);
|
||||||
|
fclose(fp);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
static void load_snmp(void)
|
static void load_snmp(void)
|
||||||
{
|
{
|
||||||
FILE *fp = fdopen(net_snmp_open(), "r");
|
FILE *fp = fdopen(net_snmp_open(), "r");
|
||||||
|
|
@ -391,6 +406,7 @@ static void update_db(int interval)
|
||||||
load_netstat();
|
load_netstat();
|
||||||
load_snmp6();
|
load_snmp6();
|
||||||
load_snmp();
|
load_snmp();
|
||||||
|
load_sctp_snmp();
|
||||||
|
|
||||||
h = kern_db;
|
h = kern_db;
|
||||||
kern_db = n;
|
kern_db = n;
|
||||||
|
|
@ -450,6 +466,7 @@ static void server_loop(int fd)
|
||||||
load_netstat();
|
load_netstat();
|
||||||
load_snmp6();
|
load_snmp6();
|
||||||
load_snmp();
|
load_snmp();
|
||||||
|
load_sctp_snmp();
|
||||||
|
|
||||||
for (;;) {
|
for (;;) {
|
||||||
int status;
|
int status;
|
||||||
|
|
@ -706,6 +723,7 @@ int main(int argc, char *argv[])
|
||||||
load_netstat();
|
load_netstat();
|
||||||
load_snmp6();
|
load_snmp6();
|
||||||
load_snmp();
|
load_snmp();
|
||||||
|
load_sctp_snmp();
|
||||||
if (info_source[0] == 0)
|
if (info_source[0] == 0)
|
||||||
strcpy(info_source, "kernel");
|
strcpy(info_source, "kernel");
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue