Cisco CNS Network Registrar Release 6.2 ユーザ ガイド
DHCP 拡張ディクショナリ
DHCP 拡張ディクショナリ
発行日;2012/02/03 | ドキュメントご利用ガイド | ダウンロード ; この章pdf , ドキュメント全体pdf (PDF - 5MB) | フィードバック

目次

DHCP 拡張ディクショナリ

拡張ディクショナリのエントリ

デコード済みの DHCP パケット データ項目

要求ディクショナリ

応答ディクショナリ

拡張ディクショナリの API

TCL 属性ディクショナリの API

TCL 要求ディクショナリ方式と応答ディクショナリ方式

TCL 環境ディクショナリ方式

DEX 属性ディクショナリの API

DEX 要求ディクショナリ方式と応答ディクショナリ方式

DEX 環境ディクショナリ方式

DHCP 拡張ディクショナリ

この付録では、DHCP 拡張ディクショナリのエントリと拡張ディクショナリへのアプリケーション プログラム インターフェイス(API)について説明します。ここでは、要求ディクショナリと応答ディクショナリで使用できるデータ項目と、TCL 拡張機能および共有ライブラリからディクショナリにアクセスする際に使用する呼び出しについて説明します。

拡張ディクショナリのエントリ

ディクショナリは、キーと値のペアを含むデータ構造です。ディクショナリには、要求ディクショナリと応答ディクショナリが使用する属性ディクショナリ、および環境ディクショナリの 2 つのタイプがあります。この項では、要求ディクショナリと応答ディクショナリについて説明します。環境ディクショナリのエントリについては、「TCL 環境ディクショナリ方式」で説明します。

デコード済みの DHCP パケット データ項目

デコードされた DHCP パケット データ項目は、DHCP パケット内の情報を表します。これは、要求ディクショナリと応答ディクショナリの両方で使用できます。これらのディクショナリを使用すると、単なるデコードされた要求やデコードされた応答よりも内部のサーバ データ構造にアクセスできます。

アスタリスク( * )の後に続くオプションはすべて複数です。つまり、各オプションに複数の値が関連付けられる可能性があります。DHCP/BOOTP パケットでは、これらのデータ項目がすべて同じオプション内に示されます。ただし、拡張インターフェイスでは、インデックスを使用してこれらの複数データ項目にアクセスできます。

表C-2に名前のないオプションには、option- n としてアクセスできます。 n はオプション番号です。すべてのフィールドが読み取り/書き込み用です。 表C-1 にオプションのフィールド値を示します。

 

表C-1 DHCP フィールドと BOOTP フィールド

名前

chaddr

blob(バイトのシーケンス)

ciaddr

IP アドレス

file

文字列

flags

16 ビット符号なし整数

giaddr

IP アドレス

hlen

8 ビット符号なし整数

hops

8 ビット符号なし整数

htype

8 ビット符号なし整数

op

8 ビット符号なし整数

secs

16 ビット符号なし整数

siaddr

IP アドレス

sname

文字列

xid

32 ビット符号なし整数

yiaddr

IP アドレス

表C-2 に、DHCP オプションと BOOTP オプションを示します。

 

表C-2 DHCP オプションと BOOTP オプション

名前(*= 複数値)
番号

all-subnets-local

27

バイト値ブール

arp-cache-timeout

35

整数

boot-file

61

文字列

boot-size

13

16 ビット符号なし整数

broadcast-address

28

IP アドレス

cablelabs-client-configuration

122
サブオプション:

blob(バイトのシーケンス)

ccc-primary-dhcp-server

1

IP アドレス

ccc-secondary-dhcp-server

2

IP アドレス

ccc-provisioning-server

3

blob(最初のバイトはタイプを示すバイトである必要があります。RFC 1035 エンコードの場合は 0、IP アドレス エンコードの場合は 1 で、アドレスはネットワーク順である必要があります)。

ccc-as-backoff-retry-blob

4

12 バイトの blob(3 つの符号なし 4 バイト整数。
これはネットワーク順である必要があります)。Kerberos AS-REQ/AS-REP のタイムアウト、バックオフ、リトライ メカニズムを設定します。

ccc-ap-backoff-retry-blob

5

12 バイトの blob(3 つの符号なし 4 バイト整数。
これはネットワーク順である必要があります)。Kerberos AP-REQ/AP-REP のタイムアウト、バックオフ、リトライ メカニズムを設定します。

ccc-kerberos-realm

6

可変長の blob(RFC 1035 スタイル名)。Kerberos 領域名が必要です。

ccc-use-tgt

7

1 バイト符号なし整数ブール。アプリケーション サーバのいずれかにサービス チケットを取得する際に Ticket Granting Ticket(TGT)を使用するかどうかを示します。

ccc-provisioning-timer

8

1 バイト符号なし整数。プロビジョニング プロセスの完了に使用できる最大時間を定義します。

ccc-ticket-control-mask

9

2 バイト符号なし整数。ホスト順。

ccc-kdc-addresses-blob

10

可変長(4 の倍数)の IP アドレス。ネットワーク順。

cisco-subnet-allocation

220

blob(構造化)

cisco-vpn-id

221

blob(構造化)

cookie-servers*

8

IP アドレス

default-ip-ttl

23

8 ビット符号なし整数

default-tcp-ttl

37

8 ビット符号なし整数

dhcp-class-identifier

60

文字列

dhcp-client-identifier

61

blob(バイトのシーケンス)

dhcp-lease-time

51

整数

dhcp-max-message-size

57

16 ビット符号なし整数

dhcp-message

56

文字列

dhcp-message-type

53

blob(バイトのシーケンス)

dhcp-option-overload

52

blob(バイトのシーケンス)

dhcp-parameter-request-list*

55

8 ビット符号なし整数

dhcp-parameter-request-list-blob

55

blob(バイトのシーケンス)

dhcp-rebinding-time

59

整数

dhcp-renewal-time

58

整数

dhcp-requested-address

50

IP アドレス

dhcp-server-identifier

54

IP アドレス

dhcp-user-class-id

77

文字列

domain-name

15

文字列

domain-name-servers*

6

IP アドレス

extensions-path

18

文字列

finger-servers*

73

IP アドレス

font-servers*

48

IP アドレス

host-name

12

文字列

ieee802.3-encapsulation

36

8 ビット符号なし整数

impress-servers*

10

IP アドレス

interface-mtu

26

16 ビット符号なし整数

ip-forwarding

19

バイト値ブール

irc-servers*

74

IP アドレス

log-servers*

7

IP アドレス

lpr-servers*

9

IP アドレス

mask-supplier

30

バイト値ブール

max-dgram-reassembly

22

16 ビット符号なし整数

merit-dump

14

文字列

