diff options
Diffstat (limited to 'libbridge/libbridge_devif.c')
-rw-r--r-- | libbridge/libbridge_devif.c | 8 |
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) { |