<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def _add_rid_to_vrf_list(self, ri):
 """Add router ID to a VRF list. In order to properly manage VRFs in the ASR, their usage has to be tracked. VRFs are provided with neutron router objects in their hosting_info fields of the gateway ports. This means that the VRF is only available when the gateway port of the router is set. VRFs can span routers, and even OpenStack tenants, so lists of routers that belong to the same VRF are kept in a dictionary, with the VRF name as the key. """

        if ri.ex_gw_port or ri.router.get('gw_port'):
            driver = self.driver_manager.get_driver(ri.id)
            vrf_name = driver._get_vrf_name(ri)
            if not vrf_name:
                return
            if not self._router_ids_by_vrf.get(vrf_name):
                LOG.debug("++ CREATING VRF %s" % vrf_name)
                driver._do_create_vrf(vrf_name)
            self._router_ids_by_vrf.setdefault(vrf_name, set()).add(
                ri.router['id'])