mobile-ip-home-agents*

68

IP アドレス

name-servers*

5

IP アドレス

netbios-dd-servers*

45

IP アドレス

netbios-name-servers*

44

IP アドレス

netbios-node-type

46

blob(バイトのシーケンス)

netbios-scope

47

文字列

nis+-servers*

65

IP アドレス

nis+domain

64

文字列

nis-domain

40

文字列

nis-servers*

41

IP アドレス

nntp-servers*

71

IP アドレス

non-local-source-routing

20

バイト値ブール

ntp-servers*

42

IP アドレス

path-mtu-aging-timeout

24

整数

path-mtu-patheau-tables*

25

16 ビット符号なし整数

perform-mask-discovery

29

バイト値ブール

policy-filters*

21

IP アドレス(2 つのポリシー フィルタを使用し、それぞれに独自の IP アドレスを持たせることができます)

pop3-servers*

70

IP アドレス

relay-agent-info

82
サブオプション:

blob(バイトのシーケンス)

relay-agent-circuit-id-data

1

blob(バイトのシーケンス)

relay-agent-remote-id-data

2

blob(バイトのシーケンス)

relay-agent-device-class-data

4

4 バイト符号なし整数

relay-agent-subnet-selection-
data

5

IP アドレス

subscriber-id

6

ネットワーク クライアントまたは加入者を識別する文字列。

radius-attributes

7

サポートされるアトリビュートは、user、class、および framed-pool です。

relay-agent-vpn-id-data

181

文字列。

relay-agent-server-id-override-data

182

IP アドレス。


) サブオプション データの前の 2 バイト(サブオプション コードとデータ長)を返す
relay-agent-circuit-id、relay-agent-remote-id、および relay-agent-device-class サブオプションは推奨されなくなりましたが、使用可能です。


resource-location-servers*

11

IP アドレス

root-path

17

文字列

router-discovery

31

バイト値ブール

router-solicitation-address

32

IP アドレス

routers*

3

IP アドレス

smtp-servers*

69

IP アドレス

static-routes*

33

IP アドレス

streettalk-directory-
assistance-servers*

76

IP アドレス

streettalk-servers*

75

IP アドレス

subnet-mask

1

IP アドレス

subnet-selection

118

IP アドレス

swap-server

16

IP アドレス

tcp-keepalive-internal

38

整数

tcp-keepalive-garbage

39

バイト値ブール

tftp-server

66

文字列

time-offset

2

整数

time-servers*

4

IP アドレス

trailer-encapsulation

34

バイト値ブール

vendor-encapsulated-options

43

blob(バイトのシーケンス)

v-i-vendor-class

124

blob(バイトのシーケンス)

v-i-vendor-opts

125

blob(バイトのシーケンス)

vpn-id

185

blob(構造化)

www-servers*

72

IP アドレス

x-display-managers*

49

IP アドレス

表C-3 に、デコードされたパケット フィールドを示します。

 

表C-3 デコードされたパケット フィールド

データ項目
説明

dump-packet

整数

dump-packet の値が 1 に設定された場合、Network Registrar は現在デコードされている DHCP/BOOTP パケットをログ ファイルにダンプします。拡張機能は、実行の複数のポイントで、このデータ項目に値 1 を置くことができます。これは、拡張機能をデバッグする際に役立ちます。

mac-address

blob

クライアント パケットで送信された MAC アドレス。最初のバイトはハードウェア タイプ、2 番目のバイトはハードウェアの長さ、残りのバイト(最大 16)は post-packet-decode 直後に読み取られる chaddr 情報です。これは、DHCP パケットの htype フィールド、 hlen フィールド、 chaddr フィールドを集約した便利なフィールドです。これは、読み取られる際にこれらのフィールドから作成され、書き込まれる際にこれらのフィールドに入力されます。

要求ディクショナリ

表C-4 に、要求ディクショナリでいつでも設定できるデータ項目を示します。DHCP サーバは、さまざまな時点でそれらを読み取ります。特に指定されない限り、操作はすべて読み取り/書き込みです。

 

表C-4 要求ディクショナリ固有のデータ項目

データ項目

allow-bootp

整数

1 に設定されると、この要求のすべてのスコープで BOOTP を使用できます。スコープの選択中およびリース受け入れ可能性の確認時に読み取られます。

allow-dhcp

整数

1 に設定されると、この要求のすべてのスコープで DHCP を使用できます。スコープの選択中およびリース受け入れ可能性の確認時に読み取られます。

allow-dynamic-bootp

整数

1 に設定されると、この要求のすべてのスコープでダイナミック BOOTP を使用できます。スコープの選択中およびリース受け入れ可能性の確認時に読み取られます。

client-class-name

文字列

クライアント情報(ある場合)を完了するために使用されるクライアントクラスの名前。

client-class policy

文字列

クライアントクラスに関連付けられたポリシーの名前。これを設定する場合は、サーバ内ですでに設定されていたポリシーの名前も示す必要があります。

client-domain-name

文字列

クライアントが使用するドメイン名。これは存在しない場合もあります。その場合、DHCP サーバはスコープで指定されたドメイン名を使用します。安定した記憶域の更新の直前に DNS 更新の要求をキューに入れる際に読み取られます。

client-host-name

文字列

DNS 内のクライアントのホスト名。安定した記憶域の更新の直前に DNS アップデートの要求をキューに入れる際に読み取られます。操作が完了すると、DNS に実際の名前を入れます。

client-id

blob

サーバがクライアントをトラッキングする際に使用するクライアント識別。要求とともに送信されたか、または MAC アドレスから内部で生成された client-id が使用される場合もあります。 client-id-created-from-mac-address を参照してください。

client-id-created-from-mac-address

整数

1 に設定された場合、 client-id はクライアントが提供した MAC アドレスから内部用に生成される必要があり、レポートでは使用されません。

client-ipaddress

IP アドレス

クライアントによるパケットの送信元の IP アドレス。クライアントにまだ IP アドレスがない場合は、ゼロになる場合もあります。

client-lookup-id

blob

クライアントクラスの client-lookup-id 式によって計算されたクライアント ルックアップ ID。

client-mac-address

blob

要求ディクショナリに関連付けられたクライアント オブジェクトに保存された MAC アドレス。表C-3 で説明されている mac-address と同じ形式を持ちます(また、そこから作成されます)。

client-os-type

整数

pre-client-lookup または post-client-lookup 拡張ポイントでこれを設定することによって、要求パケットのクライアント エントリを変更します。 check-lease-acceptable から読み取られる場合もありますが、ここで設定することはできません。値を設定するには、まず post-packet-decode 要求ディクショナリで os-type を設定する必要があります。

client-policy

文字列

