def _vdp_refrsh_hndlr(self):
LOG.debug("<STR_LIT>")<EOL>try:<EOL><INDENT>if not self.vdp_vif_map:<EOL><INDENT>LOG.debug("<STR_LIT>")<EOL>return<EOL><DEDENT>vdp_vif_map = dict.copy(self.vdp_vif_map)<EOL>oui_vif_map = dict.copy(self.oui_vif_map)<EOL>for key in six.iterkeys(vdp_vif_map):<EOL><INDENT>lvdp_dict = vdp_vif_map.get(key)<EOL>loui_dict = oui_vif_map.get(key)<EOL>if not lvdp_dict:<EOL><INDENT>return<EOL><DEDENT>if not loui_dict:<EOL><INDENT>oui_id = "<STR_LIT>"<EOL>oui_data = "<STR_LIT>"<EOL><DEDENT>else:<EOL><INDENT>oui_id = loui_dict.get('<STR_LIT>')<EOL>oui_data = loui_dict.get('<STR_LIT>')<EOL><DEDENT>with self.mutex_lock:<EOL><INDENT>if key in self.vdp_vif_map:<EOL><INDENT>LOG.debug("<STR_LIT>", lvdp_dict)<EOL>vdp_vlan, fail_reason = self.send_vdp_assoc(<EOL>vsiid=lvdp_dict.get('<STR_LIT>'),<EOL>mgrid=lvdp_dict.get('<STR_LIT>'),<EOL>typeid=lvdp_dict.get('<STR_LIT>'),<EOL>typeid_ver=lvdp_dict.get('<STR_LIT>'),<EOL>vsiid_frmt=lvdp_dict.get('<STR_LIT>'),<EOL>filter_frmt=lvdp_dict.get('<STR_LIT>'),<EOL>gid=lvdp_dict.get('<STR_LIT>'),<EOL>mac=lvdp_dict.get('<STR_LIT>'),<EOL>vlan=<NUM_LIT:0>, oui_id=oui_id, oui_data=oui_data,<EOL>sw_resp=True)<EOL><DEDENT><DEDENT>if not utils.is_valid_vlan_tag(vdp_vlan):<EOL><INDENT>LOG.error("<STR_LIT>",<EOL>{'<STR_LIT>': vdp_vlan})<EOL>vdp_vlan = <NUM_LIT:0><EOL><DEDENT>exist_vdp_vlan = lvdp_dict.get('<STR_LIT>')<EOL>exist_fail_reason = lvdp_dict.get('<STR_LIT>')<EOL>callback_count = lvdp_dict.get('<STR_LIT>')<EOL>if vdp_vlan != exist_vdp_vlan or (<EOL>fail_reason != exist_fail_reason or<EOL>callback_count > vdp_const.CALLBACK_THRESHOLD):<EOL><INDENT>cb_fn = lvdp_dict.get('<STR_LIT>')<EOL>cb_data = lvdp_dict.get('<STR_LIT>')<EOL>if cb_fn:<EOL><INDENT>cb_fn(cb_data, vdp_vlan, fail_reason)<EOL><DEDENT>lvdp_dict['<STR_LIT>'] = vdp_vlan<EOL>lvdp_dict['<STR_LIT>'] = fail_reason<EOL>lvdp_dict['<STR_LIT>'] = <NUM_LIT:0><EOL><DEDENT>else:<EOL><INDENT>lvdp_dict['<STR_LIT>'] += <NUM_LIT:1><EOL><DEDENT><DEDENT><DEDENT>except Exception as e:<EOL><INDENT>LOG.error("<STR_LIT>", str(e))<EOL><DEDENT>
Periodic refresh of vNIC events to VDP.

        VDP daemon itself has keepalives. This is needed on top of it
        to keep Orchestrator like OpenStack, VDP daemon and the physical
        switch in sync.