Requirements for P4 Program Splitting for Heterogeneous Network Nodes
draft-hsingh-coinrg-reqs-p4comp-02

Document Type Active Internet-Draft (individual)
Author Hemant Singh 
Last updated 2020-12-08
Stream (None)
Intended RFC status (None)
Formats plain text pdf htmlized (tools) htmlized bibtex
Stream Stream state (No stream defined)
Consensus Boilerplate Unknown
RFC Editor Note (None)
IESG IESG state I-D Exists
Telechat date
Responsible AD (None)
Send notices to (None)
COIN                                                            H. Singh
Internet-Draft                                   MNK Labs and Consulting
Intended status: Informational                          December 8, 2020
Expires: June 11, 2021

 Requirements for P4 Program Splitting for Heterogeneous Network Nodes
                   draft-hsingh-coinrg-reqs-p4comp-02

Abstract

   The P4 research community has published a paper to show how to split
   a P4 program into sub-programs which run on heterogeneous network
   nodes in a network.  Examples of nodes are a network switch, a
   smartNIC, or a host machine.  The paper has developed artifacts to
   split program based on latency, data rate, cost, etc.  However, the
   paper does not mention any requirements.  To provide guidance, this
   document covers requirements for splitting P4 programs for
   heterogeneous network nodes.

Status of This Memo

   This Internet-Draft is submitted in full conformance with the
   provisions of BCP 78 and BCP 79.

   Internet-Drafts are working documents of the Internet Engineering
   Task Force (IETF).  Note that other groups may also distribute
   working documents as Internet-Drafts.  The list of current Internet-
   Drafts is at https://datatracker.ietf.org/drafts/current/.

   Internet-Drafts are draft documents valid for a maximum of six months
   and may be updated, replaced, or obsoleted by other documents at any
   time.  It is inappropriate to use Internet-Drafts as reference
   material or to cite them other than as "work in progress."

   This Internet-Draft will expire on June 11, 2021.

Copyright Notice

   Copyright (c) 2020 IETF Trust and the persons identified as the
   document authors.  All rights reserved.

   This document is subject to BCP 78 and the IETF Trust's Legal
   Provisions Relating to IETF Documents
   (https://trustee.ietf.org/license-info) in effect on the date of
   publication of this document.  Please review these documents
   carefully, as they describe your rights and restrictions with respect
   to this document.  Code Components extracted from this document must

Singh                     Expires June 11, 2021                 [Page 1]
Internet-Draft                  P4 Split                   December 2020

   include Simplified BSD License text as described in Section 4.e of
   the Trust Legal Provisions and are provided without warranty as
   described in the Simplified BSD License.

Table of Contents

   1.  Requirements Language . . . . . . . . . . . . . . . . . . . .   2
   2.  Introduction  . . . . . . . . . . . . . . . . . . . . . . . .   2
   3.  Requirements  . . . . . . . . . . . . . . . . . . . . . . . .   3
   4.  Changes to P4 Compiler to Block Split . . . . . . . . . . . .   4
   5.  Discussion  . . . . . . . . . . . . . . . . . . . . . . . . .   4
   6.  Security Considerations . . . . . . . . . . . . . . . . . . .   5
   7.  IANA Considerations . . . . . . . . . . . . . . . . . . . . .   5
   8.  Acknowledgements  . . . . . . . . . . . . . . . . . . . . . .   5
   9.  References  . . . . . . . . . . . . . . . . . . . . . . . . .   5
     9.1.  Normative References  . . . . . . . . . . . . . . . . . .   5
     9.2.  Informative References  . . . . . . . . . . . . . . . . .   6
   Author's Address  . . . . . . . . . . . . . . . . . . . . . . . .   6

1.  Requirements Language

   The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
   "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
   document are to be interpreted as described in RFC 2119 [RFC2119].

2.  Introduction

   The research paper [FLY] covers splitting a P4 program into sub-
   programs to run the sub-programs on heterogeneous network nodes.
   There are certain issues to discuss first because some P4 code cannot
   be split to run elsewhere.  There are other issues as well.  For
   brevity, this document uses the terms smartNIC and NIC
   interchangeably.

   In a data center, host machines are connected to a switch.  In an
   Enterprise network, P4 data plane replicates ARP [RFC0826] and IPv6
   ND [RFC4861] messages for layer-2 address resolution.  If a program
   split moves ARP and IPv6 code to smartNIC, the hosts should also move
   to smartNIC.  If hosts do not move, the switch resolves layer-2
   destinations and messages the NIC with ARP or IPv6 ND table update.
   But the switch is forwarding traffic at 12 Tbps and for any layer-2
   lookup, the switch has to message the NIC which slows down switch
   forwarding.  If hosts also move with ARP and IPv6 ND to the NIC,
   there are still issues.  A NIC with two 100G ports will not be able
   to support all 25G hosts on a switch with 32 ports.  So multiple NICs
   are used.  If a switch is used in bridged mode, there is a single
   link-local domain for ARP and IPv6 ND.  If the switch is used as a
   layer-3 switch, then one interface with layer-3 addresses can operate
Show full document text