faucet.valve_flood module

Manage flooding to ports on VLANs.

class faucet.valve_flood.ValveFloodManager(flood_table, flood_priority, use_group_table, groups)[source]

Bases: object

Implement dataplane based flooding for standalone dataplanes.

FLOOD_DSTS = ((True, None, None), (False, '01:80:c2:00:00:00', 'ff:ff:ff:00:00:00'), (False, '01:00:5E:00:00:00', 'ff:ff:ff:00:00:00'), (False, '33:33:00:00:00:00', 'ff:ff:00:00:00:00'), (False, 'ff:ff:ff:ff:ff:ff', None))
build_flood_rules(vlan, modify=False)[source]

Add flows to flood packets to unknown destinations on a VLAN.

static edge_learn_port(_other_valves, pkt_meta)[source]

Possibly learn a host on a port.

Args:
other_valves (list): All Valves other than this one. pkt_meta (PacketMeta): PacketMeta instance for packet received.
Returns:
port to learn host on.
class faucet.valve_flood.ValveFloodStackManager(flood_table, flood_priority, use_group_table, groups, stack, stack_ports, dp_shortest_path_to_root, shortest_path_port)[source]

Bases: faucet.valve_flood.ValveFloodManager

Implement dataplane based flooding for stacked dataplanes.

build_flood_rules(vlan, modify=False)[source]

Add flows to flood packets to unknown destinations on a VLAN.

edge_learn_port(other_valves, pkt_meta)[source]

Possibly learn a host on a port.

Args:
other_valves (list): All Valves other than this one. pkt_meta (PacketMeta): PacketMeta instance for packet received.
Returns:
port to learn host on, or None.