クライアント エントリに関連付けられたポリシーの名前。設定する場合は、DHCP サーバ内の事前設定ポリシーの名前である必要があります。

client-port

整数

クライアントによる要求の送信元のポート。

client-requested-host-name

文字列

DNS アップデートに使用するようクライアントが要求したホスト名。DHCP サーバは、変更が検出されるよう、この情報を保存します。

client-wants-nulls-in-strings

整数

DHCP サーバがクライアントにヌルで終了する文字列を返すかどうかを決定します。1 に設定されると、サーバは文字列をヌルで終了します。0 に設定すると、サーバは文字列をヌルで終了しません。 post-packet-decode の前に設定され、 pre-packet-encode の後で応答パケットのエンコード時に読み取られます。

import-packet

整数

サーバがパケットをインポート クライアントから送信されたかのように処理するかどうかを決定します。1 に設定されると、サーバはクライアントをインポート クライアントとして処理し、ACK を送信する前に DNS 操作をすべて実行します。サーバ インポート モードの確認時
post-packet-decode の直後)、DNS 処理の準備時、応答アドレスの設定時に読み取られます。

limitation-count

整数

同じ limitation-id で割り当てられる同時ユーザの数。

limitation-id

blob

この要求があるクライアントクラスの limitation-id 式(ある場合)によって計算されます。

limitation-id-null

整数

limitation-id がヌルの場合は 1(true)に設定され、別の値の場合は 0(false)に設定されます。

log-client-criteria-processing

整数

1 に設定されると、この要求のためクライアントを処理する基準が記録されます。リースのないクライアント用に新規リースを取得しようとする際、およびリース受け入れ可能性の確認時に読み取られます。

log-client-detail

整数

1 に設定されると、この要求のクライアントクラス処理が記録されます。 post-client-lookup の後、クライアントクラス処理の終わりに読み取られます。

log-dns-update-detail

整数

1 に設定されると、この要求の DNS 更新の詳細が記録されます。

log-failover-detail

整数

1 に設定されると、すべてのフェールオーバー状態の変更など、より詳細なフェールオーバー アクティビティが記録されます。

log-incoming-packet-detail

整数

1 に設定されると、この要求で詳細な着信パケット トレースが行われたかどうかが確認されるので、個別のトレースを置く必要がなくなります。パケットのデコードと最初の拡張ポイントの前に読み取られます。

log-incoming-packets

整数

1 に設定されると、この要求の着信パケットが記録されます。 post-decode-packet の後に読み取られます。

log-ldap-create-detail

整数

1 に設定されると、DHCP サーバが、LDAP サーバに対してリース状態エントリの作成を開始し、応答を受け取り、結果またはエラー メッセージを取得するたびにメッセージを記録します。

log-ldap-query-detail

整数

1 に設定されると、DHCP サーバが、LDAP サーバに対してクエリーを開始し、応答を受け取り、クエリー結果またはエラー メッセージを取得するたびにメッセージを記録します。

log-ldap-update-detail

整数

1 に設定されると、DHCP サーバが、LDAP サーバに対してアップデート リース状態を開始し、応答を受け取り、結果またはエラー メッセージを取得するたびにメッセージを記録します。

log-leasequery

整数

1 に設定されると、内部エラーなしで leasequery パケットが処理され、その結果 ACK または NAK が生成されるときにメッセージが記録されます。

log-incoming-packets

整数

1 に設定されると、この要求の着信パケットが記録されます。 post-decode-packet の後に読み取られます。

log-missing-options

整数

1 に設定されると、欠落しているオプション(クライアントが要求したが DHCP サーバ が返すことができないオプション)が記録されます。応答のためデータを収集しているときに読み取られます。

log-outgoing-packet-detail

整数

1 に設定されると、この要求の発信パケットの詳細なダンプが記録されます。 pre-packet-encode の後、DHCP クライアントへのパケット送信の直前に読み取られます。

log-unknown-criteria

整数

1 に設定されると、この要求について、クライアントの包含基準または除外基準で指定された不明な基準がすべて記録されます。新規クライアント リースの取得時または既存のクライアントのリース受け入れ可能性の確認時に読み取られます。

override-client-id

blob

現在のクライアントの client-id 値に使用される blob に評価される式。着信パケットからの client-id を置換します(ただし、どちらの値もリース状態データベース内に保管されます)。

ping-clients

整数

1 に設定されると、この要求のリースを提供する前に PING が実行されます。クライアントでリースの受け入れが可能かどうかを判別する直前に読み取られます。

relay-agent-radius-attributes

blob

relay-agent-info オプションの radius サブオプションからの全アトリビュート データ。

relay-agent-radius-class

文字列

relay-agent-info オプションの radius サブオプションのカプセル化 class アトリビュート。

relay-agent-radius-pool-name

文字列

relay-agent-info オプションの radius サブオプションのカプセル化 framed-pool アトリビュート。

relay-agent-radius-user

文字列

relay-agent-info オプションの radius サブオプションのカプセル化 user アトリビュート。

relay-agent-subscriber-id

文字列

relay-agent-info オプションの subscriber-id サブオプションからの全データ。

reply-to-client-address

整数

1 に設定されると、サーバは RFC で指定されたアルゴリズムを使用する代わりに、 client-ip-address client-port へ応答パケットを送信します。

selection-criteria

文字列

スコープの選択基準を含む、カンマ区切りの文字列。

selection-criteria-excluded

文字列

スコープの除外基準を含む、カンマ区切りの文字列。

send-ack-first

整数

1 に設定されると、ACK for DHCP 要求の後に DNS を更新します。DNS 操作の開始直前に読み取られます。

transaction-time

整数

入力パケットがデコードされた時間(1970 年以降は秒単位)。

update-dns

文字列

要求パケットごとに、部分、全体、または非ダイナミックの各 DNS アップデートを要求します。入力値と出力値は、1=update-all、2=update-fwd-only、3=update-rev-only、および 0=update-none です。

update-dns-for-bootp

整数

1 に設定されると、この要求の BOOTP 要求のために DNS を更新します。BOOTP 用の DNS 操作の初期化直前に読み取られます。

v4-bootp-reply-options

blob

ポリシー内のすべての v4-bootp-reply-options を上書きします。出力パケットのデータの収集時に読み取られます。

v4-reply-options

blob

ポリシーで指定された DHCPv4 応答オプションを上書きします。出力パケットのデータの収集時に読み取られます。

v46reply-options

blob

ポリシーで指定された DHCPv6 応答オプションを上書きします。出力パケットのデータの収集時に読み取られます。

verbose-logging

整数

1 に設定されると、この要求の冗長メッセージが記録されます。処理中のさまざまな時点で読み取られます。

vpn-description

文字列(読み取り専用)

