                        ==========================
                        R E L E A S E    N O T E S
                        ==========================

                 Broadcom BASP Silent Configuration Program
                Copyright (c) 2003-2006 Broadcom Corporation
                            All rights reserved.
                              April 25, 2006


Introduction
============
Broadcom BASP Silent Configuration is a Win32 console application that allows
end users with Administrator privileges to configure team(s), VLAN(s) and static 
IP address for team(s) and VLAN(s) from command line or an input file.  

Broadcom BASP Silent Configuration runs under Windows 2000, XP32, Windows .NET32, 
and Windows .NET64. The application requires BASP driver and BMAPI installed.  


Installation
============
1.  Copy BASFND.SYS to your windows\system32\drivers directory.
2.  Copy BMAPI.DLL to your windows\system32 directory.


Note
====
At least one of the team members MUST have link as Microsoft WMI is
used to set the static IP address and requires link.

When ‘IP_CFG’ is specified with the live link feature, at least one 
of the target IP addresses MUST have link as required by the WMI.


Usage:
-----

BaspSCfg        {[-file CFG_file] |
                 [-restore file_path_name] |
                 [-remove [team_name]] |
                 [-save file_path_name -nicid MACADDR|PCIINFO] |
                 [-name team_name [-type team_type]
                 [NO_LIVELINK_PARAMS|LIVELINK_PARAMS][IP_CFG|VLAN_CFG]] |
                 [-help|-h|-?]}

        {}:                     The parameter must exist
        []:                     Optional option
        -file CFG_file:         CFG_file is the input configuration file name.
        -restore file_path_name:Restore the configuration from the
                                parameter file_path_name.
        -remove [team_name]:    Remove a team specified by the parameter
                                team_name.  If team_name is not specified then
                                all team(s) will be removed.
        -save file_path_name -nicid MACADDR|PCIINFO:
                                Save the current configuration to the
                                parameter file_path_name.  MACADDR and PCIINFO
                                simply tells BASPSCfg to save the NIC ID by
                                MAC address or PCI bus:dev.func information.
                                The NIC identification of a NIC will be saved
                                in the format of MAC address (as MAC_Address)
                                or PCI ID format (06:0D.1) as shown
                                in linux lspci. The IP settings will not be
                                saved if DHCP is enabled.
        -name team_name:        team_name is name of the team.
           -type team_type:     team_type is type of the team.
                                Default is 0.
                                0:  Smart Load Balance and Fail Over.
                                1:  Generic Trunking (FEC/GEC).
                                2:  Link Aggregation (802.3ad).
                                4:  SLB (Auto-Fallback Disable).
           NO_LIVELINK_PARAMS:  [ [PHY_NIC_SEL]
                                [-snic MAC_address|bus:dev.func] ]
           PHY_NIC_SEL:         -pnic MAC_address|bus:dev.func
                                [PHY_NIC_SEL]
                                -pnic:  Specify primary NIC by using MAC
                                address of a 12 digit hex string or PCI
                                bus:dev.func information, e.g. 03:0C.0.
           LIVELINK_PARAMS:     [-target_ip ip1
                                [-target_ip ip2 -target_ip ip3 -target_ip ip4]
                                [-retry retry_num][-freq interval]
                                [-retry_freq retry_interval]
                                [LIVELINK_PNIC_SEL][LIVELINK_SNIC_SEL] ]
           -target_ip ip1 [-target_ip ip2 -target_ip ip3 -target_ip ip4]:
                                Up to 4 link targets can be specified. At least
                                one ip is required for the live link feature.
           -retry retry_num:    The maximum number of retries before
                                failing a team member. Default is 5.
           -freq interval:      The frequency (in milliseconds) to send out
                                a link packet. Default is 2000 milliseconds.
                                Note: 1000 milliseconds = 1 second.
                                Please check BACS for valid values.
           -retry_freq retry_interval:  The frequency (in milliseconds) for
                                sending a link packet after a dropped packet 
                                is detected. Default is 1000 millisecond.
                                Note: 1000 milliseconds = 1 second.
                                Please check BACS for valid values.
           -livelink_vid ll_vid:  VLAN ID (0-4094) for live link.
                                One per live link team configuration.
           LIVELINK_PNIC_SEL:   -pnic MAC_addr|bus:dev.func -livelink_ip ll_ip
                                [LIVELINK_PNIC_SEL]
           -livelink_ip ll_ip:  a static ip address is required for this
                                primary NIC to support live link feature.
           LIVELINK_SNIC_SEL:   -snic MAC_addr|bus:dev.func -livelink_ip ll_ip
           -livelink_ip ll_ip:  a static ip address is required for this
                                standby NIC to support live link feature.
           IP_CFG:              IP_ADDR [GATE_ADDR] [DNS_ADDR] [WNS_ADDR]
           IP_ADDR:             -ip IP_address -smask subnetmask
                                [IP_ADDR]
           GATE_ADDR:           -gw gateway_IP_address [GATE_ADDR]
           DNS_ADDR:            -dns DNS_IP_address [DNS_ADDR]
           WNS_ADDR:            -wsp Primary_WINS_Server_IP_address
                                [-wss Secondary_WINS_Server_IP_address]
           VLAN_CFG:            -vname VLAN_name -vid VLAN_id [IP_CFG]
                                [VLAN_CFG]
                                VLAN_name:  VLAN_name is name of VLAN.
                                VLAN_id:  VLAN_id is the ID of VLAN and must
                                be between 0 and 4094.
        -help:                  Print the usage.
        -h:                     Print the usage.
        -?:                     Print the usage.


		
	‘PHY_NIC_SEL’ option allows selection of multiple physical network adapters.

	‘-pnic’ option is for load balance adapters and ‘-snic’ is for standby 
	adapter.  Each Load Balance team allows only one standby adapter.  
	FEC/GEC or 802.3ad team cannot have a standby adapter.

	When ‘IP_CFG’ is specified, user MUST set both IP and subnet mask or it 
	will be ignored. At least one of the team members MUST have link as WMI 
	is used to set the static IP address and requires link.

	‘VLAN_CFG’ option allows configuration for multiple VLANs. Each ‘-vname’ 
	MUST couple with ‘-vid’ or the VLAN configuration will be ignored.

	The default behavior of ‘BaspSCfg.exe’ (without any options) will grab 
	all ‘teamable’ physical network adapters into a Smart Load Balancing 
	(SLB) team without VLAN configured and the virtual adapter of the team 
	will use DHCP. A NIC is ‘teamable’ or not will depend on the specific OEM.  
	The default team name will be “SLBTeam”.

	If the -pnic option is omitted then BaspSCfg.exe will also grab all 
	‘teamable’ physical network adapters into a new team.

	In addition, the following requirements are implemented to support the live 
	link feature as documented in “BCM 5700 Software Release Version 7.7
	Marketing Requirements, Revision 1.0g”.

	Live link support is only for the SLB team type 0.
		0:  	Smart Load Balance and Fail Over

	‘-target_ip’ is the target IP address that a link packet is sent to. Up 
	to 4 link targets can be specified for each team. At least one IP address 
	is required to enable the live link feature. All 'target_ip' are required 
	to be grouped together, otherwise, an error will be reported. When ‘IP_CFG’ 
	is specified with the live link feature, at least one of the team members 
	MUST have link as WMI is used to set the static IP address and requires link.
	
	‘-retry’ is the maximum number of retries before failing a team member. It 
	is an optional parameter.  Default is 5.
	
	‘-freq’ is the frequency (in milliseconds) to send out a link packet. 
	It is an optional parameter. Default is 2000 milliseconds. 
	Note: 1000 milliseconds = 1 second. The supported values by BACS (in 
	milliseconds) are: 500 (optional), 1000, 2000, 5000, 10000, 20000, 30000, 
	and 60000. 
	
	‘-retry_freq’ is the frequency (in milliseconds) for sending a link 
	packet after a dropped link packet is detected. It is an optional 
	parameter. Default is 1000 milliseconds.  
	Note: 1000 milliseconds = 1 second. The supported values by BACS (in 
	milliseconds) are: 500 (optional), 1000, 2000, 5000, 10000, 20000, 30000, 
	and 60000. 
	
	‘-livelink_vid’ is VLAN ID for live link. One per live link team 
	configuration. It is an optional parameter with valid range from 0 to 4094. 

	Once a '-target_ip' is supplied to request the live link feature, every 
	'-pnic' and '-snic' after the '-target_ip' is required to specify 
	'-livelink_ip' as shown in ‘LIVELINK_PNIC_SEL’ and 'LIVELINK_SNIC_SEL'.

	If the live link feature is desired for a team, it is required to specify 
	the team parameters following the 'LIVELINK_PARAMS' syntax. Otherwise, 
	follow the 'NO_LIVELINK_PARAMS' to input parameters for a team without the 
	live link feature.


	Examples:	

		BaspSCfg will create a default Load Balance SLBTeam with all 
		‘teamable’ physical network adapters and configure SLBTeam 
		with DHCP.

		BaspSCfg -name FGTeam -type 1 -pnic 00101801794D will create
		a FEC/GEC FGTeam with one load balance physical adapter.

		BaspSCfg -name BRCMTeam -pnic 00101801794D -snic 03:0C.1 -vname 
		VLAN100 -vid 100 -vname VLAN200 -vid 200 will create a Load Balance 
		BRCMTeam with two VLANs and configure VLAN100 and VLAN200 with DHCP.

		BaspSCfg -name BRCMTeam -pnic 00101801794D -snic 01:0D.0 -vname 
		VLAN100 -vid 100 -ip 172.16.8.100 -smask 255.255.255.0 -vname 
		VLAN200 -vid 200 -ip 172.16.8.200 -smask 255.255.255.0 will create 
		a Load Balance BRCMTeam with two VLANs and configure VLAN100 and 
		VLAN200 with static IP address and subnet mask.

		BaspSCfg –name BRCMTeam –pnic 00101801794D –snic 00:0B.2 –vname 
		VLAN100 –vid 100 –ip 172.16.8.100 –smask 255.255.255.0 –vname 
		VLAN200 –vid 200 –ip 172.16.8.200 –smask 255.255.255.0 will create 
		a Load Balance BRCMTeam with two VLANs and configure VLAN100 and 
		VLAN200 with static IP address and subnet mask.

		BaspSCfg –name LiveLinkTeam –target_ip 172.16.8.66 -target_ip 
		172.16.8.77 -target_ip 172.16.8.88 –retry 3 -livelink_vid 1234  
		–pnic 02:0A.1 -livelink_ip 172.16.8.10 –snic 00101801794D  
		-livelink_ip 172.16.8.20 –vname VLAN100 –vid 100 –ip 172.16.8.100 
		–smask 255.255.255.0 –vname VLAN200 –vid 200 –ip 172.16.8.200 –smask 
		255.255.255.0 will create a SLB LiveLinkTeam supporting live link 
		feature with two VLANs and configure VLAN100 and VLAN200 with 
		static IP address and subnet mask.

		'BaspSCfg -file TeamConfig.txt' will create team(s) from the input 
		TeamConfig.txt configuration file.

		'BaspSCfg -restore RstConfig' will create team(s) from the input 
		RstConfig configuration file.

		'BaspSCfg -save SaveMac.txt -nicid MACADDR' will save all teams' 
		configuration with NIC address in the MAC address format into the 
		designated file SaveMac.txt.

		'BaspSCfg -save SavePci -nicid PCIINFO' will save all teams' 
		configuration with NIC address in the PCI ID format into the 
		designated file SavePci.

		'BaspSCfg -remove BRCMTeam' will remove only the specified BRCMTeam 
		if it exists.

		'BaspSCfg -remove' will remove all teams found in the system.
                
                 


