code: def make_route(self, dst, gw=None, dev=None):
          
          prefix, plen = (dst.split("/")+["128"])[:2]
          plen = int(plen)
  
          if gw is None:
              gw = "::"
          if dev is None:
              dev, ifaddr, x = self.route(gw)
          else:
              # TODO: do better than that
              # replace that unique address by the list of all addresses
              lifaddr = in6_getifaddr()             
              #filter(lambda x: x[2] == dev, lifaddr)
              devaddrs = [ i for i in lifaddr if i[2] == dev] 
              ifaddr = construct_source_candidate_set(prefix, plen, devaddrs, LOOPBACK_NAME)
  
          return (prefix, plen, gw, dev, ifaddr)
docs: Internal function : create a route for 'dst' via 'gw'.