VPN の説明。詳細については、 vpn-name を参照してください。

vpn-id

整数(読み取り専用)

VPN 識別子。詳細については、 vpn-name を参照してください。

vpn-name

文字列(読み取り専用)

VPN の名前。要求ディクショナリでは、 post-packet-decode にはこれらの項目の有効な値はありませんが、VPN はまだ決まっていないので、他のすべての拡張ポイントには有効な値があります。これは、スクリプトが post-packet-decode vpn-id オプションまたはサブオプションを変更することができ、それがリースに使用される VPN に影響するためです。

vpn-vrf-name

文字列(読み取り専用)

VPN の仮想ルーティング/転送テーブルの識別子。詳細については、 vpn-name を参照してください。

vpn-vpn-id

blob、通常は 7 バイト(読み取り専用)

バーチャル プライベート ネットワーク識別子。詳細については、 vpn-name を参照してください。

応答ディクショナリ

表C-5 に、応答ディクショナリでいつでも設定できるデータ項目を示します。DHCP サーバは、さまざまな時点でそれらを読み取ります。特に指定されない限り、操作は読み取り/書き込みです。

 

表C-5 応答ディクショナリ固有のデータ項目

データ項目

auto-configure

整数

Network Registrar は、ローカル サブネットで自動設定をディセーブルにするかどうかを問い合せ、通知を受けることができます。 yiaddr =0.0.0.0 を返す拡張スクリプトを記述し、このオプション(0xFB)を 0 に設定すると、Windows 2000 RC3 DHCP クライアントの自動設定を回避できます。クライアントが link-local IP アドレスを選択して、同じリンク上のその他のホストと通信できるようにします。

client-domain-name

文字列(読み取り専用)

リース内のクライアント情報から、クライアントが使用するドメイン名。これは存在しない場合もあります。その場合、DHCP サーバはスコープで指定されたドメイン名を使用します。安定した記憶域の更新の直前に DNS 更新の要求をキューに入れる際に読み取られます。

client-expiration-time

整数

クライアントに最後に与えられたリース期限の絶対時間値。

client-host-name

文字列

リース内のクライアント情報から、DHCP サーバが DNS に入れるホスト名。安定した記憶域の更新の直前に DNS 更新の要求をキューに入れる際に読み取られます。

client-id

blob

リース内のクライアント情報から、クライアントの記録をとるためにサーバが使用するクライアント識別。要求とともに送信された client-id 、または MAC アドレスから内部で生成された client-id が使用される場合もあります。

client-id-created-from-mac-address

整数(読み取り専用)

リース内のクライアント情報から。1 に設定された場合、 client-id は MAC アドレスから生成される必要があり、レポートでは使用されません。

client-last-transaction-time

整数(読み取り専用)

DHCP サーバが最後にこのクライアントから受信した時間(1970 年以降は秒単位)。

client-limitation-id

blob(読み取り専用)

現在のリースに関連するクライアントの制限識別子。

client-mac-address

blob

リース内のクライアント情報から、要求ディクショナリに関連するクライアント オブジェクトに保存された MAC アドレス。MAC アドレスと同じ形式を持ちます(また、そこから作成されます)。

client-os-type

整数

pre-client-lookup または post-client-lookup 拡張ポイントでこれを設定することによって、要求パケットのクライアント エントリを変更します。 check-lease-acceptable から読み取られる場合もありますが、ここで設定することはできません。値を設定するには、まず post-packet-decode 要求ディクショナリで os-type を設定する必要があります。

client-override-client-id

blob

現在のクライアントの client-id 値に使用される blob に評価される式。着信パケットからの client-id を置換します(ただし、どちらの値もリース状態データベース内に保管されます)。

client-requested-host-name

文字列

リース内のクライアント情報から、DNS アップデート用にクライアントが要求するホスト名。

client-user-defined-data

文字列

以前または現在、クライアントへ関連付けられている値を返します。 check-lease-acceptable 拡張ポイントまたは lease-state-change 拡張ポイントで要求された場合は、以前に関連付けられていた値を返します。 pre-packet-encode 拡張ポイントまたは post-send-packet 拡張ポイントで要求された場合は、現在の値を返します。

domain-name-changed

整数

1 に設定された場合、現在のパケット内のドメイン名は、DNS 更新で使用されるドメイン名とは異なります。 check-lease-acceptable の後、 pre-packet-encode の前に読み取られます。

host-name-changed

整数

1 に設定された場合、現在のパケット内のホスト名は、DNS アップデートで使用されるホスト名とは異なります。 check-lease-acceptable の後、 pre-packet-encode の前に読み取られます。

host-name-in-dns

整数

1 に設定された場合、ホスト名は DNS 内にあります。 check-lease-acceptable の後、 pre-packet-encode の前に読み取られます。ホスト名が DNS に送信された後に書き込まれます。

lease-deactivated

整数(読み取り専用)

1 に設定されると、リースが非アクティブであることがレポートされます。

lease-ipaddress

IP アドレス(読み取り専用)

DHCP サーバが処理中に使用するリースの IP アドレス。

lease-vpn-description

文字列(読み取り専用)

応答のリースで保存された VPN の説明。

lease-vpn-id

整数(読み取り専用)

応答のリースで保存された VPN の識別子。

lease-vpn-name

文字列(読み取り専用)

応答のリースで保存された VPN の名前。

lease-vpn-vrf-name

文字列(読み取り専用)

応答のリースで保存された VPN の仮想ルーティング/転送テーブルの識別子。

lease-vpn-vpn-id

blob、通常は 7 バイト(読み取り専用)

応答のリースで保存されたバーチャル プライベート ネットワーク(VPN)識別子。

lease-relay-agent-circuit-id

blob

応答のリースで保存された relay agent circuit id データにアクセスし、それを操作します。最初のバイトでサブオプション番号 1 を示す必要があります。これは推奨されません。代わりに
lease-relay-agent-circuit-id-data 項目を使用してください。

lease-relay-agent-circuit-id-data

blob(推奨されない lease-relay-agent-circuit-id の代わりに使用されます)

応答のリースで保存された relay-agent-circuit-id-data にアクセスし、それを操作します。 save-relay-agent-data DHCP サーバ アトリビュートがイネーブルである場合にだけ適しています。

lease-relay-agent-radius-attributes

blob

relay-agent-info オプションの radius サブオプションからの全アトリビュート データ。

lease-relay-agent-radius-user

文字列

relay-agent-info オプションの radius サブオプションのカプセル化 user アトリビュート。

lease-relay-agent-radius-class

文字列

relay-agent-info オプションの radius サブオプションのカプセル化 class アトリビュート。

lease-relay-agent-radius-pool-name

文字列

relay-agent-info オプションの radius サブオプションのカプセル化 framed-pool アトリビュート。

