#NEWLINE# def delete_arp_entry_for_dvr_service_port( self , context , port_dict , fixed_ips_to_delete = None ) : #NEWLINE# #INDENT# "Notify L3 agents of ARP table entry for dvr service port.\n\n        When a dvr service port goes down, look for the DVR\n        router on the port's subnet, and send the ARP details to all\n        L3 agents hosting the router to delete it.\n        If there are any allowed_address_pairs associated with the\n        port, those fixed_ips should be removed from the ARP table.\n        " #NEWLINE# if ( not self . _should_update_arp_entry_for_dvr_service_port ( port_dict ) ) : #NEWLINE# #INDENT# return #NEWLINE# #UNINDENT# if ( not fixed_ips_to_delete ) : #NEWLINE# #INDENT# fixed_ips = port_dict [ 'fixed_ips' ] #NEWLINE# allowed_address_pair_fixed_ips = self . _get_allowed_address_pair_fixed_ips ( port_dict ) #NEWLINE# fixed_ips_to_delete = ( fixed_ips + allowed_address_pair_fixed_ips ) #NEWLINE# #UNINDENT# for fixed_ip in fixed_ips_to_delete : #NEWLINE# #INDENT# self . _generate_arp_table_and_notify_agent ( context , fixed_ip , port_dict [ 'mac_address' ] , self . l3_rpc_notifier . del_arp_entry )