code: def add_tunnel_port(self, name, tunnel_type, remote_ip,
                          local_ip=None, key=None, ofport=None):
          
          options = 'remote_ip=%(remote_ip)s' % locals()
          if key:
              options += ',key=%(key)s' % locals()
          if local_ip:
              options += ',local_ip=%(local_ip)s' % locals()
  
          args = ['Interface', name, 'type=%s' % tunnel_type,
                  'options:%s' % options]
          if ofport:
              args.append('ofport_request=%(ofport)s' % locals())
  
          command_add = ovs_vsctl.VSCtlCommand('add-port', (self.br_name, name))
          command_set = ovs_vsctl.VSCtlCommand('set', args)
          self.run_command([command_add, command_set])
docs: Creates a tunnel port.
  
          :param name: Port name to be created
          :param tunnel_type: Type of tunnel (gre or vxlan)
          :param remote_ip: Remote IP address of tunnel
          :param local_ip: Local IP address of tunnel
          :param key: Key of GRE or VNI of VxLAN
          :param ofport: Requested OpenFlow port number