lease-relay-agent-remote-id

blob

応答のリースで保存された relay-agent-remote-id データにアクセスし、それを操作します。最初のバイトでサブオプション番号 2 を示す必要があります。これは推奨されません。代わりに
lease-relay-agent-remote-id-data
項目を使用してください。

lease-relay-agent-remote-id-data

blob( lease-relay-agent-remote-id 項目の代わりに使用されます)

応答のリースで保存された relay-agent-remote-id-data にアクセスし、それを操作します。 save-relay-agent-data DHCP サーバ アトリビュートがイネーブルである場合にだけ適しています。

lease-relay-agent-server-id-override-data

IP アドレス

応答のリースで保存された relay-agent-server-id-override-data にアクセスし、それを操作します。 save-relay-agent-data DHCP サーバ アトリビュートがイネーブルである場合にだけ適しています。

lease-relay-agent-subnet-selection-data

IP アドレス

応答のリースで保存された relay-agent-subnet-selection-data にアクセスし、それを操作します。 save-relay-agent-data DHCP サーバ アトリビュートがイネーブルである場合にだけ適しています。

lease-relay-agent-subscriber-id

文字列

relay-agent-info オプションの subscriber-id サブオプションからの全データ。

lease-relay-agent-vpn-id-data

blob

応答のリースで保存された relay-agent-vpn-id データにアクセスし、それを操作します。 save-relay-agent-data DHCP サーバ アトリビュートがイネーブルである場合にだけ適しています。

lease-reserved

整数(読み取り専用)

1 に設定されると、リースが予約されているかどうかがレポートされます。

lease-start-time-of-state

整数(読み取り専用)

このリースが初めて現在の状態に置かれた時間(1970 年以降は秒単位)。

lease-state

文字列(読み取り専用)

リースの状態。これは、 available offered expired leased 、または unavailable のいずれかです。

mac-address

blob

1 に設定された場合、スコープは BOOTP を許可します。DNS 操作の完了後に書き込まれます。

vpn-description

文字列(読み取り専用)

VPN の説明。

vpn-id

整数(読み取り専用)

VPN 識別子。

vpn-name

文字列(読み取り専用)

VPN の名前。

vpn-vrf-name

文字列(読み取り専用)

VPN の仮想ルーティング/転送テーブル(VRF)の識別子。

vpn-vpn-id

blob、通常は 7 バイト(読み取り専用)

バーチャル プライベート ネットワーク(VPN)識別子。

ping-clients

整数

1 に設定されると、この要求のリースを提供する前に PING が実行されます。クライアントのリース受け入れ可能性を判別する直前に読み取られます。

reply-ipaddress

IP アドレス

DHCP クライアントに応答する際に使用する IP アドレス。 pre-packet-encode の直後に読み取られます。 pre-packet-encode でその値を変更する場合、そこに入力する IP アドレスは、ARP クエリーに応答できるシステム用の IP アドレスである必要があります(ブロードキャスト アドレスの場合は別です)。ユニキャストがイネーブルで、ブロードキャスト フラグが DHCP 要求で設定されていなくても、ローカル ARP キャッシュは pre-packet-encode 内の新規 reply-ipaddress から DHCP 要求の MAC アドレスへのマッピングで設定されません。

reply-port

整数

DHCP クライアントに応答する際に使用するポート。 pre-packet encode の直後に読み取られます。

reverse-name-in-dns

整数

1 に設定された場合、逆引きネームは DNS 内にあります。DNS 操作の初期化前に読み取られます。

scope-allow-bootp

整数

1 に設定された場合、スコープは BOOTP を許可します。DNS 操作の完了後に書き込まれます。

scope-allow-dhcp

整数(読み取り専用)

1 に設定された場合、スコープは DHCP を許可します。

scope-allow-dynamic-bootp

整数(読み取り専用)

1 に設定された場合、スコープはダイナミック BOOTP を許可します。

scope-available-leases

整数(読み取り専用)

現在のスコープで使用可能なリースの数。

scope-deactivated

整数(読み取り専用)

1 に設定された場合、スコープは非アクティブになります。

scope-dns-forward-server-address

IP アドレス(読み取り専用)

DNS 順アドレスに使用する DNS サーバ。

scope-dns-forward-zone-name

文字列(読み取り専用)

スコープで設定された順ゾーン名。

scope-dns-number-of-host-bytes

整数(読み取り専用)

DNS 更新を処理する DHCP サーバ コードによって使用されるホスト バイトの数。

scope-dns-reverse-server-address

IP アドレス(読み取り専用)

DNS 逆アドレスに使用する DNS サーバ。

scope-dns-reverse-zone-name

文字列(読み取り専用)

スコープで設定された逆ゾーン名。

scope-network-number

IP アドレス(読み取り専用)

DHCP サーバが処理しているリースを含むスコープのネットワーク番号。

scope-ping-clients

ブール(読み取り専用)

1 に設定された場合は、現在のリースに関連付けられたスコープが、リースの提供前に PING 操作をサポートするよう設定されていたことを示します。

scope-primary-network-number

IP アドレス(読み取り専用)

このスコープのプライマリ スコープのネットワーク番号。

scope-primary-subnet-mask

IP アドレス(読み取り専用)

このスコープのプライマリ スコープのサブネット マスク。

scope-renew-only

整数(読み取り専用)

1 に設定された場合、スコープは更新のみになります。

scope-renew-only-expire-time

整数(読み取り専用)

更新のみのスコープが更新のみでなくなる絶対時間(1970 年 1 月 1 日以降は秒単位)。

scope-selection-tags

文字列(読み取り専用)

スコープの選択基準を含む、カンマ区切りの文字列。このデータ項目は、スコープに基づいた決定に使用します。

scope-send-ack-first

整数(読み取り専用)

1 に設定されると、スコープは残りの処理を実行する前に ACK を送信します。

scope-subnet-mask

IP アドレス(読み取り専用)

DHCP サーバが処理しているリースを含むスコープのサブネット マスク。

scope-update-dns

文字列(読み取り専用)

順ゾーンまたは逆ゾーンの DNS アップデート。出力値は、1=update-all、2=update-fwd-only、3=update-rev-only、および 0=update-none です。Network Registrar 6.1.1 で導入されました。

scope-update-dns-enabled

ブール(読み取り専用)

1 に設定された場合、スコープで順ゾーンおよび逆ゾーン用にアップデート DNS がイネーブルになっています。推奨されません。代わりに scope-update-dns を使用してください。

scope-update-dns-for-bootp

整数(読み取り専用)

1 に設定された場合は、スコープで BOOTP 用にアップデート DNS がイネーブルになっています。

transaction-time

整数(読み取り専用)

