UNIX Network Programming Volume 1, Third Edition [Electronic resources] : The Sockets Networking API نسخه متنی

اینجــــا یک کتابخانه دیجیتالی است

با بیش از 100000 منبع الکترونیکی رایگان به زبان فارسی ، عربی و انگلیسی

UNIX Network Programming Volume 1, Third Edition [Electronic resources] : The Sockets Networking API - نسخه متنی

Addison Wesley

| نمايش فراداده ، افزودن یک نقد و بررسی
افزودن به کتابخانه شخصی
ارسال به دوستان
جستجو در متن کتاب
بیشتر
تنظیمات قلم

فونت

اندازه قلم

+ - پیش فرض

حالت نمایش

روز نیمروز شب
جستجو در لغت نامه
بیشتر
لیست موضوعات
توضیحات
افزودن یادداشت جدید










19.2 Reading and Writing


All messages on a key management socket have the same basic header, shown in Figure 19.1. Each message may be followed by various extensions, depending on what additional information is available or required. All the appropriate structures are defined by including <net/pfkeyv2.h>. Each message and extension is 64-bit-aligned and is a multiple of 64 bits in length. All length fields are in units of 64 bits, that is, a length of 1 means 8 bytes. Any extension that does not require enough data to be a multiple of 64 bits in length is padded to the next multiple of 64 bits. The value of this padding is not defined.

Figure 19.1 Key management message header.


struct sadb_msg {
u_int8_t sadb_msg_version; /* PF_KEY_V2 */
u_int8_t sadb_msg_type; /* see Figure 19.2 */
u_int8_t sadb_msg_errno; /* error indication */
u_int8_t sadb_msg_satype; /* see Figure 19.3 */
u_int16_t sadb_msg_len; /* length of header + extensions / 8 */
u_int16_t sadb_msg_reserved; /* zero on transmit, ignored on receive */
u_int32_t sadb_msg_seq; /* sequence number */
u_int32_t sadb_msg_pid; /* process ID of source or dest */
};

The sadb_msg_type value determines which of the 10 key management commands is being invoked. These message types are listed in Figure 19.2. Each sadb_msg header will be followed by zero or more extensions. Most message types have required and optional extensions; we will describe these as we describe each message type. The 16 types of extensions, along with the name of the structure that defines each extension, are listed in Figure 19.4.


Figure 19.2. Types of messages exchanged across a PF_KEY socket.



Figure 19.3. Types of SAs.



Figure 19.4. PF_KEY Extension Types.


We now show several examples and the messages and extensions involved in several common operations on key management sockets.


/ 450