README revision 7c478bd95313f5f23a4c958a745db2134aa03244
#
# CDDL HEADER START
#
# The contents of this file are subject to the terms of the
# Common Development and Distribution License, Version 1.0 only
# (the "License"). You may not use this file except in compliance
# with the License.
#
# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
# or http://www.opensolaris.org/os/licensing.
# See the License for the specific language governing permissions
# and limitations under the License.
#
# When distributing Covered Code, include this CDDL HEADER in each
# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
# If applicable, add the following below this CDDL HEADER, with the
# fields enclosed by brackets "[]" replaced with your own identifying
# information: Portions Copyright [yyyy] [name of copyright owner]
#
# CDDL HEADER END
#
#ident "%Z%%M% %I% %E% SMI"
NIS+ public module
==================
This public module is intended as a replacement for the NIS+
functionality contained in the previous version of the DHCP service
(Solaris 2.6-8).
Differences
===========
This NIS+ module functionality differs from the previous version in a
number of ways:
1) Container names contain container format version:
Container PreEnterprise Form Enterprise Form
========= ================== ===============
dhcptab dhcptab SUNWnisplus1_dhcptab
dhcp network 129_148_174_0 SUNWnisplus1_129_148_174_000
2) Table types are different:
Container PreEnterprise Type Enterprise Type
========= ================== ===============
dhcptab dhcp_tbl SUNW_dhcpsvc_tab
dhcp network dhcp_ip_tbl SUNW_dhcpsvc_net
3) The container (table) format for dhcp network tables is different.
What was the 'flags' field is now broken up into individual searchable
fields for each flag value, with a setting of '1' for TRUE and '0' for
FALSE. This change permits efficient queries by flag value.
4) Blocking/Nonblocking semantics. NIS+ containers now are by default
opened in blocking mode, which means lookups/lists are done using
HARD_LOOKUP, and updates that would have failed in the past with
TRYAGAIN now pause and retry the operation until successful. Opening a
container in nonblocking mode means that DSVC_BUSY is handed to the
caller if the master for the directory is currently busy (operation
failed).
5) It's faster than the previous version.
6) Permits atomic update of records where the unique combination of key
fields is changed.
Notes
=====
One of the planned features for this module was the detection of the
master server needing its transaction log rolled. Unfortunately, I
couldn't do this since the statistics currently generated and made
available to callers through the interface do not include:
a) Size of the transaction log
b) Whether a checkpoint has already been scheduled.
Since rolling the transaction log is uniquely a NIS+ issue with nothing
to do with DHCP, the correct way to solve this problem would be to
modify the rpc.nisd daemon and allow the specification of a transaction
log size threshold, which when reached would cause the daemon to perform
the checkpoint automatically. The RFE is 4354503.
Conversion of old format NIS+ tables
====================================
A nisplus0 public module which provides readonly access to the legacy
tables is available, which enables the user to use the dhcpmgr data
store conversion feature to convert their legacy tables to the new
format.