要求がデコードされた時間(1970 年以降は秒単位)。

拡張ディクショナリの API

この項では、TCL 拡張機能および共有ライブラリからディクショナリにアクセスする際に使用するディクショナリ方式の呼び出しについて説明します。

TCL 属性ディクショナリの API

属性ディクショナリでは、Network Registrar DHCP サーバ設定で定義されているように、キーがアトリビュートの名前に制限されます。値は、特定のアトリビュートの正当な値を文字列で表したものです。たとえば、IP アドレスはアドレスをドット付き 10 進文字列で表したものであり、列挙される値は列挙法の名前で指定されます。したがって、数字は数字の文字列表記で指定されます。

属性ディクショナリは、1 つのキーについて複数のインスタンスを組み込める点が他のディクショナリと異なっています。これらのインスタンスには順序が付けられ、最初のインスタンスのインデックスは 0 になります。属性ディクショナリ方式の中には、参照されるインスタンス リスト内の特定のインスタンスや位置をインデックスで指定できるものもあります。

TCL API ルーチン シグニチャとコマンド シンタックスについては、「TCL 属性ディクショナリの API」を参照してください。

TCL 要求ディクショナリ方式と応答ディクショナリ方式

属性ディクショナリではコマンドを使用して、ディクショナリ内の値の変更や値へのアクセスを実行できます。 表C-6 に、要求ディクショナリと応答ディクショナリで使用するコマンドを示します。この場合、 dict 変数を request または response として定義できます。

例は、 install-path /examples/dhcp/tcl/tclextension.tcl ファイルを参照してください。

 

表C-6 TCL 要求ディクショナリ方式と応答ディクショナリ方式

方式
シンタックス

get

$ dict get attribute [ index [ bMore ]]

ディクショナリから、文字列として表されたアトリビュートの値を返します。ディクショナリにアトリビュートが含まれていない場合は、代わりに空の文字列が返されます。インデックス値を組み込むと、アトリビュートの index 番目のインスタンスが返されます。要求パケットまたは応答パケットで複数回現れるアトリビュートもあります。インデックスによって、返されるインスタンスが選択されます。

bMore を組み込むと、 get メソッドによって、アトリビュートが 1 つ返された後にまだある場合は bMore が TRUE に設定され、ない場合は FALSE に設定されます。これを使用して、 get への別の呼び出しでアトリビュートのその他のインスタンスを検出するかどうかを決めることができます。

log

$ dict log level message ...

DHCP サーバのロギング システムにメッセージを出力します。レベルは、LOG_ERROR、LOG_WARNING、または LOG_INFO である必要があります。残りの引数は連結され、指定されたレベルのロギング システムに送信されます。

remove

$ dict remove attribute [ index ]

ディクショナリからアトリビュートを削除します。インデックスを省略した場合や特殊な値 REMOVE_ALL に設定した場合は、アトリビュートの既存のインスタンスがすべて削除されます。インデックスを数字として組み込むと、指定された位置でアトリビュートのインスタンスが削除されます。この方式は、ディクショナリがそのインデックスでそのアトリビュートを含んでいない場合でも、常に 1 を返します。

put

$ dict put attribute value [ index ]

ディクショナリ内のアトリビュートに値を関連付けます。インデックスを省略した場合や特殊な値 REPLACE に設定した場合は、アトリビュートの既存のインスタンスがすべて単一の値に置換されます。インデックス値を特殊な値 APPEND として組み込むと、アトリビュートのインスタンスのリストの最後にアトリビュートの新規インスタンスが付加されます。インデックス値を数字として組み込むと、指定された位置にアトリビュートの新規インスタンスが挿入されます。インデックス値を特殊な値 AUGMENT に設定した場合は、アトリビュートがまだない場合だけ、そのアトリビュートが組み込まれます。

trace

$ dict trace level message ...

DHCP サーバのパケット トレース システム内のメッセージを返します。レベル 0 では、トレースは実行されません。レベル 1 では、サーバがパケットを受信し応答を送信したことだけをトレースします。レベル 4 では、すべてをトレースします。残りの引数は連結され、指定されたレベルのトレース システムに送信されます。デフォルト トレースは、DHCP サーバの extension-trace-level アトリビュートを使用して設定されます。

TCL 環境ディクショナリ方式

表C-7 で、この環境ディクショナリで使用するコマンドについて説明します。この場合、次の手順の例のように、 dict 変数を environ として定義できます。

proc tclhelloworld2 { request response environ } {
$environ put trace-level 4
$environ log LOG_INFO "Environment hello world"
}
 

 

表C-7 TCL 環境ディクショナリ方式

方式
シンタックス

clear

$ dict clear

ディクショナリからすべてのエントリを削除します。

containsKey

$ dict containsKey key

ディクショナリにキーが含まれている場合は 1、含まれていない場合は 0 を返します。

firstKey

$ dict firstKey

ディクショナリ内の最初のキーの名前を返します。キーは名前別に分類されて保存されているわけではありません。キーが存在しない場合は、空の文字列が返されます。

get

$ dict get key

ディクショナリからキーの値を返します。キーが存在しない場合は、空の文字列が返されます。

isEmpty

$ dict isEmpty

ディクショナリにエントリがない場合は 1、ある場合は 0 を返します。

log

$ dict log level message ...

DHCP サーバのロギング システム内のメッセージを返します。 level は、LOG_ERROR、LOG_WARNING、または LOG_INFO のいずれかである必要があります。残りの引数は連結され、指定されたレベルのロギング システムに送信されます。

nextKey

$ dict nextKey

ディクショナリ内の次のキーの名前を返します。これは、 firstKey または nextKey への最後の呼び出しで返されるキーの後に続きます。キーが存在しない場合は、空の文字列が返されます。

put

$ dict put key value

値をキーに関連付け、キーの既存のインスタンスを新規値に置換します。

remove

$ dict remove key

ディクショナリからキーを削除します。ディクショナリにキーが含まれてない場合でも、常に 1 を返します。

size

$ dict size

ディクショナリ内のエントリの数を返します。

trace

$ dict trace level message ...

DHCP サーバのパケット トレース システム内のメッセージを返します。レベル 0 では、トレースは実行されません。レベル 1 では、サーバがパケットを受信し応答を送信したことだけをトレースします。レベル 4 では、すべてをトレースします。残りの引数は連結され、指定されたレベルのトレース システムに送信されます。デフォルト トレースは、DHCP サーバの extension-trace-level アトリビュートを使用して設定されます。

DEX 属性ディクショナリの API

C/C++ 用の DEX 拡張機能を記述する場合は、キーをアトリビュート名の文字列表記またはタイプ(アトリビュートを定義するバイト シーケンス)で指定できます。つまり、これらのアクセス方式には、キーまたは値に文字列またはタイプを使用する 4 つの異なる組み合せがあります。

