def __init__(self, version=vrrp.VRRP_VERSION_V3, vrid=None, admin_state=None, priority=vrrp.VRRP_PRIORITY_BACKUP_DEFAULT, ip_addresses=None, advertisement_interval=vrrp.VRRP_MAX_ADVER_INT_DEFAULT_IN_SEC, preempt_mode=True, preempt_delay=0, accept_mode=False, statistics_interval=None, resource_id=None): # To allow version and priority default assert vrid is not None assert ip_addresses is not None super(VRRPConfig, self).__init__() self.version = version self.admin_state = admin_state self.vrid = vrid self.priority = priority self.ip_addresses = ip_addresses self.advertisement_interval = advertisement_interval self.preempt_mode = preempt_mode self.preempt_delay = preempt_delay self.accept_mode = accept_mode self.is_ipv6 = vrrp.is_ipv6(ip_addresses[0]) self.statistics_interval = statistics_interval self.resource_id = resource_id
def __init__(self, version=vrrp.VRRP_VERSION_V3, vrid=None, priority=vrrp.VRRP_PRIORITY_BACKUP_DEFAULT, ip_addresses=None, advertisement_interval=vrrp.VRRP_MAX_ADVER_INT_DEFAULT_IN_SEC, preempt_mode=True, preempt_delay=0, accept_mode=False): # To allow version and priority default assert vrid is not None assert ip_addresses is not None super(VRRPConfig, self).__init__() self.version = version self.vrid = vrid self.priority = priority self.ip_addresses = ip_addresses self.advertisement_interval = advertisement_interval self.preempt_mode = preempt_mode self.preempt_delay = preempt_delay self.accept_mode = accept_mode self.is_ipv6 = vrrp.is_ipv6(ip_addresses[0])
def _ofp_match(self, ofproto_parser): is_ipv6 = vrrp.is_ipv6(self.config.ip_addresses[0]) kwargs = {} kwargs['in_port'] = self.interface.port_no if is_ipv6: kwargs['eth_dst'] = vrrp.VRRP_IPV6_DST_MAC_ADDRESS kwargs['eth_src'] = \ vrrp.vrrp_ipv6_src_mac_address(self.config.vrid) kwargs['eth_type'] = ether.ETH_TYPE_IPV6 kwargs['ipv6_dst'] = vrrp.VRRP_IPV6_DST_ADDRESS else: kwargs['eth_dst'] = vrrp.VRRP_IPV4_DST_MAC_ADDRESS kwargs['eth_src'] = \ vrrp.vrrp_ipv4_src_mac_address(self.config.vrid) kwargs['eth_type'] = ether.ETH_TYPE_IP kwargs['ipv4_dst'] = vrrp.VRRP_IPV4_DST_ADDRESS if self.interface.vlan_id is not None: kwargs['vlan_vid'] = self.interface.vlan_id kwargs['ip_proto'] = inet.IPPROTO_VRRP # OF1.2 doesn't support TTL match. # It needs to be checked by packet in handler return ofproto_parser.OFPMatch(**kwargs)