#  Configuration for the SQL based IP Pool module (rlm_sqlippool)
#
#  The database schemas are available at:
#
#       raddb/sql/ippool/<DB>/schema.sql
#
#  $Id: b32b77aa4ca134d608a1140da73434bdc7d14895 $

sqlippool {
	# SQL instance to use (from sql.conf)
	#
	#  If you have multiple sql instances, such as "sql sql1 {...}",
	#  use the *instance* name here: sql1.
	sql_module_instance = "sql"

	#  This is duplicative of info available in the SQL module, but
	#  we have to list it here as we do not yet support nested
	#  reference expansions.
	dialect = "mysql"

	# SQL table to use for ippool range and lease info
	ippool_table = "radippool"

	# IP lease duration. (Leases expire even if Acct Stop packet is lost)
	lease_duration = 3600

	# protocol to use.  The default is IPv4.
#	ipv6 = yes

	# Attribute which should be considered unique per NAS
	#
	#  Using NAS-Port gives behaviour similar to rlm_ippool. (And ACS)
	#  Using Calling-Station-Id works for NAS that send fixed NAS-Port
	#  ONLY change this if you know what you are doing!
	pool_key = "%{NAS-Port}"
	# pool_key = "%{Calling-Station-Id}"

	################################################################
	#
	#  WARNING: MySQL (MyISAM) has certain limitations that means it can
	#           hand out the same IP address to 2 different users.
	#
	#           We suggest using an SQL DB with proper transaction
	#           support, such as PostgreSQL, or using MySQL
	#	     with InnoDB.
	#
	################################################################

	#  These messages are added to the "control" items, as
	#  Module-Success-Message.  They are not logged anywhere else,
	#  unlike previous versions.  If you want to have them logged
	#  to a file, see the "linelog" module, and create an entry
	#  which writes Module-Success-Message message.
	#
	messages {
		exists = "Existing IP: %{reply:Framed-IP-Address} (did %{Called-Station-Id} cli %{Calling-Station-Id} port %{NAS-Port} user %{User-Name})"

		success = "Allocated IP: %{reply:Framed-IP-Address} from %{control:Pool-Name} (did %{Called-Station-Id} cli %{Calling-Station-Id} port %{NAS-Port} user %{User-Name})"

		clear = "Released IP %{Framed-IP-Address} (did %{Called-Station-Id} cli %{Calling-Station-Id} user %{User-Name})"

		failed = "IP Allocation FAILED from %{control:Pool-Name} (did %{Called-Station-Id} cli %{Calling-Station-Id} port %{NAS-Port} user %{User-Name})"

		nopool = "No Pool-Name defined (did %{Called-Station-Id} cli %{Calling-Station-Id} port %{NAS-Port} user %{User-Name})"
	}

	$INCLUDE ${modconfdir}/sql/ippool/${dialect}/queries.conf
}
