datatracker.ietf.org
Sign in
Version 5.7.4, 2014-11-12
Report a bug

Linux Netlink as an IP Services Protocol
RFC 3549

Document type: RFC - Informational (July 2003; No errata)
Document stream: IETF
Last updated: 2013-03-02
Other versions: plain text, pdf, html

IETF State: WG Document
Consensus: Unknown
Document shepherd: No shepherd assigned

IESG State: RFC 3549 (Informational)
Responsible AD: Alex Zinin
IESG Note: In Authors' 48 hours
Send notices to: <dro@zurich.ibm.com>, <David.Putzolu@intel.com>

Network Working Group                                           J. Salim
Request for Comments: 3549                                 Znyx Networks
Category: Informational                                      H. Khosravi
                                                                   Intel
                                                                A. Kleen
                                                                    Suse
                                                            A. Kuznetsov
                                                              INR/Swsoft
                                                               July 2003

                Linux Netlink as an IP Services Protocol

Status of this Memo

   This memo provides information for the Internet community.  It does
   not specify an Internet standard of any kind.  Distribution of this
   memo is unlimited.

Copyright Notice

   Copyright (C) The Internet Society (2003).  All Rights Reserved.

Abstract

   This document describes Linux Netlink, which is used in Linux both as
   an intra-kernel messaging system as well as between kernel and user
   space.  The focus of this document is to describe Netlink's
   functionality as a protocol between a Forwarding Engine Component
   (FEC) and a Control Plane Component (CPC), the two components that
   define an IP service.  As a result of this focus, this document
   ignores other uses of Netlink, including its use as a intra-kernel
   messaging system, as an inter-process communication scheme (IPC), or
   as a configuration tool for other non-networking or non-IP network
   services (such as decnet, etc.).

   This document is intended as informational in the context of prior
   art for the ForCES IETF working group.

Salim, et. al.               Informational                      [Page 1]
RFC 3549        Linux Netlink as an IP Services Protocol       July 2003

Table of Contents

   1.  Introduction ...............................................  2
       1.1. Definitions ...........................................  3
            1.1.1.  Control Plane Components (CPCs)................  3
            1.1.2.  Forwarding Engine Components (FECs)............  3
            1.1.3.  IP Services ...................................  5
   2.  Netlink Architecture .......................................  7
       2.1. Netlink Logical Model .................................  8
       2.2. Message Format.........................................  9
       2.3. Protocol Model.........................................  9
            2.3.1.  Service Addressing............................. 10
            2.3.2.  Netlink Message Header......................... 10
            2.3.3.  FE System Services' Templates.................. 13
   3.  Currently Defined Netlink IP Services....................... 16
       3.1. IP Service NETLINK_ROUTE............................... 16
            3.1.1.  Network Route Service Module................... 16
            3.1.2.  Neighbor Setup Service Module.................. 20
            3.1.3.  Traffic Control Service........................ 21
       3.2. IP Service NETLINK_FIREWALL............................ 23
       3.3. IP Service NETLINK_ARPD................................ 27
   4.  References.................................................. 27
       4.1. Normative References................................... 27
       4.2. Informative References................................. 28
   5.  Security Considerations..................................... 28
   6.  Acknowledgements............................................ 28
   Appendix 1:  Sample Service Hierarchy .......................... 29
   Appendix 2:  Sample Protocol for the Foo IP Service............. 30
   Appendix 2a: Interacting with Other IP services................. 30
   Appendix 3:  Examples........................................... 31
   Authors' Addresses.............................................. 32
   Full Copyright Statement........................................ 33

1.  Introduction

   The concept of IP Service control-forwarding separation was first
   introduced in the early 1990s by the BSD 4.4 routing sockets [9].
   The focus at that time was a simple IP(v4) forwarding service and how
   the CPC, either via a command line configuration tool or a dynamic
   route daemon, could control forwarding tables for that IPv4
   forwarding service.

   The IP world has evolved considerably since those days.  Linux
   Netlink, when observed from a service provisioning and management
   point of view, takes routing sockets one step further by breaking the
   barrier of focus around IPv4 forwarding.  Since the Linux 2.1 kernel,
   Netlink has been providing the IP service abstraction to a few
   services other than the classical RFC 1812 IPv4 forwarding.

[include full document text]