summaryrefslogtreecommitdiff
path: root/sysdep/unix
diff options
context:
space:
mode:
authorOndrej Zajicek <santiago@crfreenet.org>2015-05-12 16:42:22 +0200
committerOndrej Zajicek <santiago@crfreenet.org>2015-05-12 16:42:22 +0200
commit9fdf9d29b6b570205c36934aab7e50539e042102 (patch)
treef70ca684fe4ef875c9634a57896353b88c46df38 /sysdep/unix
parent315f23a0470112ced04badbb117bc7854ee53e06 (diff)
KRT: Add support for plenty of kernel route metrics
Linux kernel route metrics (RTA_METRICS netlink route attribute) are represented and accessible as new route attributes: krt_mtu, krt_window, krt_rtt, krt_rttvar, krt_sstresh, krt_cwnd, krt_advmss, krt_reordering, krt_hoplimit, krt_initcwnd, krt_rto_min, krt_initrwnd, krt_quickack, krt_lock_mtu, krt_lock_window, krt_lock_rtt, krt_lock_rttvar, krt_lock_sstresh, krt_lock_cwnd, krt_lock_advmss, krt_lock_reordering, krt_lock_hoplimit, krt_lock_rto_min, krt_feature_ecn, krt_feature_allfrag
Diffstat (limited to 'sysdep/unix')
-rw-r--r--sysdep/unix/krt.c12
-rw-r--r--sysdep/unix/krt.h3
2 files changed, 3 insertions, 12 deletions
diff --git a/sysdep/unix/krt.c b/sysdep/unix/krt.c
index efdf4bdd..cfb623ce 100644
--- a/sysdep/unix/krt.c
+++ b/sysdep/unix/krt.c
@@ -1191,7 +1191,7 @@ krt_copy_config(struct proto_config *dest, struct proto_config *src)
}
static int
-krt_get_attr(eattr * a, byte * buf, int buflen UNUSED)
+krt_get_attr(eattr *a, byte *buf, int buflen)
{
switch (a->id)
{
@@ -1203,16 +1203,8 @@ krt_get_attr(eattr * a, byte * buf, int buflen UNUSED)
bsprintf(buf, "metric");
return GA_NAME;
- case EA_KRT_PREFSRC:
- bsprintf(buf, "prefsrc");
- return GA_NAME;
-
- case EA_KRT_REALM:
- bsprintf(buf, "realm");
- return GA_NAME;
-
default:
- return GA_UNKNOWN;
+ return krt_sys_get_attr(a, buf, buflen);
}
}
diff --git a/sysdep/unix/krt.h b/sysdep/unix/krt.h
index f0fd6261..1940cbcd 100644
--- a/sysdep/unix/krt.h
+++ b/sysdep/unix/krt.h
@@ -28,8 +28,6 @@ struct kif_proto;
#define EA_KRT_SOURCE EA_CODE(EAP_KRT, 0)
#define EA_KRT_METRIC EA_CODE(EAP_KRT, 1)
-#define EA_KRT_PREFSRC EA_CODE(EAP_KRT, 2)
-#define EA_KRT_REALM EA_CODE(EAP_KRT, 3)
/* Whenever we recognize our own routes, we allow learing of foreign routes */
@@ -131,6 +129,7 @@ void krt_sys_copy_config(struct krt_config *, struct krt_config *);
int krt_capable(rte *e);
void krt_do_scan(struct krt_proto *);
void krt_replace_rte(struct krt_proto *p, net *n, rte *new, rte *old, struct ea_list *eattrs);
+int krt_sys_get_attr(eattr *a, byte *buf, int buflen);
/* kif sysdep */