Configuration File:
------------------

	The syntax plain text file is defined as following. The team parameters 
	can be specified either using ‘NO_LIVELINK_PARAMS’ or using 
	‘LIVELINK_PARAMS’.

	TEAM_CFG
	[TEAM_CFG]
	...

	1. Each ‘TEAM_CFG’ with NO_LIVELINK_PARAMS is defined as follows:

	name:	team_name
	[type:	team_type]
	pnic:	MAC_address
	[pnic:	MAC_address
	...]
	[snic:	MAC_address]
	[[ip:		IP_address
	smask:	subnetmask]
	|[vname:	VLAN_name
	vid:		VLAN_ID
	[ip:		IP_address
	smask:	subnetmask]]
	...]


	2. Each ‘TEAM_CFG’ with LIVELINK_PARAMS is defined as follows:

	name:	livelinkteam_name
	[type:	livelink_team_type]
	target_ip: ip1 
	[target_ip: ip2 
 	target_ip: ip3
 	target_ip: ip4]
	[retry: 	3]
	[freq:		2000]
	[retry_freq:	2000]
	[livelink_vid:	1234]
	[pnic:	MAC_address|PCIINFO 
	 livelink_ip: ll_ip 
	 pnic:	MAC_address|PCIINFO 
 	 livelink_ip: ll_ip
 	pnic:...]
	[snic:	MAC_address|PCIINFO 
 	 livelink_ip: ll_ip]
	[[ip:		IP_address
	smask:	subnetmask]
	|[vname:	VLAN_name
	vid:		VLAN_ID
	[ip:		IP_address
	smask:	subnetmask]]
	...]


	A configuration file MUST contain at least one team configuration. 

	‘BaspSCfg.exe’ will recognize ‘name’ as starting point of a team 
	configuration section. All lines after ‘name’ will apply to the 
	‘team_name’ until another ‘name’ or end of file is encountered.

	Each team configuration MUST contain at least one physical network 
	adapter or the configuration of the team will be ignored.

	If ‘type’ is missing, the default is set to Smart Load Balancing (SLB).

	If ‘ip’ is set, ‘smask’ must also be set or ‘ip’ will be ignored. 
	If ‘ip’ is not set, DHCP will be used.

	Team IP can be set if no VLAN are configured. If any VLAN is
	configured, the team IP will be ignored. Multiple VLAN 
	configurations are allowed. Each VLAN configuration allows an
	optional static IP information. Each IP MUST be couple with 
	‘smask’ or will be ignored.

	Please note that there must at least one white space or tab
	between the tag (‘name’, ‘pnic’, etc.) and the value pair 
	(‘team_name’, ‘MAC_address’, etc.) in each line.

	Example:

	1.	A sample of the TeamConfig.txt configuration file 
		with NO_LIVELINK_PARAMS:

		name: BRCMTeam
		type: 1
		pnic: 00101801794D
		pnic: 00:0B.2
		vname:  VLAN2
		vid: 2
		vname:  VLAN3
		vid: 3
		ip:  172.16.8.3
		smask:  255.255.255.0
		vname:  VLAN4
		vid: 4
		ip:  172.16.8.4
		smask:  255.255.255.0
		vname:  VLAN5
		vid: 5
		ip:  172.16.8.5
		smask:  255.255.255.0

	
	2.	A sample of the TeamConfig.txt configuration file 
		with LIVELINK_PARAMS:

		name: LiveLinkTeam
		type: 0
		target_ip: 172.16.8.66 
		target_ip: 172.16.8.77
		target_ip: 172.16.8.88 
		target_ip: 172.16.8.99
		livelink_vid: 1234
		pnic: 00101801794D 
		livelink_ip: 172.16.8.10
		pnic: 01:0D.0 
		livelink_ip: 172.16.8.11
		snic: 02:03.00 
		livelink_ip: 172.16.8.20
		vname:  VLAN2
		vid: 2
		vname:  VLAN3
		vid: 3
		ip:  172.16.8.3
		smask:  255.255.255.0
		vname:  VLAN4
		vid: 4
		ip:  172.16.8.4
		smask:  255.255.255.0
		vname:  VLAN5
		vid: 5
		ip:  172.16.8.5
		smask:  255.255.255.0



