Skip to content

Commit 3b07228

Browse files
author
Josh Bailey
committed
Rename services, reduce slow advertise to 15s.
1 parent 5934bb4 commit 3b07228

File tree

3 files changed

+15
-16
lines changed

3 files changed

+15
-16
lines changed

faucet/faucet.py

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -61,8 +61,8 @@ class EventFaucetStateExpire(event.EventBase): # pylint: disable=too-few-public-
6161
"""Event used to trigger expiration of state in controller."""
6262
pass
6363

64-
class EventFaucetStackLinkStates(event.EventBase): # pylint: disable=too-few-public-methods
65-
"""Event used to update link stack states."""
64+
class EventFaucetFastStateExpire(event.EventBase): # pylint: disable=too-few-public-methods
65+
"""Event used to trigger fast expiration of state in controller."""
6666
pass
6767

6868

@@ -71,8 +71,8 @@ class EventFaucetAdvertise(event.EventBase): # pylint: disable=too-few-public-me
7171
pass
7272

7373

74-
class EventFaucetLLDPAdvertise(event.EventBase): # pylint: disable=too-few-public-methods
75-
"""Event used to trigger periodic LLDP beacons."""
74+
class EventFaucetFastAdvertise(event.EventBase): # pylint: disable=too-few-public-methods
75+
"""Event used to trigger periodic fast network advertisements (eg LACP)."""
7676
pass
7777

7878

@@ -92,9 +92,9 @@ class Faucet(RyuAppBase):
9292
EventFaucetMetricUpdate: (None, 5),
9393
EventFaucetResolveGateways: ('resolve_gateways', 2),
9494
EventFaucetStateExpire: ('state_expire', 5),
95-
EventFaucetStackLinkStates: ('update_stack_link_states', 2),
95+
EventFaucetFastStateExpire: ('fast_state_expire', 2),
9696
EventFaucetAdvertise: ('advertise', 15),
97-
EventFaucetLLDPAdvertise: ('send_lldp_beacons', 5),
97+
EventFaucetFastAdvertise: ('fast_advertise', 5),
9898
}
9999
logname = 'faucet'
100100
exc_logname = logname + '.exception'
@@ -199,9 +199,9 @@ def metric_update(self, _):
199199

200200
@set_ev_cls(EventFaucetResolveGateways, MAIN_DISPATCHER)
201201
@set_ev_cls(EventFaucetStateExpire, MAIN_DISPATCHER)
202-
@set_ev_cls(EventFaucetStackLinkStates, MAIN_DISPATCHER)
202+
@set_ev_cls(EventFaucetFastStateExpire, MAIN_DISPATCHER)
203203
@set_ev_cls(EventFaucetAdvertise, MAIN_DISPATCHER)
204-
@set_ev_cls(EventFaucetLLDPAdvertise, MAIN_DISPATCHER)
204+
@set_ev_cls(EventFaucetFastAdvertise, MAIN_DISPATCHER)
205205
@kill_on_exception(exc_logname)
206206
def _valve_flow_services(self, ryu_event):
207207
"""Call a method on all Valves and send any resulting flows."""

faucet/valve.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -545,7 +545,7 @@ def _send_lldp_beacon_on_port(self, port, now):
545545
port.dyn_last_lldp_beacon_time = now
546546
return valve_of.packetout(port.number, lldp_beacon_pkt.data)
547547

548-
def send_lldp_beacons(self, now, _other_valves):
548+
def fast_advertise(self, now, _other_valves):
549549
"""Called periodically to send LLDP beacon packets."""
550550
# TODO: the beacon service is specifically NOT to support conventional R/STP.
551551
# It is intended to facilitate physical troubleshooting (e.g.
@@ -613,7 +613,7 @@ def _update_stack_link_state(self, port, now, other_valves):
613613
for valve in [self] + other_valves:
614614
valve.flood_manager.update_stack_topo(port_stack_up, self.dp, port)
615615

616-
def update_stack_link_states(self, now, other_valves):
616+
def fast_state_expire(self, now, other_valves):
617617
"""Called periodically to verify the state of stack ports."""
618618
for port in self.dp.stack_ports:
619619
self._update_stack_link_state(port, now, other_valves)

tests/unit/faucet/test_valve.py

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -603,8 +603,7 @@ def rcv_packet(self, port, vid, match):
603603
rcv_packet_ofmsgs = self.last_flows_to_dp[self.DP_ID]
604604
self.table.apply_ofmsgs(rcv_packet_ofmsgs)
605605
for valve_service in (
606-
'resolve_gateways', 'advertise',
607-
'send_lldp_beacons', 'state_expire'):
606+
'resolve_gateways', 'advertise', 'fast_advertise', 'state_expire'):
608607
self.valves_manager.valve_flow_services(
609608
now, valve_service)
610609
self.valves_manager.update_metrics(now)
@@ -1285,7 +1284,7 @@ def test_port_acl_deny(self):
12851284
def test_lldp_beacon(self):
12861285
"""Test LLDP beacon service."""
12871286
# TODO: verify LLDP packet content.
1288-
self.assertTrue(self.valve.send_lldp_beacons(time.time(), None))
1287+
self.assertTrue(self.valve.fast_advertise(time.time(), None))
12891288

12901289
def test_unknown_port(self):
12911290
"""Test port status change for unknown port handled."""
@@ -1887,7 +1886,7 @@ def test_stack_probe(self):
18871886
other_dp = self.valves_manager.valves[2].dp
18881887
other_port = other_dp.ports[1]
18891888
other_valves = self.valves_manager._other_running_valves(self.valve)
1890-
self.valve.update_stack_link_states(time.time(), other_valves)
1889+
self.valve.fast_state_expire(time.time(), other_valves)
18911890
self.assertTrue(stack_port.is_stack_down())
18921891
for change_func, check_func in [
18931892
('stack_init', 'is_stack_init'),
@@ -1920,7 +1919,7 @@ def test_stack_lost_lldp(self):
19201919
self.rcv_lldp(stack_port, other_dp, other_port)
19211920
self.assertTrue(stack_port.is_stack_init())
19221921
other_valves = self.valves_manager._other_running_valves(self.valve)
1923-
self.valve.update_stack_link_states(time.time() + 300, other_valves) # simulate packet loss
1922+
self.valve.fast_state_expire(time.time() + 300, other_valves) # simulate packet loss
19241923
self.assertTrue(stack_port.is_stack_down())
19251924

19261925

@@ -1947,7 +1946,7 @@ def down_stack_port(port):
19471946
peer_port.stack_down()
19481947
self.valves_manager.valve_flow_services(
19491948
time.time() + 600,
1950-
'update_stack_link_states')
1949+
'fast_state_expire')
19511950
self.assertTrue(port.is_stack_down())
19521951

19531952
def verify_stack_learn_edges(num_edges, edge=None, test_func=None):

0 commit comments

Comments
 (0)