blob: 7a7cdcd85a0f770e3feb711791288ba9c6a8d7ac [file] [log] [blame]
Jiri Simsad7616c92015-03-24 23:44:30 -07001// Copyright 2015 The Vanadium Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style
3// license that can be found in the LICENSE file.
4
Cosmos Nicolaou6c6fa112014-08-19 13:22:33 -07005// Package Profiles, and its children, provide implementations of the
Suharsh Sivakumar8646ba62015-03-18 15:22:28 -07006// v23.Profile function. These implementations should import all of the
Cosmos Nicolaou6c6fa112014-08-19 13:22:33 -07007// packages that they require to implement Profile-specific functionality.
8//
9// The taxonomy used to organise Profiles may be arbitrary and the directory
10// structure used here is just one convention for how to do so. This directory
11// structure reflects the generality of a Profile at any given depth in the
12// hierarchy, with higher levels of the directory structure being more
13// generic and lower levels more specific.
14//
Suharsh Sivakumar8646ba62015-03-18 15:22:28 -070015// Profiles register themselves by calling v.io/v23/rt.RegisterProfile in their
Cosmos Nicolaou6c6fa112014-08-19 13:22:33 -070016// init function and are hence are chosen by importing them into an
Cosmos Nicolaou454030b2014-12-04 20:39:40 -080017// applications main package. It is an error to import more than one profile,
18// and the registration mechanism will panic if this is attempted.
Suharsh Sivakumar8646ba62015-03-18 15:22:28 -070019// Commonly used functionality and pre-canned profiles are in profiles/internal.
Cosmos Nicolaou6c6fa112014-08-19 13:22:33 -070020//
21// This top level directory contains a 'generic' Profile and utility routines
Cosmos Nicolaou39e3ae52014-11-14 13:30:01 -080022// used by other Profiles. It should be imported whenever possible and
23// particularly by tests.
Cosmos Nicolaou6c6fa112014-08-19 13:22:33 -070024//
Cosmos Nicolaou39e3ae52014-11-14 13:30:01 -080025// The 'roaming' Profile adds operating system support for varied network
Cosmos Nicolaou6c6fa112014-08-19 13:22:33 -070026// configurations and in particular dhcp. It should be used by any application
Cosmos Nicolaou39e3ae52014-11-14 13:30:01 -080027// that may 'roam' or any may be behind a 1-1 NAT. The 'static' profile
28// does not provide dhcp support, but is otherwise like the roaming profile.
Cosmos Nicolaou6c6fa112014-08-19 13:22:33 -070029//
Cosmos Nicolaou6c6fa112014-08-19 13:22:33 -070030package profiles