aboutsummaryrefslogtreecommitdiffstats
path: root/libbridge/libbridge_devif.c
diff options
context:
space:
mode:
Diffstat (limited to 'libbridge/libbridge_devif.c')
-rw-r--r--libbridge/libbridge_devif.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/libbridge/libbridge_devif.c b/libbridge/libbridge_devif.c
index 3a4868c..aa8bc36 100644
--- a/libbridge/libbridge_devif.c
+++ b/libbridge/libbridge_devif.c
@@ -238,6 +238,7 @@ static int old_get_port_info(const char *brname, const char *port,
__jiffies_to_tv(&info->forward_delay_timer_value,
i.forward_delay_timer_value);
__jiffies_to_tv(&info->hold_timer_value, i.hold_timer_value);
+ info->hairpin_mode = 0;
return 0;
}
@@ -270,6 +271,8 @@ int br_get_port_info(const char *brname, const char *port,
fetch_tv(path, "message_age_timer", &info->message_age_timer_value);
fetch_tv(path, "forward_delay_timer", &info->forward_delay_timer_value);
fetch_tv(path, "hold_timer", &info->hold_timer_value);
+ info->hairpin_mode = fetch_int(path, "hairpin_mode");
+
closedir(d);
return 0;
@@ -380,6 +383,11 @@ int br_set_path_cost(const char *bridge, const char *port, int cost)
return port_set(bridge, port, "path_cost", cost, BRCTL_SET_PATH_COST);
}
+int br_set_hairpin_mode(const char *bridge, const char *port, int hairpin_mode)
+{
+ return port_set(bridge, port, "hairpin_mode", hairpin_mode, 0);
+}
+
static inline void __copy_fdb(struct fdb_entry *ent,
const struct __fdb_entry *f)
{