faucet.valve_route module

Valve IPv4/IPv6 routing implementation.

class faucet.valve_route.NextHop(eth_src, now)[source]

Bases: object

Describes a directly connected (at layer 2) nexthop.

class faucet.valve_route.ValveIPv4RouteManager(logger, arp_neighbor_timeout, max_hosts_per_resolve_cycle, max_host_fib_retry_count, max_resolve_backoff_time, proactive_learn, dec_ttl, fib_table, vip_table, eth_src_table, eth_dst_table, flood_table, route_priority, routers, use_group_table, groups)[source]

Bases: faucet.valve_route.ValveRouteManager

Implement IPv4 RIB/FIB.

CONTROL_ETH_TYPES = (2048, 2054)
ETH_TYPE = 2048
ICMP_TYPE = 1
IPV = 4
control_plane_handler(pkt_meta)[source]
class faucet.valve_route.ValveIPv6RouteManager(logger, arp_neighbor_timeout, max_hosts_per_resolve_cycle, max_host_fib_retry_count, max_resolve_backoff_time, proactive_learn, dec_ttl, fib_table, vip_table, eth_src_table, eth_dst_table, flood_table, route_priority, routers, use_group_table, groups)[source]

Bases: faucet.valve_route.ValveRouteManager

Implement IPv6 FIB.

CONTROL_ETH_TYPES = (34525,)
ETH_TYPE = 34525
ICMP_TYPE = 58
IPV = 6
advertise(vlan)[source]
control_plane_handler(pkt_meta)[source]
class faucet.valve_route.ValveRouteManager(logger, arp_neighbor_timeout, max_hosts_per_resolve_cycle, max_host_fib_retry_count, max_resolve_backoff_time, proactive_learn, dec_ttl, fib_table, vip_table, eth_src_table, eth_dst_table, flood_table, route_priority, routers, use_group_table, groups)[source]

Bases: object

Base class to implement RIB/FIB.

CONTROL_ETH_TYPES = None
ETH_TYPE = None
ICMP_TYPE = None
IPV = None
MAX_LEN = 128
add_faucet_vip(vlan, faucet_vip)[source]
add_host_fib_route_from_pkt(pkt_meta)[source]

Add a host FIB route given packet from host.

Args:
pkt_meta (PacketMeta): received packet.
Returns:
list: OpenFlow messages.
add_route(vlan, ip_gw, ip_dst)[source]

Add a route to the RIB.

Args:
vlan (vlan): VLAN containing this RIB. ip_gw (ipaddress.ip_address): IP address of nexthop. ip_dst (ipaddress.ip_network): destination IP network.
Returns:
list: OpenFlow messages.
advertise(vlan)[source]
control_plane_handler(pkt_meta)[source]
del_route(vlan, ip_dst)[source]

Delete a route from the RIB.

Only one route with this exact destination is supported.

Args:
vlan (vlan): VLAN containing this RIB. ip_dst (ipaddress.ip_network): destination IP network.
Returns:
list: OpenFlow messages.
resolve_gateways(vlan, now)[source]

Re/resolve all gateways.

Args:
vlan (vlan): VLAN containing this RIB/FIB. now (float): seconds since epoch.
Returns:
list: OpenFlow messages.
resolve_gw_on_vlan(vlan, faucet_vip, ip_gw)[source]