Exit Codes:
----------

    // No error
    BASPSCFG_NO_ERROR                     0  
     
    // Not supported OS
    ERROR_NOT_SUPPORTED_OS                500 
    
    // Cannot allocate memory
    ERROR_CANNOT_ALLOC_MEM                501 
    
    // Team has no member
    ERROR_TEAM_NO_MEMBER                  502 
    
    // Only one team is accepted from command line
    ERROR_EXCEED_NUMBER_OF_TEAM_ALLOW     503     

    // Cannot create more than 64 VLANs
    ERROR_EXCEEDMAXVLAN                   504     

    // Cannot open the input file
    ERROR_CANNOT_OPEN_FILE                505     

    // No team to configure
    ERROR_NO_TEAM_TO_CONFIG               506     

    // BASP is not installed and cannot create any team
    ERROR_BASP_NOT_INSTALL                507     

    // Cannot set static IP Address
    ERROR_CANNOT_SET_IPADDR               508 
    
    // Wrong option flag
    ERROR_WRONG_OPTION_FLAG               509     

    // Cannot create FECGEC or 802.3ad with a standby adapter
    ERROR_CANNOT_CREATE_FECGEC_8023AD     510     

    // Only Broadcom certified adapters are supported in VLAN
    ERROR_ONLY_BROADCOM_NIC_FOR_VLAN      511     

    // Duplicate adapter physical MAC address or PCI ID
    ERROR_DUPLICATE_MAC_ADDRESS           512     

    // '&' is not a legal character for the team name
    ERROR_INVALID_TEAM_NAME               513     

    // Team already exists, please use a different team name
    ERROR_TEAM_ALREADY_EXISTED            514     

    // Cannot match the MAC Address
    ERROR_CANNOT_MATCH_MAC_ADDR           515     

    // Duplicate VLAN name % or VLAN ID %d
    ERROR_DUPLICATE_VLANID                516     

    // Team not found, please use a different team name
    ERROR_TEAM_NOT_FOUND                  517     

    // Live link support only applied to SLB team type
    ERROR_CANNOT_CREATE_LIVE_LINK         518     

    // Live link support allows up to 4 Target IPs
    ERROR_EXCEED_MAX_TARGET_IP            519     

    // Duplicate OPTION
    ERROR_DUPLICATE_OPTION                520     

    // Missing parameter
    ERROR_MISSING_PARAM                   521     

    // Invalid parameter type
    ERROR_INVALID_PARAM                   522     

    // %s value %d is out of range (%d - %d)
    ERROR_INVALID_RANGE                   523     

    // Unrecognized parameter
    ERROR_UNRECOGNIZED_PARAM              524     

    // Duplicate IP address
    ERROR_DUPLICATE_IPADDR                525     

    // Invalid IP address
    ERROR_INVALID_IPADDR                  526     

    // No link is present for Team %s to set IP addresses
    ERROR_NO_LINK_FOR_IP_CFG              527     

    // Invalid interval %d.
    ERROR_INVALID_INTERVAL                528     

    // Cannot initialize BMAPI
    ERROR_CANNOT_INIT_BMAPI               550     

    // Cannot check BASP status
    ERROR_CANNOT_CHECK_BASP_STATUS        551     

    // Cannot get all unassigned adapters data
    ERROR_CANNOT_GET_ALL_UNASG_NIC_DATA   552     

    // Cannot get adapter PCI information
    ERROR_CANNOT_GET_NIC_PCI_INFO         553     

    // Cannot create team
    ERROR_CANNOT_CREATE_TEAM              554     

    // Cannot get all unassinged adapters number
    ERROR_CANNOT_GET_ALL_UNASG_NIC_NUM    555     

    // Cannot get all created teams
    ERROR_CANNOT_GET_ALL_CREATED_TEAM     556     

    // Wrong BMAPI version
    ERROR_WRONG_BMAPI_VERSION             557     

    // Cannot get physical NIC information
    ERROR_CANNOT_GET_NIC_INFO             558     

    // Cannot remove team
    ERROR_CANNOT_REMOVE_TEAM              559     

    // Admin Privilege is required for this operation.
    ERROR_NO_ADMIN_PRIVILEGE              560     
