EN JA
NG_CISCO(4)
NG_CISCO(4) FreeBSD Kernel Interfaces Manual NG_CISCO(4)

名称

ng_ciscoCisco HDLC プロトコル netgraph ノードタイプ

書式

#include < sys/types.h>
#include < netinet/in.h>
#include < netgraph/ng_cisco.h>

解説

cisco ノードタイプは、Cisco HDLC プロトコルを使用するパケットのカプセル化と非-カプセル化を実行します。これは、高速同期ラインを横断するパケットの送信のためのかなり単純なプロトコルです。各パケットは、プロトコルを示す Ethertype と共に先頭に追加されます。“キープアライブ (生き続ける)”と“問い合わせ”機能もあります。

downstream (下流) のフックは、同期ラインに接続するべきです。ノードの反対側は、それぞれ生の IP、IPv6、AppleTalk、IPX パケットを送信し受信する inet, inet6, atalk, ipx フックです。通常、これらのフックは、 ng_iface(4) タイプノードで対応するフックに接続します。

IP 設定

IP トラフィックを適切に機能するために、ノードは、ローカル IP アドレスとネットマスク設定の情報を与えなければなりません。これは、プロトコルが答える準備をしなければならない“問い合わせ”パケットを含んでいるからです。これを達成する、手動と自動の 2 つの方法があります。

問い合わせパケットが受信されるようなときはいつでも、ノードは、 NGM_CISCO_GET_IPADDR コントロールメッセージを (もしあるならば) inet フックに接続されたピア (相手側) ノードに送ります。ピアが応答するなら、その応答は使用されます。これは、自動の方法です。

ピア (相手側) が応答しないなら、ノードは、IP のアドレスとネットマスクのためにキャッシュ値にフォールバック (後退) します。このキャッシュされた値は、 NGM_CISCO_SET_IPADDR メッセージでいつでも設定できます、そしてこれは、手動の方法です。

inet フックが通常の場合のように ng_iface(4) ノードの inet フックに接続される場合、設定は、 ng_iface(4)NGM_CISCO_GET_IPADDR メッセージを理解しているように自動的です。

フック

このノードタイプは、次のフックをサポートします:
downstream
同期ラインへの接続。
inet
IP フック。
inet6
IPv6 フック。
atalk
AppleTalk フック。
ipx
IPX フック。

コントロールメッセージ

このノードタイプは、次を加えて、一般的なコントロールメッセージをサポートします:
NGM_CISCO_SET_IPADDR ( setipaddr)
このコマンドは、2 つの struct in_addr 引数の配列を取ります。最初は、対応するインタフェースの IP アドレスで、2 番目は、ネットマスクです。
NGM_CISCO_GET_IPADDR ( getipaddr)
このコマンドは、 NGM_CISCO_SET_IPADDR によって使用されるのと同じ形式で IP 設定を返します。また、IP アドレスの問い合せパケットが受信されるときはいつも、このコマンドは、このノードタイプで inet ピア (相手側) に送られます。
NGM_CISCO_GET_STATUS ( getstats)
struct ngciscostat を返します。

struct ngciscostat { 
  uint32_t   seqRetries; /* # unack'd retries */ 
  uint32_t   keepAlivePeriod; /* 秒単位 */ 
};

シャットダウン

このノードは、 NGM_SHUTDOWN コントロールメッセージを受け取るか、すべてのフックが切断されている時、シャットダウンします。

関連項目

netgraph(4), ng_iface(4), ngctl(8) D. Perkins, Requirements for an Internet Standard Point-to-Point Protocol, RFC 1547.

法律上

Cisco is a trademark of Cisco Systems, Inc.

歴史

ng_cisco ノードタイプは、 FreeBSD 4.0 で実装されました。

作者

Julian Elischer <julian@FreeBSD.org>, Archie Cobbs <archie@FreeBSD.org>

バグ

機能性のすべてが実装されるというわけではありません。例えば、ノードは、その IP アドレスとネットマスクのためのリモートエンドの問い合わせをサポートしません。
January 19, 1999 FreeBSD