code: def _add_gateway_node_on_tunnel(self, routing_node_gateway):
          
          modified = False
          peering = [next_hop for next_hop in self
              if next_hop.routing_node_element == routing_node_gateway.routing_node_element]
          if not peering:
              self.data.setdefault('routing_node', []).append( 
                  routing_node_gateway)
              modified = True
          # Have peering
          else:
              peers = [node.routing_node_element for peer in peering
                  for node in peer]
              for destination in routing_node_gateway.destinations:
                  if destination not in peers:
                      peering[0].data.setdefault('routing_node', []).append(
                          {'level': 'any', 'href': destination.href,
                           'name': destination.name})
                      modified = True
          if modified:
              self.update()
          return modified
docs: Add a gateway node on a tunnel interface. Tunnel interface elements
          are attached to the interface level and not directly nested under
          the networks node.
          
          :param RouteNodeGateway routing_node_gateway: routing node gateway instance
          :return: Whether a change was made or not
          :rtype: bool