code: def add_evpn_local(route_type, route_dist, next_hop, **kwargs):
      
  
      if(route_type in [EVPN_ETH_AUTO_DISCOVERY, EVPN_ETH_SEGMENT]
         and kwargs['esi'] == 0):
          raise ConfigValueError(conf_name=EVPN_ESI,
                                 conf_value=kwargs['esi'])
  
      try:
          # Create new path and insert into appropriate VRF table.
          tm = CORE_MANAGER.get_core_service().table_manager
          label = tm.update_vrf_table(route_dist, next_hop=next_hop,
                                      route_family=VRF_RF_L2_EVPN,
                                      route_type=route_type, **kwargs)
          # Currently we only allocate one label per local route,
          # so we share first label from the list.
          if label:
              label = label[0]
  
          # Send success response with new label.
          return [{EVPN_ROUTE_TYPE: route_type,
                   ROUTE_DISTINGUISHER: route_dist,
                   VRF_RF: VRF_RF_L2_EVPN,
                   VPN_LABEL: label}.update(kwargs)]
      except BgpCoreError as e:
          raise PrefixError(desc=e)
docs: Adds EVPN route from VRF identified by *route_dist*.