基本的な DEX 拡張機能の例は次のようになります。

int DEXAPI dexhelloworld( int iExtensionPoint,
dex_AttributeDictionary_t* pRequest,
dex_AttributeDictionary_t* pResponse,
dex_EnvironmentDictionary_t* pEnviron )
{
pEnviron->log( pEnviron, DEX_LOG_INFO, "hello world" );
return DEX_OK;
}
 

例のディレクトリで install-path /examples/dhcp/dex/dexextension.c ファイルまたはその他のファイルを参照してください。

DEX 要求ディクショナリ方式と応答ディクショナリ方式

DEX 属性ディクショナリは、メソッドと呼ばれるアクティブなコマンドを使用します。これを使用すると、値の変更や値へのアクセスができます。 表C-8 に、要求ディクショナリと応答ディクショナリで使用するメソッドを示します。この場合、 pDict 変数を pRequest または pResponse として定義できます。

pRequest->get( pRequest, "host-name", 0, 0 );
 

 

表C-8 DEX 要求ディクショナリ方式と応答ディクショナリ方式

方式
シンタックス

allocateMemory

void* pDict ->allocateMemory( dex_AttributeDictionary_t* pDict , unsigned int iSize )

拡張機能で、この要求のライフタイムの間だけ存続するメモリを割り振ります。

get

const char* pDict ->get( dex_AttributeDictionary_t* pDict , const char* pszAttribute , int iIndex , abool_t* pbMore )

ディクショナリから、文字列として表されたアトリビュートの iIndex インスタンス値を返します。ディクショナリにアトリビュートが含まれていない場合(またはアトリビュートのインスタンスが多数含まれている場合)は、代わりに空の文字列が返されます。 pbMore がゼロではない場合は、 get メソッドによって、アトリビュートのインスタンスが 1 つ返された後にまだインスタンスがある場合は pbMore が TRUE に設定され、ない場合は FALSE に設定されます。これを使用して、 get への別の呼び出しでアトリビュートのその他のインスタンスを検出するかどうかを決めることができます。

getBytes

const abytes_t* pDict ->getBytes( dex_AttributeDictionary_t* pDict , const char* pszAttribute , int iIndex , abool_t* pbMore )

ディクショナリから、バイトのシーケンスとして表されたアトリビュートの iIndex インスタンス値を返します。ディクショナリにアトリビュートが含まれていない場合(またはアトリビュートのインスタンスが多数含まれている場合)は、代わりに 0 が返されます。 pbMore がゼロではない場合は、 getBytes メソッドによって、アトリビュートのインスタンスが 1 つ返された後にまだインスタンスがある場合は TRUE に設定され、ない場合は FALSE に設定されます。これを使用して、 getBytes への別の呼び出しでアトリビュートのその他のインスタンスを検出するかどうかを決めることができます。

getByType

const char* pDict ->getByType( dex_AttributeDictionary_t* pDict , const abytes_t* pszAttribute , int iIndex , abool_t* pbMore )

ディクショナリから、文字列として表されたアトリビュートの iIndex インスタンス値を返します。ディクショナリにアトリビュートが含まれていない場合(またはアトリビュートのインスタンスが多数含まれている場合)は、代わりに空の文字列が返されます。 pbMore がゼロではない場合は、 getByType メソッドによって、アトリビュートのインスタンスが 1 つ返された後にまだインスタンスがある場合は pbMore が TRUE に設定され、ない場合は FALSE に設定されます。これを使用して、 getByType への別の呼び出しでその他のインスタンスを検出するかどうかを決めることができます。

getBytesByType

const abytes_t* pDict -> getBytesByType( dex_AttributeDictionary_t* pDict , const abytes_t* pszAttribute , int iIndex , abool_t* pbMore )

ディクショナリから、バイトのシーケンスとして表されたアトリビュートの iIndex インスタンス値を返します。ディクショナリにアトリビュートが含まれていない場合(またはアトリビュートのインスタンスが多数含まれている場合)は、代わりに 0 が返されます。 pbMore がゼロではない場合は、アトリビュートのインスタンスが 1 つ返された後にまだインスタンスがある場合は変数が TRUE に設定され、ない場合は FALSE に設定されます。これを使用して、 get への別の呼び出しでアトリビュートのその他のインスタンスを検出するかどうかを決めることができます。

getType

const abytes_t* pDict ->getType( dex_AttributeDictionary_t* pDict , const char* pszAttribute )

設定されたアトリビュートとアトリビュート名が一致する場合はアトリビュートを定義するバイト シーケンスへのポインタを返し、一致しない場合は 0 を返します。

log

abool_t pDict ->log( dex_AttributeDictionary_t* pDict , int eLevel , const char* pszFormat , ... )

DHCP サーバのロギング システム内のメッセージを返します。 eLevel は、DEX_LOG_ERROR、DEX_LOG_WARNING、または DEX_LOG_INFO のいずれかである必要があります。 pszFormat は printf スタイル形式の文字列として処理され、残りの引数とともにフォーマットされ、指定されたレベルでロギング システムに送信されます。

put

abool_t pDict ->put( dex_AttributeDictionary_t* pDict , const char* pszAttribute , const char* pszValue , int iIndex )

サーバ設定の pszAttribute の定義に従って、 pszValue をバイトのシーケンスに変換します。そのバイトのシーケンスをディクショナリ内のアトリビュートに関連付けます。 iIndex が特殊な値 DEX_REPLACE である場合は、アトリビュートの既存のインスタンスをすべて単一の値に置換します。特殊な値 DEX_APPEND である場合は、アトリビュートの新規インスタンスをリストに付加します。特殊な値 DEX_AUGMENT である場合は、アトリビュートがまだない場合だけ、そのアトリビュートを組み込みます。それ以外の場合は、指定された位置に新規インスタンスを挿入します。設定されたアトリビュートとアトリビュート名が一致しない場合やアトリビュートを正当な値に変換できない場合を除き、TRUE を返します。

putByType

abool_t pDict ->putByType( dex_AttributeDictionary_t* pDict , const abytes_t* pszAttribute , const char* pszValue , int iIndex )

サーバ設定の pszAttribute の定義に従って、 pszValue をバイトのシーケンスに変換します。そのバイトのシーケンスをディクショナリ内のアトリビュートに関連付けます。 iIndex が特殊な値 DEX_REPLACE である場合は、アトリビュートの既存のインスタンスをすべて単一の値に置換します。特殊な値 DEX_APPEND である場合は、アトリビュートの新規インスタンスをリストに付加します。特殊な値 DEX_AUGMENT である場合は、アトリビュートがまだない場合だけ、そのアトリビュートを組み込みます。それ以外の場合は、指定された位置に新規インスタンスを挿入します。

