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.

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

Add a route to the RIB.

Parameters:
  • vlan (vlan) – VLAN containing this RIB.
  • ip_gw (ipaddress.ip_address) – IP address of nexthop.
  • ip_dst (ipaddress.ip_network) – destination IP network.
Returns:

OpenFlow messages.

Return type:

list

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.

Parameters:
  • vlan (vlan) – VLAN containing this RIB.
  • ip_dst (ipaddress.ip_network) – destination IP network.
Returns:

OpenFlow messages.

Return type:

list

resolve_gateways(vlan, now)[source]

Re/resolve all gateways.

Parameters:
  • vlan (vlan) – VLAN containing this RIB/FIB.
  • now (float) – seconds since epoch.
Returns:

OpenFlow messages.

Return type:

list

resolve_gw_on_vlan(vlan, faucet_vip, ip_gw)[source]