# Copyright (c) 2011 The Chromium OS Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
#
# An example of how to set up an IPSec VPN from the Client (DUT),
# through the Router to to the Server.
#

{ "name" : "VPNIPsecGenesis",
  "steps":[
    #  Create WiFi connection from Client to Router.
    [ "create",         { "type" : "hostap" } ],
    [ "config",         { "channel" : "2412", "mode" : "11b" } ],
    [ "connect",        { "security" : "none" } ],

    # The text '@ipsecrets-ip@' is automtically replaced with the
    # correct server IP for the current test configuration, and should
    # not be replaced through this list of steps; in fact, any
    # replacements will be automatically overridden.
    #
    # The text '@local-listen-ip@' is also replaced with the IP number
    # of the interface connected to the WiFi router.  The default is
    # 'wifi_addr' (192.168.2.254), and it should not be replaced this
    # list of steps; in fact, any replacements will be automatically
    # overridden.  Configure and launch the VPN server.  Automatically
    # kills any previously running server.
    #
    [ "vpn_server_config", {
                "kind" : "l2tpipsec-psk",
                "replacements" : { "@plutodebug@" : "all" }}],

    #  Launch the VPN Client.
    [ "vpn_client_config", { "kind"       : "l2tpipsec-psk",
                             "password"   : "password",  # ipsec.secrets
                             "chapuser"   : "chapuser",  # chap-secrets
                             "chapsecret" : "chapsecret" # chap-secrets
                           }],

    # Verify the client is connected to the server
    [ "client_ping",       { "ping_ip" : "192.168.1.99", # IP in xl2tpd.conf.
                             "count" : "10" } ],

    [ "vpn_client_kill" ],       # Shut down the VPN Client.
    [ "vpn_server_kill" ],       # Shut down the VPN Server.
    [ "disconnect" ],            # Disconnect WiFi setup
    ],
}