putBytes

abool_t pDict ->putBytes( dex_AttributeDictionary_t* pDict , const char* pszAttribute , const abytes_t* pszValue , int iIndex )

ディクショナリ内で pszValue pszAttribute に関連付けます。 iIndex が特殊な値 DEX_REPLACE である場合は、アトリビュートの既存のインスタンスをすべて単一の値に置換します。特殊な値 DEX_APPEND である場合は、アトリビュートの新規インスタンスをリストに付加します。特殊な値 DEX_AUGMENT である場合は、アトリビュートがまだない場合だけ、そのアトリビュートを組み込みます。それ以外の場合は、指定された位置に新規インスタンスを挿入します。設定された名前にアトリビュート名が一致しない場合を除き、TRUE を返します。

putBytesByType

abool_t pDict ->putBytesByType( dex_AttributeDictionary_t* pDict , const abytes_t* pszAttribute , const abytes_t* pszValue , int iIndex )

ディクショナリ内で pszValue pszAttribute に関連付けます。 iIndex が特殊な値 DEX_REPLACE である場合は、アトリビュートの既存のインスタンスをすべて新規値に置換します。特殊な値 DEX_APPEND である場合は、アトリビュートの新規インスタンスをリストに付加します。特殊な値 DEX_AUGMENT である場合は、アトリビュートがまだない場合だけ、そのアトリビュートを組み込みます。それ以外の場合は、指定された位置にアトリビュートの新規インスタンスを挿入します。

remove

abool_t pDict ->remove( dex_AttributeDictionary_t* pDict , const char* pszAttribute , int iIndex )

ディクショナリからアトリビュートを削除します。 iIndex が特殊な値 DEX_REMOVE_ALL である場合は、アトリビュートの既存のインスタンスをすべて削除します。それ以外の場合は、指定された位置で新規インスタンスを削除します。ディクショナリがそのインデックスでそのアトリビュートを含んでいない場合でも、設定された名前にアトリビュート名が一致しない場合を除き、TRUE を返します。

removeByType

abool_t pDict ->removeByType( dex_AttributeDictionary_t* pDict , const abytes_t* pszAttribute , int iIndex )

ディクショナリからアトリビュートを削除します。 iIndex が値 DEX_REMOVE_ALL である場合は、アトリビュートの既存のインスタンスをすべて削除します。それ以外の場合は、指定された位置で新規インスタンスを削除します。ディクショナリがそのインデックスでそのアトリビュートを含んでいない場合でも、常に TRUE を返します。

trace

abool_t pDict ->trace( dex_AttributeDictionary_t* pDict , int iLevel , const char* pszFormat , ... )

DHCP サーバのパケット トレース システム内のメッセージを返します。レベル 0 では、トレースは実行されません。レベル 1 では、サーバがパケットを受信し応答を送信したことだけをトレースします。レベル 4 では、すべてをトレースします。残りの引数は連結され、指定されたレベルのトレース システムに送信されます。デフォルト トレースは、DHCP サーバの extension-trace-level アトリビュートを使用して設定されます。

DEX 環境ディクショナリ方式

環境ディクショナリは、 メソッド と呼ばれるアクティブなコマンドを使用します。これを使用すると、ディクショナリの値の変更やディクショナリの値へのアクセスができます。 表C-9 に、環境ディクショナリで使用するメソッドを示します。この場合、 pDict 変数を pEnviron として定義できます。

pEnviron->log( pEnviron, DEX_LOG_INFO, "Environment hello world" );
 

 

表C-9 DEX 環境ディクショナリ方式

方式
シンタックス

allocateMemory

void* pDict ->allocateMemory( dex_EnvironmentDictionary_t* pDict , unsigned int iSize )

拡張機能で、この要求のライフタイムの間だけ存続するメモリを割り振ります。

clear

void pDict ->clear( dex_EnvironmentDictionary_t* pDict )

ディクショナリからすべてのエントリを削除します。

containsKey

abool_t pDict ->containsKey( dex_EnvironmentDictionary_t* pDict , const char* pszKey )

ディクショナリにキーが含まれている場合は TRUE、含まれていない場合は FALSE を返します。

firstKey

const char* pDict ->firstKey( dex_EnvironmentDictionary_t* pDict )

ディクショナリ内の最初のキーの名前を返します。キーは名前別に分類されて保存されているわけではありません。キーが存在しない場合は、ゼロが返されます。

get

const char* pDict ->get( dex_EnvironmentDictionary_t* pDict , const char* pszKey )

ディクショナリからキーの値を返します。キーが存在しない場合は、空の文字列が返されます。

isEmpty

abool_t pDict ->isEmpty( dex_EnvironmentDictionary_t* pDict )

ディクショナリにエントリがない場合は TRUE、ある場合は FALSE を返します。

log

abool_t pDict ->log( dex_EnvironmentDictionary_t* pDict , int eLevel , const char* pszFormat , ... )

DHCP サーバのロギング システム内のメッセージを返します。 eLevel は、LOG_ERROR、LOG_WARNING、または LOG_INFO のいずれかである必要があります。 pszFormat は printf スタイル形式の文字列として処理され、残りの引数とともにフォーマットされ、指定されたレベルでロギング システムに送信されます。

nextKey

const char* pDict ->nextKey( dex_EnvironmentDictionary_t* pDict )

ディクショナリ内の次のキーの名前を返します。これは、 firstKey または nextKey への最後の呼び出しで返されるキーの後に続きます。キーが存在しない場合は、ゼロが返されます。

put

abool_t pDict ->put( dex_EnvironmentDictionary_t* pDict , const char* pszKey , const char* pszValue )

値をキーに関連付け、キーの既存のインスタンスを新規値に置換します。

remove

abool_t pDict ->remove( dex_EnvironmentDictionary_t* pDict , const char* pszKey )

ディクショナリからキーとそれに関連する値を削除します。ディクショナリにキーが含まれてない場合でも、常に TRUE を返します。

size

int pDict ->size( dex_EnvironmentDictionary_t* pDict )

ディクショナリ内のエントリの数を返します。

trace

abool_t pDict ->trace( dex_EnvironmentDictionary_t* pDict , int iLevel , const char* pszFormat , ... )

DHCP サーバのパケット トレース システム内のメッセージを返します。レベル 0 では、トレースは実行されません。レベル 1 では、サーバがパケットを受信し応答を送信したことだけをトレースします。レベル 4 では、すべてをトレースします。残りの引数は連結され、指定されたレベルのトレース システムに送信されます。デフォルト トレースは、DHCP サーバの extension-trace-level アトリビュートを使用して設定されます。