idnits 2.17.1
draft-ietf-forces-lfb-lib-00.txt:
Checking boilerplate required by RFC 5378 and the IETF Trust (see
https://trustee.ietf.org/license-info):
----------------------------------------------------------------------------
** The document seems to lack a License Notice according IETF Trust
Provisions of 28 Dec 2009, Section 6.b.i or Provisions of 12 Sep 2009
Section 6.b -- however, there's a paragraph with a matching beginning.
Boilerplate error?
(You're using the IETF Trust Provisions' Section 6.b License Notice from
12 Feb 2009 rather than one of the newer Notices. See
https://trustee.ietf.org/license-info/.)
Checking nits according to https://www.ietf.org/id-info/1id-guidelines.txt:
----------------------------------------------------------------------------
No issues found here.
Checking nits according to https://www.ietf.org/id-info/checklist :
----------------------------------------------------------------------------
No issues found here.
Miscellaneous warnings:
----------------------------------------------------------------------------
== The copyright year in the IETF Trust and authors Copyright Line does not
match the current year
== Line 4645 has weird spacing: '...ariable tag m...'
== The document doesn't use any RFC 2119 keywords, yet seems to have RFC
2119 boilerplate text.
-- The document date (June 29, 2009) is 5414 days in the past. Is this
intentional?
Checking references for intended status: Informational
----------------------------------------------------------------------------
== Unused Reference: 'RFC2629' is defined on line 5136, but no explicit
reference was found in the text
== Unused Reference: 'RFC3552' is defined on line 5139, but no explicit
reference was found in the text
== Unused Reference: 'RFC5226' is defined on line 5150, but no explicit
reference was found in the text
-- Obsolete informational reference (is this intentional?): RFC 2629
(Obsoleted by RFC 7749)
-- Obsolete informational reference (is this intentional?): RFC 5226
(Obsoleted by RFC 8126)
Summary: 1 error (**), 0 flaws (~~), 6 warnings (==), 3 comments (--).
Run idnits with the --verbose option for more detailed information about
the items above.
--------------------------------------------------------------------------------
2 Internet Engineering Task Force W. Wang
3 Internet-Draft Zhejiang Gongshang University
4 Intended status: Informational E. Haleplidis
5 Expires: December 31, 2009 University of Patras
6 K. Ogawa
7 NTT Corporation
8 F. Jia
9 National Digital Switching
10 Center(NDSC)
11 J. Halpern
12 Ericsson
13 June 29, 2009
15 ForCES LFB Library
16 draft-ietf-forces-lfb-lib-00
18 Status of this Memo
20 This Internet-Draft is submitted to IETF in full conformance with the
21 provisions of BCP 78 and BCP 79.
23 Internet-Drafts are working documents of the Internet Engineering
24 Task Force (IETF), its areas, and its working groups. Note that
25 other groups may also distribute working documents as Internet-
26 Drafts.
28 Internet-Drafts are draft documents valid for a maximum of six months
29 and may be updated, replaced, or obsoleted by other documents at any
30 time. It is inappropriate to use Internet-Drafts as reference
31 material or to cite them other than as "work in progress."
33 The list of current Internet-Drafts can be accessed at
34 http://www.ietf.org/ietf/1id-abstracts.txt.
36 The list of Internet-Draft Shadow Directories can be accessed at
37 http://www.ietf.org/shadow.html.
39 This Internet-Draft will expire on December 31, 2009.
41 Copyright Notice
43 Copyright (c) 2009 IETF Trust and the persons identified as the
44 document authors. All rights reserved.
46 This document is subject to BCP 78 and the IETF Trust's Legal
47 Provisions Relating to IETF Documents in effect on the date of
48 publication of this document (http://trustee.ietf.org/license-info).
49 Please review these documents carefully, as they describe your rights
50 and restrictions with respect to this document.
52 Abstract
54 The forwarding and Control Element Separation (ForCES) protocol
55 defines a standard communication and control mechanism through which
56 a Control Element (CE) can control the behavior of a Forwarding
57 Element (FE). That control is accomplished through manipulating
58 components of Logical Function Blocks (LFBs), whose structure is
59 defined in a model RFC produced by the working group.In order to
60 build an actual solution using this protocol, there needs to be a set
61 of Logical Function Block definitions that can be instantiated by FEs
62 and controlled by CEs. This document provides a sample space of such
63 definitions. It is anticipated that additional defining documents
64 will be produced over time.
66 Table of Contents
68 1. Terminology and Conventions . . . . . . . . . . . . . . . . . 5
69 1.1. Requirements Language . . . . . . . . . . . . . . . . . . 5
70 2. Definitions . . . . . . . . . . . . . . . . . . . . . . . . . 6
71 3. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 8
72 4. Base Definitions . . . . . . . . . . . . . . . . . . . . . . 10
73 4.1. Framedefs . . . . . . . . . . . . . . . . . . . . . . . . 10
74 4.2. DataTypeDefs . . . . . . . . . . . . . . . . . . . . . . 11
75 4.3. MetaDataDefs . . . . . . . . . . . . . . . . . . . . . . 38
76 5. LFB Descriptions . . . . . . . . . . . . . . . . . . . . . . 44
77 5.1. Core LFBs . . . . . . . . . . . . . . . . . . . . . . . . 44
78 5.1.1. FEObject LFB . . . . . . . . . . . . . . . . . . . . 44
79 5.1.2. FEProtocol LFB . . . . . . . . . . . . . . . . . . . 45
80 5.2. Port LFBs . . . . . . . . . . . . . . . . . . . . . . . . 45
81 5.2.1. GenericConnectivityLFB . . . . . . . . . . . . . . . 45
82 5.2.2. EtherPort . . . . . . . . . . . . . . . . . . . . . . 45
83 5.2.3. EtherDecap . . . . . . . . . . . . . . . . . . . . . 46
84 5.2.4. EtherEncap . . . . . . . . . . . . . . . . . . . . . 46
85 5.3. Address LFBs . . . . . . . . . . . . . . . . . . . . . . 46
86 5.3.1. IPv6AddrResolution . . . . . . . . . . . . . . . . . 46
87 5.3.2. Arp . . . . . . . . . . . . . . . . . . . . . . . . . 46
88 5.3.3. ICMPGenerator . . . . . . . . . . . . . . . . . . . . 46
89 5.3.4. ICMPv6Generator . . . . . . . . . . . . . . . . . . . 46
90 5.3.5. IPv4Validator . . . . . . . . . . . . . . . . . . . . 47
91 5.3.6. IPv6Validator . . . . . . . . . . . . . . . . . . . . 47
92 5.4. Forwarding LFBs . . . . . . . . . . . . . . . . . . . . . 47
93 5.4.1. IPv4UcastLPM . . . . . . . . . . . . . . . . . . . . 47
94 5.4.2. IPv4NextHopApplicator . . . . . . . . . . . . . . . . 47
95 5.4.3. IPv6UcastLPM . . . . . . . . . . . . . . . . . . . . 47
96 5.4.4. IPv6UcastNexthopApplicator . . . . . . . . . . . . . 47
97 5.5. Queue and scheduler LFBs . . . . . . . . . . . . . . . . 48
98 5.5.1. Scheduler . . . . . . . . . . . . . . . . . . . . . . 48
99 5.5.2. Queue . . . . . . . . . . . . . . . . . . . . . . . . 49
100 5.5.3. WRRSched . . . . . . . . . . . . . . . . . . . . . . 49
101 5.6. Miscellanious LFBs . . . . . . . . . . . . . . . . . . . 49
102 5.6.1. ExtendHeaderProc . . . . . . . . . . . . . . . . . . 49
103 5.6.2. MetadataClassifier . . . . . . . . . . . . . . . . . 49
104 5.6.3. OptionProc . . . . . . . . . . . . . . . . . . . . . 49
105 5.6.4. RedirectLFB . . . . . . . . . . . . . . . . . . . . . 50
106 5.6.5. PacketTrimmer . . . . . . . . . . . . . . . . . . . . 50
107 5.6.6. Duplicator . . . . . . . . . . . . . . . . . . . . . 50
108 5.6.7. ArbitraryClassifierLFB . . . . . . . . . . . . . . . 50
109 6. LFB Library Definition . . . . . . . . . . . . . . . . . . . 51
110 7. LFB Use Case . . . . . . . . . . . . . . . . . . . . . . . . 112
111 8. Contributors . . . . . . . . . . . . . . . . . . . . . . . . 113
112 9. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 114
113 10. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 115
114 11. Security Considerations . . . . . . . . . . . . . . . . . . . 116
115 12. References . . . . . . . . . . . . . . . . . . . . . . . . . 117
116 12.1. Normative References . . . . . . . . . . . . . . . . . . 117
117 12.2. Informative References . . . . . . . . . . . . . . . . . 117
118 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 118
120 1. Terminology and Conventions
122 1.1. Requirements Language
124 The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
125 "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
126 document are to be interpreted as described in [RFC2119].
128 2. Definitions
130 This document follows the terminology defined by the ForCES
131 Requirements in [RFC3654]and by the ForCES framework in [RFC3746].
132 The definitions below are repeated below for clarity.
134 Control Element (CE) - A logical entity that implements the ForCES
135 protocol and uses it to instruct one or more FEs on how to process
136 packets. CEs handle functionality such as the execution of
137 control and signaling protocols.
139 Forwarding Element (FE) - A logical entity that implements the
140 ForCES protocol. FEs use the underlying hardware to provide per-
141 packet processing and handling as directed/controlled by one or
142 more CEs via the ForCES protocol.
144 ForCES Network Element (NE) - An entity composed of one or more
145 CEs and one or more FEs. To entities outside an NE, the NE
146 represents a single point of management. Similarly, an NE usually
147 hides its internal organization from external entities.
149 LFB (Logical Function Block) - The basic building block that is
150 operated on by the ForCES protocol. The LFB is a well defined,
151 logically separable functional block that resides in an FE and is
152 controlled by the CE via ForCES protocol. The LFB may reside at
153 the FE's datapath and process packets or may be purely an FE
154 control or configuration entity that is operated on by the CE.
155 Note that the LFB is a functionally accurate abstraction of the
156 FE's processing capabilities, but not a hardware-accurate
157 representation of the FE implementation.
159 FE Topology - A representation of how the multiple FEs within a
160 single NE are interconnected. Sometimes this is called inter-FE
161 topology, to be distinguished from intra-FE topology (i.e., LFB
162 topology).
164 LFB Class and LFB Instance - LFBs are categorized by LFB Classes.
165 An LFB Instance represents an LFB Class (or Type) existence.
166 There may be multiple instances of the same LFB Class (or Type) in
167 an FE. An LFB Class is represented by an LFB Class ID, and an LFB
168 Instance is represented by an LFB Instance ID. As a result, an
169 LFB Class ID associated with an LFB Instance ID uniquely specifies
170 an LFB existence.
172 LFB Metadata - Metadata is used to communicate per-packet state
173 from one LFB to another, but is not sent across the network. The
174 FE model defines how such metadata is identified, produced and
175 consumed by the LFBs. It defines the functionality but not how
176 metadata is encoded within an implementation.
178 LFB Component - Operational parameters of the LFBs that must be
179 visible to the CEs are conceptualized in the FE model as the LFB
180 components. The LFB components include, for example, flags,
181 single parameter arguments, complex arguments, and tables that the
182 CE can read and/or write via the ForCES protocol (see below).
184 LFB Topology - Representation of how the LFB instances are
185 logically interconnected and placed along the datapath within one
186 FE. Sometimes it is also called intra-FE topology, to be
187 distinguished from inter-FE topology.
189 ForCES Protocol - While there may be multiple protocols used
190 within the overall ForCES architecture, the term "ForCES protocol"
191 and "protocol" refer to the Fp reference points in the ForCES
192 Framework in [RFC3746]. This protocol does not apply to CE-to-CE
193 communication, FE-to-FE communication, or to communication between
194 FE and CE managers. Basically, the ForCES protocol works in a
195 master- slave mode in which FEs are slaves and CEs are masters.
196 This document defines the specifications for this ForCES protocol.
198 3. Introduction
200 XXX: Editorial Note: This is an initial rough copy of the document
201 which will undergo heavy review and modification. It was published
202 to beat the meeting deadline.
204 Forwarding and Control Element Separation (ForCES) defines an
205 architectural framework and associated protocols to standardize
206 information exchange between the control plane and the forwarding
207 plane in a ForCES Network Element (ForCES NE). [RFC3654]has defined
208 the ForCES requirements, and [RFC3746] has defined the ForCES
209 framework.
211 The ForCES protocol Protocol FE-protocol [I-D.ietf-forces-protocol]
212 defines a protocol by which Control Elements (CEs) communicated with
213 and control the behavior of Forwarding Elements (FEs). That control
214 is expressed in terms of manipulations of components of Logical
215 Function Blocks (LFBs). The structure and abstract semantics of LFBs
216 is defined in Model FE-MODEL [I-D.ietf-forces-model]. That document
217 also defines a single LFB Class for gaining access to FE properties
218 including the set of LFBs and their interconnection. The Protocol
219 document defines an LFB class for manipulating the protocol
220 properties of the FE.
222 In order for the protocol to be useful to control any behavior, there
223 must be a set of LFB class definitions for the LFBs which provide
224 that behavior. This document provides a set of such definitions.
225 This document is intended to provide an initial LFB library. It is
226 expected that other definitions will be developed over time, and
227 documented in other RFCs.
229 An LFB performs a well-defined action or computation on the packets
230 passing through it. Upon completion of its prescribed function,
231 either the packets are modified in certain ways (e.g., decapsulator,
232 marker), or some results are generated and stored, often in the form
233 of metadata (e.g., classifier). Each LFB typically performs a single
234 action. Classifiers, shapers and meters are all examples of such
235 LFBs.
237 In general, multiple LFBs are contained in one FE. An LFB, may have
238 inputs, outputs and components that can be queried and manipulated by
239 the CE via the ForCES Protocol. An LFB can have one or more inputs.
240 Each input takes a pair of a packet and its associated metadata. The
241 LFB processes the input, and produces one or more outputs, each of
242 which is a pair of a packet and its associated metadata.
244 For further information regarding the LFB model, the reader is
245 referenced to FE-MODEL [I-D.ietf-forces-model].
247 XXX: The above text is redundant. The definition gives some intro to
248 LFBs and the model and all the other docs before this tell us what an
249 LFB is
251 In this document we first define base structures used in building the
252 LFBs in section 4 then use those base definitions to define various
253 LFBs.
255 To simplify the understanding of these LFBs - we have chosen to group
256 them by functionality. The following groups of LFBs will be
257 described in section 5:
259 1. Core LFBs.
261 2. Port LFBs.
263 3. Address LFBs.
265 4. Forwarding LFBs.
267 5. Queue manager and scheduler LFBs.
269 6. Miscellanious LFBs.
271 4. Base Definitions
273 This section povides a base set of LFB frame, data type, and meta
274 data definitions for use by all any LFB Class definitions (in this or
275 other documents. This section provides no actual LFB Class
276 definitions.
278 These are then used in each subsequent definition by the statement:
280
282 4.1. Framedefs
284 The following Frames are defined:
286 1. EthernetII - An Ethernet II frame type.
288 2. Ethernet802.3 - An Ethernet 802.3 frame type.
290 3. Ethernet802.2 - An Ethernet 802.2 frame type.
292 4. Ethernet802.2SNAP - An Ethernet 802.2 with SNAP frame.
294 5. IPv4Frame - An IPv4 packet.
296 6. IPv6Frame - An IPv6 packet.
298 7. TaggedFrame - A frame of any type with associated metadata.
300 8. MetadataFrame - Frame only contains meta data.
302 9. Arbitrary - Any kind of frame except Metadata Frame.
304
305
306 EthernetII
307 An Ethernet II frame type
308
309
310 Ethernet802.3
311 An Ethernet 802.3 frame type
312
313
314 Ethernet802.2
315 An Ethernet 802.2 frame type
316
317
318 Ethernet802.2SNAP
319 An Ethernet 802.2 with SNAP frame
320
321
322 IPv4Frame
323 An IPv4 packet
324
325
326 IPv6Frame
327 An IPv6 packet
328
329
330 taggedFrame
331 A frame of any type with associated metadata.
332
333
334 MetadataFrame
335 Frame only contains meta data
336
337
338 Arbitrary
339 Any kind of frame except Metadata Frame.
340
341
343 4.2. DataTypeDefs
345 The following Data Types are defined:
347 1. ifIndex - A Port Identifier.
349 2. IEEEMAC - IEEE MAC Address.
351 3. NetSpeedType - Network speed values.
353 4. IEEENegotiationType - IEEENegotiation types.
355 5. PortStatsType - Port statistics.
357 6. PortStatusValues - The possible values of status Used for both
358 administrative and operation status.
360 7. LocalIpAddrType - Local IP address belonging to FE.
362 8. LocalIpv6AddrType - The device local IPv6 address infomation.
364 9. IPv4Addr - IPv4 address.
366 10. IPv6Addr - IPv6 address.
368 11. IPv4Prefix - IPv4 prefix defined by an address and a prefix
369 length.
371 12. IPv4NextHopInfoType - IPv4 nexthop information,include nexthop
372 ip address,output FE and interface etc.
374 13. IPv4FibEntryType - IPv4 forwarding table entry.
376 14. IPv4PrefixTableEntry - IPv4 prefix table entry.
378 15. IPv4UcastLPMStatisticsType - Statistics of IPv4UcastLPM LFB.
380 16. IPv4ValidatorStatisticsType - IPv4 validator LFB statistics
381 type.
383 17. IPv6Prefix - IPv6 prefix defined by an address and a prefix
384 length.
386 18. IPv6NextHopInfoType - IPv6 next hop information, include next
387 hop ip address,output FE and interfac eetc.
389 19. IPv6PrefixTableEntry - IPv6 prefix table entry.
391 20. IPv6LPMClassiferStatisticsType - Statistics of IPv6 LPM
392 ClassifierLFB.
394 21. IPv6ValidatorStatisticsType - IPv6 validator LFB statistics
395 type.
397 22. NextHopFlagsType - Flags used to define different next hop
398 behaviors.
400 23. WeightTableEntryType - Weight table for queues.
402 24. NbrState - IPv6 neighbour entry resolution state.
404 25. ArpTableEntryType - Arp Entry.
406 26. NbrTableEntryType - IPv6 neighbour table entry.
408 27. DCHostTableEntryTypev4 - Direct connected arp table entry for
409 IPv4.
411 28. DCHostTableEntryTypev6 - Direct connected arp table entry for
412 IPv6.
414 29. IPPacketType - The packet type code.
416 30. IPDispatchTableType - The dispatch table type.
418 31. MetaType - Metadata type definition.
420 32. MetadataClassTableType - The meta data classifying table.
422 33. LinkEncapType - Encapsulation type.
424 34. IPAddress - IP layer address.
426 35. ArpStateType - The arp entry state.
428 36. MatchTargetType - Indicator for the kind of field to be matched
429 by this entry in a classifier.
431 37. MatchTargetIdentifier - Identify the specific target of a match
432 condition.
434 38. MatchBitString - A bit string for use in a match condition.
436 39. MatchCondition - Structure for a single condition to be applied.
438 40. MatchConditiontType - Indicator for the kind of match condition
439 to be applied.
441 41. MatchMetaDataAction - An action to set a metadata item to either
442 a specific value or a field from the incoming meta data or
443 packet.
445 42. NextHopIndex - An index used by the next hop table Typically
446 stored in and generated as metadata by the longest-prefix-match
447 LFB.
449
450
451 ifIndex
452 A Port Identifier
453 uint32
454
455
456 IEEEMAC
457 IEEE MAC Address
458 byte[6]
459
460
461 NetSpeedType
462 Network speed values
463
464 uint32
465
466
467 LAN_SPEED_10M
468 10M Ethernet
469
470
471 LAN_SPEED_100M
472 100M Ethernet
473
474
475 LAN_SPEED_1G
476 1000M Ethernet
477
478
479 LAN_SPEED_10G
480 10G Ethernet
481
482
483 LAN_SPEED_AUTO
484 LAN speed auto
485
486
487
494
495
496
497 IEEENegotiationType
498 IEEENegotiation types
499
500 uint32
501
502
503 Auto
504 Auto negotitation.
505
506
507 Half-duplex
508 port negotitation half duplex
509
510
511 Full-duplex
512 port negotitation full duplex
513
514
515
516
517
518
519 PortStatsType
520 Port statistics
521
522
523 InUcastPkts
524 Number of unicast packets received
525 uint64
526
527
528 InMulticastPkts
529 Number of multicast packets received
530 uint64
531
532
533 InBroadcastPkts
534 Number of broadcast packets received
535 uint64
536
537
538 InOctets
539 number of octets received
540 uint64
541
542
543 OutUcastPkts
544 Number of unicast packets transmitted
545 uint64
546
547
548 OutMulticastPkts
549 Number of multicast packets transmitted
550 uint64
551
552
553 OutBroadcastPkts
554 Number of broadcast packets transmitted
555 uint64
556
557
558 OutOcetes
559 Number of octets transmitted
560 uint64
561
562
563 InErrorPkts
564 Number of input error packets
565 uint64
566
567
568 OutErrorPkts
569 Number of output error packets
570 uint64
571
572
573
574
575
576 PortStatusValues
577
578 The possible values of status. Used for both
579 administrative and operation status
580
581 uchar
582
583
584 Disabled
585 the port is operatively disabled.
586
587
588 UP
589 the port is up.
590
591
592 Down
593 The port is down.
594
595
596
597
598
599
600 LocalIpAddrType
601 Local IP address belonging to FE.
602
603
604 FEID
605 The FE on which the port ip resides
606 uint32
607
608
609
610 IfIndex
611 port index on the specified FE
612 uint32
613
615
616
617 IPaddr
618 IP address of the port
619 IPAddr
620
621
622 netmask
623 netmask of this ip address
624 IPAddr
625
626
627 BcastAddr
628 The associated Broadcast address of the
629 ip address
630 IPAddr
631
632
633
634
635 LocalIpv6AddrType
636 The device local IPv6 address infomation
637
638
639 FEID
640 The FE on which the port ip resides
641 uint32
642
643
644
645 IfIndex
646 port index on the specified FE
647 uint32
648
650
651
652 IPv6addr
653 IP address of the port
654 IPv6Addr
655
656
657 prefixlen
658 prefix length of this ip address
659 uint32
660
661
662
663
664 IPv4Addr
665 IPv4 address
666 byte[4]
667
668
669 IPv6Addr
670 IPv6 address
671 byte[16]
672
673
674 IPv4Prefix
675 IPv4 prefix defined by an address and a prefix length
676
677
678
679 address
680 Address part
681 IPv4addr
682
683
684 prefixlen
685 Prefix length part
686
687 uchar
688
689
690
691
692
693
694
695
696 IPv4NextHopInfoType
697
698 IPv4 nexthop information,include nexthop ip address,
699 output FE and interface etc.
700
701
702 NexthopID
703 nexthop id
704 uint32
705
706
707 FEID
708 output FE id
709 uint32
710
711
712 Egress
713 output port index
714 uint32
715
716
717 MTU
718 The maximum transmition unit of the nexthop link.
719
720 uint32
721
722
723 Flags
724 Associated flags of the nexthop,such as local
725 delivery,multicast etc.
726 NextHopFlagsType
727
728
729 NexthopIPaddr
730 IP address of the nexthop
731 IPv4Addr
732
733
734 L2Index
735 index into the L2 link layer table,such as IPv4 ARP
736 table or IPv6 NBR table.
738 uint32
739
740
741 EncapNeeded
742 The type of encapsulation needed on the packet.
743
744 LinkEncapType
745
746
747
748
749 IPv4FibEntryType
750
751 IPv4 forwarding table entry.
752
753
754 prefix
755 IPv4 prefix.
756 IPv4Prefix
757
758
759 FEID
760 output FE id
761 uint32
762
763
764 Egress
765 output port index
766 uint32
767
768
769 MTU
770 The maximum transmition unit of the nexthop link.
771
772 uint32
773
774
775 Flags
776 Associated flags of the nexthop,such as local
777 delivery,multicast etc.
778 NextHopFlagsType
779
780
781 NexthopIPaddr
782 IP address of the nexthop
783 IPv4Addr
784
785
786 L2Index
787 index into the L2 link layer table,such as IPv4 ARP
788 table or IPv6 NBR table.
789 uint32
790
791
792 EncapNeeded
793 Type of encapsulation needed on the packet
794 LinkEncapType
795
796
797
798
799 IPv4PrefixTableEntry
800
801 IPv4 prefix table entry
802
803
804 Prefix
805 IPv4 address prefix
806 IPv4Prefix
807
808
809 NexthopID
810 Index into the nexthop table.
811 uint32
812
813
814
815
816 IPv4UcastLPMStatisticsType
817
818 statistics of IPv4UcastLPM LFB
819
820
821 InRcvdPkts
822 The total number of input packets received from
823 interfaces, including those received in error
824 uint64
825
826
827 FwdPkts
828 IPv4 packet forwarded by this LFB
829 uint64
830
831
832 NoRoutePkts
833 The number of IP datagrams discarded because no route
835 could be found to transmit them to their destination.
836 uint64
837
838
839 InDeliverPkts
840 The total number of input datagrams successfully
841 delivered to IP user-protocols (including ICMP).
842 uint64
843
844
845
846
847 IPv4ValidatorStatisticsType
848
849 IPv4 validator LFB statistics type
850
851
852 badHeaderPkts
853 The total number of input datagrams with bad ip
854 header
855 uint64
856
857
858 badTotalLengthPkts
859 The total number of input datagrams with bad length
860
861 uint64
862
863
864 badTTLPkts
865 The total number of input datagrams with bad TTL
866
867 uint64
868
869
870 badChecksum
871 The total number of input datagrams with bad checksum
872
873 uint64
874
875
876
877
878 IPv6Prefix
879 IPv6 prefix
880
881
882 IPv6addr
883 address part of the prefix
884 IPv6Addr
885
886
887 prefixlen
888 length of the prefix
889 uint32
890
891
892
893
894 IPv6NextHopInfoType
895
896 IPv6 nexthop information,including nexthop ip address,
897 output FE and interface etc.
898
899
900 NexthopID
901 nexthop id
902 uint32
903
904
905 FEID
906 output FE id
907 uint32
908
909
910 Egress
911 output port index
912 uint32
913
914
915 MTU
916 The maximum transmition unit of the nexthop link.
917
918 uint32
919
920
921 Flags
922 Associated flags of the nexthop,such as local
923 delivery,multicast etc.
924 NextHopFlagsType
925
926
927 NexthopIPv6addr
928 IP address of the nexthop
929 IPv6Addr
930
931
932 L2Index
933 index into the L2 table
934 uint32
935
936
937 EncapNeeded
938 Type of encapsulation needed on the packet
939 LinkEncapType
940
941
942
943
944 IPv6PrefixTableEntry
945
946 IPv6 prefix table entry
947
948
949 Prefix
950 IPv6 address prefix
951 IPv6Prefix
952
953
954 NexthopID
955 index to the nexthop table.
956 uint32
957
958
959
960
961 IPv6LPMClassiferStatisticsType
962
963 statistics of IPv6LPMClassifier LFB
964
965
966 InRcvdPkts
967 The total number of input packets received from
968 interfaces, including those received in error
969 uint64
970
971
972 FwdPkts
973 IPv4 packet forwarded by this LFB
974 uint64
975
976
977 NoRoutePkts
978 The number of IP datagrams discarded because no route
980 could be found to transmit them to their destination.
981 uint64
982
983
984 InDeliverPkts
985 The total number of input datagrams successfully
986 delivered to IP user-protocols (including ICMP).
987 uint64
988
989
990
991
992 IPv6ValidatorStatisticsType
993
994 IPv6 validator LFB statistics type
995
996
997 badHeaderPkts
998 The total number of input datagrams with bad ip
999 header
1000 uint64
1001
1002
1003 badTotalLengthPkts
1004 The total number of input datagrams with bad length
1005
1006 uint64
1007
1008
1009 badTTLPkts
1010 The total number of input datagrams with bad TTL
1011
1012 uint64
1013
1014
1015 badChecksum
1016 The total number of input datagrams with bad checksum
1017
1018 uint64
1019
1020
1021
1022
1023 NextHopFlagsType
1024
1025 Flags to define different nexthop behaviors
1026
1027 uint32
1028
1029
1030 local
1031 Packets match the nexthop entry with this flag are
1032 delivered to the higher level protocols.
1033
1034
1035 drop
1036 Packets match the nexthop entry with this flag are
1037 to be dropped.
1038
1039
1040 broadcast
1041 The route associated with this nexthop is a
1042 broadcast.
1043
1044
1045 multicast
1046 The route associated with this nexthop is multicast
1047
1048
1049
1050
1051
1052
1053 WeightTableEntryType
1054
1055 Weight table for queues.
1056
1057
1058 QueueID
1059 queue id
1060 uint32
1061
1062
1063 weight
1064 weight of the queue.
1065 uint32
1066
1067
1068
1069
1070 NbrState
1071
1072 IPv6 neighbour entry resolution state.
1073
1074 uchar
1075
1076
1077 INCOMPLETE
1078 Address resolution is being performed on the entry.
1079 Specifically, a Neighbor Solicitation has been sent to
1080 the solicited-node multicast address of the target,
1081 but the corresponding Neighbor Advertisement has not
1082 yet been received.
1083
1084
1085 REACHABLE
1086 Positive confirmation was received within the last
1087 ReachableTime milliseconds that the forward path to the
1088 neighbor was functioning properly. While REACHABLE, no
1089 special action takes place as packets are sent.
1090
1091
1092 STALE
1093 More than ReachableTime milliseconds have elapsed
1094 since the last positive confirmation was received that
1095 the forward path was functioning properly. While
1096 stale, no action takes place until a packet is sent.
1097 The STALE state is entered upon receiving an
1098 unsolicited Neighbor Discovery message that updates
1099 the cached link-layer address. Receipt of such a
1100 message does not confirm reachability, and entering
1101 the STALE state insures reachability is verified
1102 quickly if the entry is actually being used. However,
1103 reachability is not actually verified until the entry
1104 is actually used.
1105
1106
1107 DELAY
1108 More than ReachableTime milliseconds have elapsed
1109 since the last positive confirmation was received that
1110 the forward path was functioning properly, and a
1111 packet was sent within the last DELAY_FIRST_PROBE_TIME
1112 seconds. If no reachability confirmation is received
1113 within DELAY_FIRST_PROBE_TIME seconds of entering the
1114 DELAY state, send a Neighbor Solicitation and change
1115 the state to PROBE.
1116
1117
1118 PROBE
1119 A reachability confirmation is actively sought by
1120 retransmitting Neighbor Solicitations every
1121 RetransTimer milliseconds until a reachability
1122 confirmation is received.
1123
1125
1126
1127
1128
1129 ArpTableEntryType
1130
1131 Arp entry.
1132
1133
1134 Index
1135 Index of the arp table.
1136 uint32
1137
1138
1139 NeighborIP
1140 IP address of the neighbour.
1141 IPv4Addr
1142
1143
1144 SrcMac
1145 Source MAC.
1146 IEEEMAC
1147
1148
1149 NeighborMac
1150 Mac of the Neighbor.
1151 IEEEMAC
1152
1153
1154 State
1155 State of the address resolution progress.
1156 ArpStateType
1157
1158
1159
1160
1161 NbrTableEntryType
1162
1163 IPv6 neighbour table entry.
1164
1165
1166 Index
1167 Index of the arp table.
1168 uint32
1169
1170
1171 NeighborIPv6
1172 IP address of the neighbour.
1173 IPv6Addr
1174
1175
1176 SrcMac
1177 Source MAC.
1178 IEEEMAC
1179
1180
1181 NeighborMac
1182 Mac of the Neighbor.
1183 IEEEMAC
1184
1185
1186 State
1187 State of the entry's resolution progress.
1188 NbrState
1189
1190
1191
1192
1193 DCHostTableEntryTypev4
1194
1195 Direct connected arp table entry for IPv4.
1196
1197
1198 NeighbourIP
1199 IP address of the neighbour.
1200 IPv4Addr
1201
1202
1203 SrcMac
1204 Source MAC.
1205 IEEEMAC
1206
1207
1208 NeighborMac
1209 Mac of the Neighbor.
1210 IEEEMAC
1211
1212
1213
1214
1215 DCHostTableEntryTypev6
1216
1217 Direct connected arp table entry for IPv6.
1218
1219
1220 NeighbourIPv6
1221 IP address of the neighbour.
1222 IPv6Addr
1223
1224
1225 SrcMac
1226 Source MAC.
1227 IEEEMAC
1228
1229
1230 NeighborMac
1231 Mac of the Neighbor.
1232 IEEEMAC
1233
1234
1235
1236
1237 IPPacketType
1238
1239 The packet type code.
1240
1241 uchar
1242
1243
1244 IPv4Ucast
1245 IPv4 unicast packet.
1246
1247
1248 IPv4Mcast
1249 IPv4 multicast packet.
1250
1251
1252 IPv6Ucast
1253 IPv6 unicast packet.
1254
1255
1256 IPv6Mcast
1257 IPv6 multicast packet.
1258
1259
1260
1261
1262
1263 IPDispatchTableType
1264
1265 The dispatch table type.
1266
1267
1268 IPPacketType
1269 The type of the packet.IPv4Uncast,IPv6Ucast,
1270 IPv4Mulcast,IPv6Mulcast etc.
1271 IPPacketType
1272
1273
1274 index
1275 The index of the output group to output the packets
1276
1277 uint32
1278
1279
1280
1281
1282 MetaType
1283 Metadata type definition.
1284
1285
1286 MetadataID
1287 The ID of the metadata,the value is standardalized in
1288 the corresponding LFB definition RFCs.
1289 uint32
1290
1291
1292 MetadataName
1293 The name of the metadata.
1294 String
1295
1296
1297
1298
1299 MetadataClassTableType
1300
1301 The meta data classifying table.
1302
1303
1304 value
1305 Value of the meta data.
1306 uint32
1307
1308
1309 index
1310 The index of the port in the output group to use for
1311 outputing the packets.
1312 uint32
1313
1314
1315
1316
1317 LinkEncapType
1318
1319 Encapsulation type.
1320
1321 uchar
1322
1323
1324 Link
1325 Link layer encapsulation such as Ethernet and PPP.
1326
1327
1328
1329 InterFE
1330 Inter FE communication encapsulation.
1331
1332
1333 Tunnel
1334 Tunnel encapsulation such as IP-in-IP.
1335
1336
1337
1338
1339
1340 IPAddress
1341
1342 IP layer address.
1343
1344
1345 Ipv4
1346 IPv4 address.
1347 IPv4Addr
1348
1349
1350 Ipv6
1351 IPv6 address.
1352 IPv6Addr
1353
1354
1355
1356
1357 ArpStateType
1358
1359 The arp entry state.
1360
1361 uchar
1362
1363
1364 Manual
1365 The entry is manually set.
1366
1367
1368 InSolicit
1369 The peer's level 2 address is still in requesting.
1370
1371
1372
1373 Valid
1374 The address resolution have been completed
1375 successfully.Now it can be used in the data packets forwarding
1376
1377
1378
1379
1380
1381
1382 MatchTargetType
1383
1384
1385 Indicator for the kind of field to be matched by this
1386 entry in a classifier.
1387
1388 uchar
1389
1390
1391 MatchNone
1392 A matcher against no field
1393
1394
1395 MatchMetaData
1396 A matcher against a metadata item
1397
1398
1399 MatchPacketField
1400 A matcher that works against an identified packet
1401 field.
1402
1403
1404 MatchOffsetLength
1405
1406 The match target is a specified portion of the packet.
1407
1408
1409
1410
1411
1412
1413 MatchTargetIdentifier
1414
1415
1416 Identify the specific target of a match condition.
1417
1418
1419
1420 MetaDataID
1421 The ID of a metadata item
1422 uint32
1423
1424
1425 packetFieldID
1426
1427 The identifier for a packet Field, such as SA, DA,
1428 Protocol, SPort, DPort, etc. These identifiers allow
1429 references to fields with varialbe amounts before them.
1430
1431 uint32
1432
1433
1434 OffSetLengthPacketField
1435
1436 A field in the packet identified by its offset and
1437 length in bits. This does not allow for matching fields
1438 whose position depends upon earlier field sizes.
1439
1440
1441
1442 fieldOffset
1443 The offset in bits from the start of the packet
1444 to the start of the field.
1445 uint32
1446
1447
1448 fieldLength
1449 The length of the field, in bits
1450 uint32
1451
1452
1453
1454
1455
1456
1457 MatchBitString
1458
1459 A bit string for use in a match condition.
1460
1461
1462 MatchBits
1463 The bits to match
1464 octetstring[16]
1465
1466
1467 MatchLength
1468 The number of bits to match
1469 uchar
1470
1471
1472
1473
1474
1475 MatchCondition
1476 Structure for a single condition to be applied
1477
1478
1479 TargetType
1480 The category of target to match
1481 MatchTargetType
1482
1483
1484 TargetID
1485 The specific target to compare
1486 MatchTargetIdentifier
1487
1488
1489 MatchType
1490 The kind of match to apply.
1491 MatchConditionType
1492
1493
1494 MatchParamOne
1495 The first parameter for the match
1496
1497 MatchBitString
1498
1499
1500 MatchParamTwo
1501 The second parameter for the match
1502
1503 MatchBitString
1504
1505
1506
1507
1508 MatchConditiontType
1510
1511
1512 Indicator for the kind of match condition to be applied.
1513
1514
1515 uchar
1516
1517
1518 MatchNone
1519 A matcher which always fails
1520
1521
1522 MatchExact
1523
1524 The target and the match value must be the same, with no
1525 padding. Only the first value of the match condition is
1526 used. The first match value must be occur.
1527
1528
1529
1530 MatchLeft
1531
1532 The target must begin with the first match value.
1533 If there is a second match value, the remainder of the
1534 target must match repeated occurrances of the second
1535 value. Thus, this can be used to allow any terminal
1536 content, or specific ending pad. The first match value
1537 must occur.
1538
1539
1540 MatchRight
1541
1542 The target must end with the first match value.
1543 If there is a second match value, the preceding part
1544 of the target must match repeated occurrances of the
1545 second value. Thus, this can be used to allow any
1546 leading content, or specific leading fill. The first
1547 match value must occur.
1548
1549
1550 MatchRange
1551
1552 The match values will be considered as numbers, and
1553 the target must be greater than or equal to the
1554 first match value, and less than or equal to the
1555 second match value. An omitted match value means
1556 that end of the range is unlimitted.
1557
1558
1559 MatchMaskedValue
1560
1561 The target the the first value are each anded with the
1562 second value. The match succeeds if the results of these
1563 and operations are identical. Both values are required.
1564
1565
1566
1567 MatchSucceed
1568 A Match which always succeeds
1569
1570
1571
1572
1573
1574
1575 MatchMetaDataAction
1576
1577 An action to set a metadata item to either a specific value
1578 or a field from the incoming meta data or packet.
1579
1580
1581 MetaDataToSet
1582 The Meta Data Item to set
1583 uint32
1584
1585
1586 ExplicitValueToSet
1587 A value to set the metadata to
1588
1589 octetstring[16]
1590
1591
1592 ValueFromCondition
1593
1594 This is an index into the corresponding match conditions,
1595 and the meta data will be set to the value that was tested
1596 by that condition.
1597
1598 uint32
1599
1600
1601
1602
1603 NextHopIndex
1604
1605 An index used by the next hop table.
1607 Typically stored in and generated as metadata by
1608 the longest-prefix-match LFB.
1609 int32
1610
1611
1613 4.3. MetaDataDefs
1615 The following MetaData Types are defined:
1617 1. NextHopID - An index into a Next Hop entry in Nexthop table.
1619 2. ExceptionID - Exception Types.
1621 3. IngressPort - At which interface the packet arrive.
1623 4. EgressPort - The interface out which the packet will emmit.
1625 5. NextHopIP - Nexthop IPv4 address.
1627 6. NexthopIPv6 - Nexthop IPv6 address.
1629 7. PacketLength - The length of the packet in octets.
1631 8. IPPacketType - Type of the packet.
1633 9. QueueID - The queue ID.
1635 10. QueueOperationCmd - The type of operation on the queue,there are
1636 two types defined here: enqueue and dequeue.
1638 11. SrcFEID - Source FE ID.
1640 12. DstFEID - Destination FE ID.
1642 13. NexthopIndex - Next hop index into the link layer address
1643 resolution table.
1645 14. NHEncapMethod - How should the following LFBs do to encapsulate
1646 the packets.
1648 15. ErrorId - Error Type.
1650
1651
1652 NextHopID
1653 An index into a Next Hop entry in Nexthop table
1654 1
1655 NextHopIndex
1656
1657
1658 ExceptionID
1659
1660 Exception Types
1661 2
1662
1663 uint32
1664
1665
1666 Options
1667 Packets with options,for IPv6 Packet with
1668 next-header set to hop-by-hop header(0).
1669
1670
1671 LengthMismatch
1672 The packet length reported by link layer is less
1673 than the total length field.
1674
1675
1676 BadTTL
1677 The packet can't be forwarded as the TTL has
1678 expired.
1679
1680
1681 Multicast
1682 Packet received is a multicast packet.
1683
1684
1685 FragRequired
1686 The MTU for outgoing interface is less than the
1687 packet size.
1688
1689
1690 Redirect
1691 The outgoing port is same as the one on which the
1692 packet is received.
1693
1694
1695 LocalDelivery
1696 The packet is for a local interface.
1697
1698
1699 LimitedBroadcast
1700 The packet received as limited broadcast
1701
1703
1704
1705
1706
1707 IngressPort
1708 At which interface the packet arrive.
1709 3
1710 ifIndex
1711
1712
1713 EgressPort
1714 The interface out which the packet will emmit.
1715 4
1716 ifIndex
1717
1718
1719 NextHopIP
1720
1721 Nexthop IPv4 address
1722 5
1723 IP4Addr
1724
1725
1726 NexthopIPv6
1727
1728 Nexthop IPv6 address
1729 6
1730 IPv6Addr
1731
1732
1733 PacketLength
1734 The length of the packet in octets.
1735 7
1736 uint32
1737
1738
1739 IPPacketType
1740
1741 Type of the packet
1742 8
1743
1744 uint32
1745
1746
1747 IPv4
1748 IPv4 packet
1749
1750
1751 IPv6
1752 IPv6 packet
1753
1754
1755 TaggedFrame
1756 packet with metadata
1757
1758
1759 MetaDataFrame
1760 meta data only
1761
1762
1763
1764
1765
1766 QueueID
1767
1768 The queue ID
1769 9
1770 uint32
1771
1772
1773 QueueOperationCmd
1774
1775 The type of operation on the queue,there are two types
1776 defined here: enqueue and dequeue.
1777 10
1778
1779 uchar
1780
1781
1782 Enqueue
1783 Enqueue command.
1784
1785
1786 Dequeue
1787 Dequeue command.
1788
1789
1790
1791
1792
1793 SrcFEID
1794 Source FE ID.
1795 11
1796 uint32
1797
1798
1799 DstFEID
1800 Destination FE ID.
1801 12
1802 uint32
1803
1804
1805 NexthopIndex
1806
1807 Nexthop index into the link layer address resolution
1808 table.
1809 13
1810 uint
1811
1812
1813 NHEncapMethod
1814
1815 how should the following LFBs do to encapsulate the
1816 packets,such as link encapsulation which means the packets need to
1817 encapsulate link layer header before sending to media;inter FE
1818 communication encapsulation which means the packets need to first
1819 encapsulate inter FE communication header before transimiting to
1820 other FEs;tunnel encapsulation which means the packet need do extra
1821 tunnel encapsulation before sending out to media.
1822 14
1823 LinkEncapType
1824
1825
1826 ErrorId
1827
1828 Error Type.
1829 15
1830
1831 int32
1832
1833
1834 WrongIpVersion
1835 the IP version wrong
1836
1837
1838 WrongLength
1839
1840 the packet length is not as long as
1841 the header indicates
1842
1843
1844 otherError
1845 The errors we not defined now
1846
1848
1849
1850
1851
1852 5. LFB Descriptions
1854 As specified in section 3.1.2 the LFBs have been grouped together for
1855 better understanding. The following groups have been created
1857 1. Core LFBs, including FE Object LFB and FE Protocol LFB.
1859 2. Port LFBs. These LFBs are intended to provide media and
1860 encapsulation oriented capabilities associated with an interface.
1861 The interfaces may be between FEs inside NE or to the outside
1862 world. Allowing for the complicated features of different
1863 interface technology.
1865 3. Address LFBs. LFBs to model Addresses like IPv4, IPv6 addresses.
1867 4. Forwarding LFBs. LFBs to model the IPv4 and IPv6 forwarding
1868 function, e.g., IPv4Validor LFB, IPv4UcastLPM LFB,
1869 IPv4NextHopApplicator LFB, ARP LFB, ICMPProc LFB, OptionProc LFB,
1870 IPv6Validator LFB, IPv6UcastLPM LFB, ExtendHeaderProc LFB,
1871 IPv6NexthopApplicator LFB,IPv6AddrResolutionLFB LFB, ICMPv6Proc
1872 LFB.
1874 5. Queue manager and scheduler LFBs. LFB that model queues and
1875 schedulers. A basic queue LFB and scheduler LFB are defined.
1876 Queues and scheduler can be cascaded together to build more
1877 complicated schedulers.
1879 6. Miscellanious LFBs. LFBs that capture the functionality broadly
1880 used in FEs but are not part of any category, e.g., RedirectSink
1881 LFB, RedirectSource LFB, MetaClassifier LFB, GeneralClassifier
1882 LFB.
1884 5.1. Core LFBs
1886 Currently there are only two core LFBs defined. These two LFBs are
1887 core LFBs for ForCES. It's required that each FE must implement
1888 these two LFBs for CE to control it.
1890 1. FEObjectLFB
1892 2. FEProtocolLFB
1894 5.1.1. FEObject LFB
1896 The FEObject LFB is described in detail in the FE-MODEL
1897 [I-D.ietf-forces-model]. The reader is refered there for further
1898 detail.
1900 5.1.2. FEProtocol LFB
1902 The FEProtocol LFB is described in detail in the FE-protocol
1903 [I-D.ietf-forces-protocol]. The reader is refered there for further
1904 detail.
1906 5.2. Port LFBs
1908 The Port LFBs that are defined in this library are:
1910 1. GenericConnectivityLFB
1912 2. EtherPort
1914 3. EtherDecap
1916 4. EtherEncap
1918 5.2.1. GenericConnectivityLFB
1920 This LFB Class provides a generic basis for representing connectivity
1921 between the FE and the outside world. The LFB has one or more ports
1922 for packets that the FE processing logic is forwrding for
1923 transmission by this Connectivity LFB. It has one or more ports for
1924 packets that the Connectivity LFB has received and is handing to the
1925 FE processing logic. Multiple ports for handline packets are
1926 supported so that protocol specific encapsulation and demultiplexing
1927 can be provided by this LFB. This LFB also has ports for sending
1928 packets to lower layer Connectivity LFBs and receiving packets from
1929 such lower layer Connectivity LFBs. This enables support for the
1930 processing components of interface stacks, such as PPP over Ethernet
1931 or Ethernet over MPLS. For packets arriving from Media or lower
1932 layer connectivity, this LFB will perform appropriate media
1933 validation, then remove media specific headers, and place the
1934 relevant information in meta-data. For ethernet, the Source MAC
1935 would be in meta-data. For Frame Relay or ATM, a circuit identifier
1936 would be in meta-data. For Ethernet with VLANs, this meta-data would
1937 indicate which VLAN the packet came from. For packets to be
1938 transmitted, meta-data indicating the destination (destination MAC or
1939 outgoing circuit, etc.) is required. This LFB will also include
1940 statistical components such as the number of octets and packets sent
1941 and received, the number of various input and output errors, etc.
1943 5.2.2. EtherPort
1945 LFB for Ethernet ports
1947 5.2.3. EtherDecap
1949 An LFB class for definition of Ethernet decapsulation and Ethernet
1950 filtering functions.
1952 5.2.4. EtherEncap
1954 An LFB classifier definition for completes ethernet encapsulation
1955 fuctions.
1957 5.3. Address LFBs
1959 The Address LFBs that are defined in this library are:
1961 1. IPv6AddrResolution
1963 2. Arp
1965 3. ICMPGenerator
1967 4. ICMPv6Generator
1969 5. IPv4Validator
1971 6. IPv6Validator
1973 5.3.1. IPv6AddrResolution
1975 This LFB class provides the function of IPv6 address resolution part
1976 of neighbor discovery protocol.It provides an offload of ND protocol
1977 processing to FE.It process the following ND messages:neighbour
1978 solicitation and neighbour advertisement.
1980 5.3.2. Arp
1982 This LFB class provides the function of address resolution for IPv4
1983 nodes.
1985 5.3.3. ICMPGenerator
1987 This LFB class provide some basic ICMP function,it only generate the
1988 following ICMP messages:ICMP destination unreachable and time
1989 excceeded.
1991 5.3.4. ICMPv6Generator
1993 This LFB class provide some basic ICMPv6 function,it only generate
1994 the following ICMP messages for the packets that need some basic icmp
1995 processing:destination not reachable and time excceeded.
1997 5.3.5. IPv4Validator
1999 An LFB Class definition for validates the IPv4 packet.
2001 This LFB validates the IP version and header length fields, including
2002 verifying that the packet length is at least as long as the header
2003 indicates.
2005 5.3.6. IPv6Validator
2007 An LFB Class definition for validates the IPv6 packet.
2009 This LFB validates the IP version and header length fields, including
2010 verifying that the packet length is at least as long as the header
2011 indicates.
2013 5.4. Forwarding LFBs
2015 The Forwarding LFBs that are defined in this library are:
2017 1. IPv4UcastLPM
2019 2. IPv4NextHopApplicator
2021 3. IPv6UcastLPM
2023 4. IPv6UcastNexthopApplicator
2025 5.4.1. IPv4UcastLPM
2027 IPv4 Longest Prefix Match Lookup LFB
2029 5.4.2. IPv4NextHopApplicator
2031 An LFB definition for applicating next hop action to IPv4 packets,the
2032 actions include:TTL operation,checksum recalculation.
2034 5.4.3. IPv6UcastLPM
2036 An LFB class definition for IPv6 longest prefix lookup function.
2038 5.4.4. IPv6UcastNexthopApplicator
2040 An LFB for applicating next hop action to IPv6 packets,actions mainly
2041 inlcude TTL incrementation and checksum recalculation.
2043 5.5. Queue and scheduler LFBs
2045 To build an actual forwarder, one must include some limited for of
2046 queueing and scheduling. Queues are entities which store packets.
2047 Schedulers are entities which react to the state of queues and cause
2048 packets to be emitted from queues.
2050 The actual interaction between queues and schedulers (and their real
2051 world degree of separation) is quite complex. A very complex LFB
2052 model would be required to represent all the complexity.
2053 Additionally, there is the issue of representing the relationship
2054 between the queue and the scheduler. A simple approach has been
2055 taken in these class definitions.
2057 A queue element consists of an input port (called InData) on which it
2058 receives data packets, and output port (called OutData) on which it
2059 will send packets when permitted by its definition or the scheduler.
2060 Its relationship to scheduluers is represented by a set of output
2061 ports (the group OutCountrol) and an input port (called InControl).
2062 These ports are defined to carry packets consisting only of meta-
2063 data. In fact, these ports are an abstraction, and what one might
2064 call a legal fiction. An element of the OutControl group represents
2065 the fact that a scheduler is aware of the state of that queue
2066 element. The InControl port represents the fact that one or more
2067 schedulers connected to that port are controlling that queue. There
2068 is no meta-data defined for actual exchange on these ports, as their
2069 real world realization is highly implementation dependent. To
2070 complete this picture, a schedule has a group of input ports
2071 (Watchers) representing the connectivity to queues it is aware of,
2072 and a group of output ports (Controllers) representing control over
2073 queues. This allows for the simple case of a controller who monitors
2074 and controls a single set of queues, and more interesting cases where
2075 the control of certain queues may depend upon the state of queues
2076 whihc are not under the control of the scheduler.
2078 The Queues and schedulers LFBs that are defined in this library are:
2080 1. Scheduler
2082 2. Queue
2084 3. WRRSched
2086 5.5.1. Scheduler
2088 This defines a base LFB class for schedulers. Schedulers have an
2089 Input Port group called Watchers for representing the queues they
2090 watch, and an Output Port group called Controllers fro representing
2091 the queues they control.
2093 5.5.2. Queue
2095 Queues have a packet input, a packet output, a control input, and a
2096 group of control outputs. The control ports represent the control
2097 relationships with scheduluers.
2099 5.5.3. WRRSched
2101 Weighted round robin scheduler.
2103 5.6. Miscellanious LFBs
2105 The Miscellanious LFBs that are defined in this library are:
2107 1. ExtendHeaderProc
2109 2. MetadataClassifier
2111 3. OptionProc
2113 4. RedirectLFB
2115 5. PacketTrimmer
2117 6. Duplicator
2119 7. ArbitraryClassifierLfb
2121 5.6.1. ExtendHeaderProc
2123 This LFB class process the IPv6 packet with extended header,For the
2124 moment,the packets to this LFB are redirect to RedirectSink LFB by
2125 default.
2127 5.6.2. MetadataClassifier
2129 This LFB class provides the function of classify packets according to
2130 the meta data.Now it only works on one meta data.
2132 5.6.3. OptionProc
2134 This LFB class process the IPv4 packet with options,it can process on
2135 the following options:Router-alert option.
2137 5.6.4. RedirectLFB
2139 An LFB Class definition for exchanging data packets between the FE
2140 and the CE.
2142 This LFB represents a point of exchagne of data packets between the
2143 CE and the FE. Packets with meta-data are exchanged. It is expected
2144 that the output port of a RedirectLFB, if it is connected at all,
2145 will be connected to a meta-data redirector.
2147 5.6.5. PacketTrimmer
2149 LFB removes data from the front of a packet.
2151 5.6.6. Duplicator
2153 An LFB Class definition for packet duplicator LFB. Any packet
2154 received on an input port is logically copied and sent to all output
2155 ports.
2157 5.6.7. ArbitraryClassifierLFB
2159 This is a class definition for an Arbitrary Classifier LFB. The
2160 input is a port group, and the match conditions can include the port
2161 in their test. This allows the topology to carry some information if
2162 desired. The match conditions can select an output from the
2163 SuccessOuput output port group. If no condition matches, the packet
2164 will be sesnt to the FailOutput port.
2166 6. LFB Library Definition
2168
2169
2173
2174
2175 EthernetII
2176 an Ethernet II frame type
2177
2178
2179 Ethernet802.3
2180 An Ethernet 802.3 frame type
2181
2182
2183 Ethernet802.2
2184 An Ethernet 802.2 frame type
2185
2186
2187 Ethernet802.2SNAP
2188 An Ethernet 802.2 with SNAP frame
2189
2190
2191 IPv4Frame
2192 An IPv4 packet
2193
2194
2195 IPv6Frame
2196 An IPv6 packet
2197
2198
2199 taggedFrame
2200 A frame of any type with associated metadata
2201
2202
2203 MetadataFrame
2204 Frame only contains meta data
2205
2206
2207 Arbitrary
2208 Any kind of frame except Metadata Frame.
2209
2210
2211
2212
2213 ifIndex
2214 A Port Identifier
2215 uint32
2216
2217
2218 IEEEMAC
2219 IEEE MAC Address
2220 byte[6]
2221
2222
2223 NetSpeedType
2224 Network speed values
2225
2226 uint32
2227
2228
2229 LAN_SPEED_10M
2230 10M Ethernet
2231
2232
2233 LAN_SPEED_100M
2234 100M Ethernet
2235
2236
2237 LAN_SPEED_1G
2238 1000M Ethernet
2239
2240
2241 LAN_SPEED_10G
2242 10G Ethernet
2243
2244
2245 LAN_SPEED_AUTO
2246 LAN speed auto
2247
2248
2249
2256
2257
2258
2259 IEEENegotiationType
2260 IEEENegotiation types
2261
2262 uint32
2263
2264
2265 Auto
2266 Auto negotitation.
2267
2268
2269 Half-duplex
2270 port negotitation half duplex
2271
2272
2273 Full-duplex
2274 port negotitation full duplex
2275
2276
2277
2278
2279
2280
2281 PortStatsType
2282 Port statistics
2283
2284
2285 InUcastPkts
2286 Number of unicast packets received
2287 uint64
2288
2289
2290 InMulticastPkts
2291 Number of multicast packets received
2292 uint64
2293
2294
2295 InBroadcastPkts
2296 Number of broadcast packets received
2297 uint64
2298
2299
2300 InOctets
2301 number of octets received
2302 uint64
2303
2304
2305 OutUcastPkts
2306 Number of unicast packets transmitted
2307 uint64
2308
2309
2310 OutMulticastPkts
2311 Number of multicast packets transmitted
2312 uint64
2313
2314
2315 OutBroadcastPkts
2316 Number of broadcast packets transmitted
2317 uint64
2318
2319
2320 OutOcetes
2321 Number of octets transmitted
2322 uint64
2323
2324
2325 InErrorPkts
2326 Number of input error packets
2327 uint64
2328
2329
2330 OutErrorPkts
2331 Number of output error packets
2332 uint64
2333
2334
2335
2336
2337
2338 PortStatusValues
2339
2340 The possible values of status. Used for both
2341 administrative and operation status
2342
2343
2344 uchar
2345
2346
2347 Disabled
2348 the port is operatively disabled.
2349
2350
2351 UP
2352 the port is up.
2353
2354
2355 Down
2356 The port is down.
2358
2359
2360
2361
2362
2363
2364 LocalIpAddrType
2365 Local IP address belonging to FE.
2366
2367
2368 FEID
2369 The FE on which the port ip resides
2370 uint32
2371
2372
2373
2374 IfIndex
2375 port index on the specified FE
2376 uint32
2377
2379
2380
2381 IPaddr
2382 IP address of the port
2383 IPAddr
2384
2385
2386 netmask
2387 netmask of this ip address
2388 IPAddr
2389
2390
2391 BcastAddr
2392 The associated Broadcast address of the ip address
2393
2394 IPAddr
2395
2396
2397
2398
2399 LocalIpv6AddrType
2400 The device local IPv6 address infomation
2401
2402
2403 FEID
2404 The FE on which the port ip resides
2405 uint32
2407
2408
2409
2410 IfIndex
2411 port index on the specified FE
2412 uint32
2413
2415
2416
2417 IPv6addr
2418 IP address of the port
2419 IPv6Addr
2420
2421
2422 prefixlen
2423 prefix length of this ip address
2424 uint32
2425
2426
2427
2428
2429 IPv4Addr
2430 IPv4 address
2431 byte[4]
2432
2433
2434 IPv6Addr
2435 IPv6 address
2436 byte[16]
2437
2438
2439 IPv4Prefix
2440 IPv4 prefix defined by an address and a prefix length
2441
2442
2443
2444 address
2445 Address part
2446 IPv4addr
2447
2448
2449 prefixlen
2450 Prefix length part
2451
2452 uchar
2453
2454
2456
2457
2458
2459
2460
2461
2462 IPv4NextHopInfoType
2463
2464 IPv4 nexthop information,include nexthop ip address,
2465 output FE and interface etc.
2466
2467
2468 NexthopID
2469 nexthop id
2470 uint32
2471
2472
2473 FEID
2474 output FE id
2475 uint32
2476
2477
2478 Egress
2479 output port index
2480 uint32
2481
2482
2483 MTU
2484 The maximum transmition unit of the nexthop link.
2485
2486 uint32
2487
2488
2489 Flags
2490 Associated flags of the nexthop,such as local
2491 delivery,multicast etc.
2492 NextHopFlagsType
2493
2494
2495 NexthopIPaddr
2496 IP address of the nexthop
2497 IPv4Addr
2498
2499
2500 L2Index
2501 index into the L2 link layer table,such as IPv4 ARP
2502 table or IPv6 NBR table.
2503 uint32
2505
2506
2507 EncapNeeded
2508 The type of encapsulation needed on the packet.
2509
2510 LinkEncapType
2511
2512
2513
2514
2515 IPv4FibEntryType
2516
2517 IPv4 forwarding table entry.
2518
2519
2520 prefix
2521 IPv4 prefix.
2522 IPv4Prefix
2523
2524
2525 FEID
2526 output FE id
2527 uint32
2528
2529
2530 Egress
2531 output port index
2532 uint32
2533
2534
2535 MTU
2536 The maximum transmition unit of the nexthop link.
2537
2538 uint32
2539
2540
2541 Flags
2542 Associated flags of the nexthop,such as local
2543 delivery,multicast etc.
2544 NextHopFlagsType
2545
2546
2547 NexthopIPaddr
2548 IP address of the nexthop
2549 IPv4Addr
2550
2551
2552 L2Index
2553 index into the L2 link layer table,such as IPv4 ARP
2554 table or IPv6 NBR table.
2555 uint32
2556
2557
2558 EncapNeeded
2559 The type of encapsulation needed on the packet.
2560
2561 LinkEncapType
2562
2563
2564
2565
2566 IPv4PrefixTableEntry
2567
2568 IPv4 prefix table entry
2569
2570
2571 Prefix
2572 IPv4 address prefix
2573 IPv4Prefix
2574
2575
2576 NexthopID
2577 Index into the nexthop table.
2578 uint32
2579
2580
2581
2582
2583 IPv4UcastLPMStatisticsType
2584
2585 statistics of IPv4UcastLPM LFB
2586
2587
2588 InRcvdPkts
2589 The total number of input packets received from
2590 interfaces, including those received in error
2591 uint64
2592
2593
2594 FwdPkts
2595 IPv4 packet forwarded by this LFB
2596 uint64
2597
2598
2599 NoRoutePkts
2600 The number of IP datagrams discarded because no
2601 route could be found to transmit them to their destination.
2602
2603 uint64
2604
2605
2606 InDeliverPkts
2607 The total number of input datagrams successfully
2608 delivered to IP user-protocols (including ICMP).
2609 uint64
2610
2611
2612
2613
2614 IPv4ValidatorStatisticsType
2615
2616 IPv4 validator LFB statistics type
2617
2618
2619 badHeaderPkts
2620 The total number of input datagrams with bad ip
2621 header
2622 uint64
2623
2624
2625 badTotalLengthPkts
2626 The total number of input datagrams with bad length
2627
2628 uint64
2629
2630
2631 badTTLPkts
2632 The total number of input datagrams with bad TTL
2633
2634 uint64
2635
2636
2637 badChecksum
2638 The total number of input datagrams with bad
2639 checksum
2640 uint64
2641
2642
2643
2644
2645 IPv6Prefix
2646 IPv6 prefix
2647
2648
2649 IPv6addr
2650 address part of the prefix
2651 IPv6Addr
2652
2653
2654 prefixlen
2655 length of the prefix
2656 uint32
2657
2658
2659
2660
2661 IPv6NextHopInfoType
2662
2663 IPv6 nexthop information,include nexthop ip address,
2664 output FE and interface etc.
2665
2666
2667 NexthopID
2668 nexthop id
2669 uint32
2670
2671
2672 FEID
2673 output FE id
2674 uint32
2675
2676
2677 Egress
2678 output port index
2679 uint32
2680
2681
2682 MTU
2683 The maximum transmition unit of the nexthop link.
2684
2685 uint32
2686
2687
2688 Flags
2689 Associated flags of the nexthop,such as local
2690 delivery,multicast etc.
2691 NextHopFlagsType
2692
2693
2694 NexthopIPv6addr
2695 IP address of the nexthop
2696 IPv6Addr
2698
2699
2700 L2Index
2701 index into the L2 table
2702 uint32
2703
2704
2705 EncapNeeded
2706 The type of encapsulation needed on the packet.
2707
2708 LinkEncapType
2709
2710
2711
2712
2713 IPv6PrefixTableEntry
2714
2715 IPv6 prefix table entry
2716
2717
2718 Prefix
2719 IPv6 address prefix
2720 IPv6Prefix
2721
2722
2723 NexthopID
2724 index to the nexthop table.
2725 uint32
2726
2727
2728
2729
2730 IPv6LPMClassiferStatisticsType
2731
2732 statistics of IPv6LPMClassifier LFB
2733
2734
2735 InRcvdPkts
2736 The total number of input packets received from
2737 interfaces, including those received in error
2738 uint64
2739
2740
2741 FwdPkts
2742 IPv4 packet forwarded by this LFB
2743 uint64
2744
2745
2746 NoRoutePkts
2747 The number of IP datagrams discarded because no
2748 route could be found to transmit them to their destination.
2749
2750 uint64
2751
2752
2753 InDeliverPkts
2754 The total number of input datagrams successfully
2755 delivered to IP user-protocols (including ICMP).
2756 uint64
2757
2758
2759
2760
2761 IPv6ValidatorStatisticsType
2762
2763 IPv6 validator LFB statistics type
2764
2765
2766 badHeaderPkts
2767 The total number of input datagrams with bad ip
2768 header
2769 uint64
2770
2771
2772 badTotalLengthPkts
2773 The total number of input datagrams with bad length
2774
2775 uint64
2776
2777
2778 badTTLPkts
2779 The total number of input datagrams with bad TTL
2780
2781 uint64
2782
2783
2784 badChecksum
2785 The total number of input datagrams with bad
2786 checksum
2787 uint64
2788
2789
2790
2791
2792 NextHopFlagsType
2793
2794 Flags used to define different nexthop behaviors
2795
2796
2797 uint32
2798
2799
2800 local
2801 Packets match the nexthop entry with this flag
2802 are delivered to the higher level protocols.
2803
2804
2805 drop
2806 Packets match the nexthop entry with this flag
2807 are to be dropped.
2808
2809
2810 broadcast
2811 The route associated with this nexthop is a
2812 broadcast.
2813
2814
2815 multicast
2816 The route associated with this nexthop is
2817 multicast.
2818
2819
2820
2821
2822
2823 WeightTableEntryType
2824
2825 Weight table for queues.
2826
2827
2828 QueueID
2829 queue id
2830 uint32
2831
2832
2833 weight
2834 weight of the queue.
2835 uint32
2836
2837
2838
2839
2840 NbrState
2841
2842 IPv6 neighbour entry resolution state.
2843
2844 uchar
2845
2846
2847 INCOMPLETE
2848 Address resolution is being performed on entry.
2849 Specifically,a Neighbor Solicitation has been sent to the
2850 solicited-node multicast address of the target, but the
2851 corresponding Neighbor Advertisement has not yet been
2852 received.
2853
2854
2855 REACHABLE
2856 Positive confirmation was received within the
2857 last reachableTime milliseconds that the forward path to
2858 the neighbor was functioning properly. While reachable, no
2859 special action takes place as packets are sent.
2860
2861
2862 STALE
2863 More than ReachableTime milliseconds have elapsed
2864 since the last positive confirmation was received that the
2865 forward path was functioning properly. While STALE, no
2866 action takes place until a packet is sent. The STALE state
2867 is entered upon receiving an unsolicited Neighbor Discovery
2868 message that updates the cached link-layer address. Receipt
2869 of such a message does not confirm reachability, and
2870 entering the STALE state insures reachability is verified
2871 quickly if the entry is actually being used. However,
2872 reachability is not actually verified until the entry is
2873 actually used.
2874
2875
2876 DELAY
2877 More than ReachableTime milliseconds have elapsed
2878 since the last positive confirmation was received that the
2879 forward path was functioning properly, and a packet was
2880 sent within the last DELAY_FIRST_PROBE_TIME seconds. If no
2881 reachability confirmation is received within
2882 DELAY_FIRST_PROBE_TIME seconds of entering the DELAY state,
2883 send a Neighbor Solicitation and change the state to PROBE.
2884
2885
2886
2887 PROBE
2888 A reachability confirmation is actively sought by
2889 retransmitting Neighbor Solicitations every RetransTimer
2890 milliseconds until a reachability confirmation is received.
2891
2892
2893
2894
2895
2896
2897 ArpTableEntryType
2898
2899 Arp entry.
2900
2901
2902 Index
2903 Index of the arp table.
2904 uint32
2905
2906
2907 NeighborIP
2908 IP address of the neighbour.
2909 IPv4Addr
2910
2911
2912 SrcMac
2913 Source MAC.
2914 IEEEMAC
2915
2916
2917 NeighborMac
2918 Mac of the Neighbor.
2919 IEEEMAC
2920
2921
2922 State
2923 State of the address resolution progress
2924 ArpStateType
2925
2926
2927
2928
2929 NbrTableEntryType
2930
2931 IPv6 neighbour table entry.
2932
2933
2934 Index
2935 Index of the arp table.
2936 uint32
2937
2938
2939 NeighborIPv6
2940 IP address of the neighbour.
2941 IPv6Addr
2942
2943
2944 SrcMac
2945 Source MAC.
2946 IEEEMAC
2947
2948
2949 NeighborMac
2950 Mac of the Neighbor.
2951 IEEEMAC
2952
2953
2954 State
2955 State of the entry's resolution progress
2956 NbrState
2957
2958
2959
2960
2961 DCHostTableEntryTypev4
2962
2963 Direct connected arp table entry for IPv4.
2964
2965
2966 NeighbourIP
2967 IP address of the neighbour.
2968 IPv4Addr
2969
2970
2971 SrcMac
2972 Source MAC.
2973 IEEEMAC
2974
2975
2976 NeighborMac
2977 Mac of the Neighbor.
2978 IEEEMAC
2979
2980
2981
2982
2983 DCHostTableEntryTypev6
2984
2985 Direct connected arp table entry for IPv6.
2986
2987
2988 NeighbourIPv6
2989 IP address of the neighbour.
2990 IPv6Addr
2991
2992
2993 SrcMac
2994 Source MAC.
2995 IEEEMAC
2996
2997
2998 NeighborMac
2999 Mac of the Neighbor.
3000 IEEEMAC
3001
3002
3003
3004
3005 IPPacketType
3006
3007 The packet type code.
3008
3009 uchar
3010
3011
3012 IPv4Ucast
3013 IPv4 unicast packet.
3014
3015
3016 IPv4Mcast
3017 IPv4 multicast packet.
3018
3019
3020 IPv6Ucast
3021 IPv6 unicast packet.
3022
3023
3024 IPv6Mcast
3025 IPv6 multicast packet.
3026
3027
3028
3029
3030
3031 IPDispatchTableType
3032
3033 The dispatch table type.
3034
3035
3036 IPPacketType
3037 The type of the packet.IPv4Uncast,IPv6Ucast,
3038 IPv4Mulcast,IPv6Mulcast etc.
3039 IPPacketType
3040
3041
3042 index
3043 The index of the output group to output the packets
3044
3045 uint32
3046
3047
3048
3049
3050 MetaType
3051 Metadata type definition.
3052
3053
3054 MetadataID
3055 The ID of the metadata,the value is standardalized
3056 in the corresponding LFB definition RFCs.
3057 uint32
3058
3059
3060 MetadataName
3061 The name of the metadata.
3062 String
3063
3064
3065
3066
3067 MetadataClassTableType
3068
3069 The meta data classifying table.
3070
3071
3072 value
3073 Value of the meta data.
3074 uint32
3075
3076
3077 index
3078 The index of the port in the output group to use
3079 for outputing the packets.
3080 uint32
3081
3083
3084
3085
3086 LinkEncapType
3087
3088 Encapsulation type.
3089
3090 uchar
3091
3092
3093 Link
3094 Link layer encapsulation such as Ethernet and
3095 PPP.
3096
3097
3098 InterFE
3099 Inter FE communication encapsulation.
3100
3101
3102 Tunnel
3103 Tunnel encapsulation such as IP-in-IP.
3104
3105
3106
3107
3108
3109 IPAddress
3110
3111 IP layer address.
3112
3113
3114 Ipv4
3115 IPv4 address.
3116 IPv4Addr
3117
3118
3119 Ipv6
3120 IPv6 address.
3121 IPv6Addr
3122
3123
3124
3125
3126 ArpStateType
3127
3128 The arp entry state.
3129
3130 uchar
3131
3132
3133 Manual
3134 The entry is manually set.
3135
3136
3137 InSolicit
3138 The peer's level 2 address is still in requesting
3139
3140
3141
3142 Valid
3143 The address resolution have been completed
3144 successfully,it now can be used in the data packets
3145 forwarding.
3146
3147
3148
3149
3150
3151 MatchTargetType
3152
3153
3154 Indicator for the kind of field to be matched by this
3155 entry in a classifier.
3156
3157
3158 uchar
3159
3160
3161 MatchNone
3162 A matcher against no field
3163
3164
3165 MatchMetaData
3166 A matcher against a metadata item
3167
3168
3169 MatchPacketField
3170 A matcher that works against an identified
3171 packet field.
3172
3173
3174 MatchOffsetLength
3175 The match target is a specified portion of the
3176 packet.
3177
3178
3180
3181
3182
3183 MatchTargetIdentifier
3184
3185
3186 Identify the specific target of a match condition.
3187
3188
3189
3190 MetaDataID
3191 The ID of a metadata item
3192 uint32
3193
3194
3195 packetFieldID
3196 The identifier for a packet Field, such as SA, DA,
3197 Protocol, SPort, DPort, etc. These identifiers allow
3198 references to fields with varialbe amounts before them.
3199
3200 uint32
3201
3202
3203 OffSetLengthPacketField
3204 A field in the packet identified by its offset and
3205 length in bits. This does not allow for matching fields
3206 whose position depends upon earlier field sizes.
3207
3208
3209 fieldOffset
3210 The offset in bits from the start of the packet
3211 to the start of the field.
3212 uint32
3213
3214
3215 fieldLength
3216 The length of the field, in bits
3217 uint32
3218
3219
3220
3221
3222
3223
3224 MatchBitString
3225
3226 A bit string for use in a match condition.
3227
3228
3229 MatchBits
3230 The bits to match
3231 octetstring[16]
3232
3233
3234 MatchLength
3235 The number of bits to match
3236 uchar
3237
3238
3239
3240
3241 MatchCondition
3242
3243
3244 structure for a single condition to be applied.
3245
3246
3247
3248 TargetType
3249 The category of target to match
3250 MatchTargetType
3251
3252
3253 TargetID
3254 The specific target to compare
3255 MatchTargetIdentifier
3256
3257
3258 MatchType
3259 The kind of match to apply.
3260 MatchConditionType
3261
3262
3263 MatchParamOne
3264 The first parameter for the match
3265
3266 MatchBitString
3267
3268
3269 MatchParamTwo
3270 The second parameter for the match
3271
3272 MatchBitString
3273
3274
3275
3276
3277 MatchConditiontType
3278
3279
3280 Indicator for the kind of match condition to be applied.
3281
3282
3283 uchar
3284
3285
3286 MatchNone
3287 A matcher which always fails
3288
3289
3290 MatchExact
3291 The target and the match value must be the same,
3292 with no padding.Only the first value of the match condition
3293 is used. The first match value must be occur.
3294
3295
3296 MatchLeft
3297 The target must begin with the first match value.
3298 If there is a second match value, the remainder of the
3299 target must match repeated occurrances of the second value.
3300 Thus, this can be used to allow any terminal content, or
3301 specific ending pad. The first match value must occur.
3302
3303
3304
3305 MatchRight
3306 The target must end with the first match value.
3307 If there is a second match value, the preceding part of the
3308 target must match repeated occurrances of the second value.
3309 Thus, this can be used to allow any leading content, or
3310 specific leading fill. The first match value must occur.
3311
3312
3313
3314 MatchRange
3315 The match values will be considered as numbers,
3316 and the target must be greater than or equal to the first
3317 match value, and less than or equal to the second match
3318 value. An omitted match value means that end of the range
3319 is unlimitted.
3320
3321
3322 MatchMaskedValue
3323 The target the the first value are each anded
3324 with the second value. The match succeeds if the results of
3325 these and operations are identical. Both values are
3326 required.
3327
3328
3329 MatchSucceed
3330 A Match which always succeeds
3331
3332
3333
3334
3335
3336 MatchMetaDataAction
3337
3338 An action to set a metadata item to either a specific
3339 value or a field from the incoming meta data or packet
3340
3341
3342 MetaDataToSet
3343 The Meta Data Item to set
3344 uint32
3345
3346
3347 ExplicitValueToSet
3348 A value to set the metadata to
3349
3350 octetstring[16]
3351
3352
3353 ValueFromCondition
3354 This is an index into the corresponding match
3355 conditions, and the meta data will be set to the value that
3356 was tested by that condition.
3357
3358 uint32
3359
3360
3361
3362
3363 NextHopIndex
3364 An index used by the next hop table.Typically stored in
3365 and generated as metadata by the longest-prefix-match LFB
3366
3367 int32
3368
3369
3370
3371
3372 NextHopID
3373 Index into a Next Hop entry in Nexthop table
3374 1
3375 NextHopIndex
3376
3377
3378 ExceptionID
3379
3380 Exception Types
3381 2
3382
3383 uint32
3384
3385
3386 Options
3387 Packets with options,for IPv6 Packet with
3388 next-header set to hop-by-hop header(0).
3389
3390
3391 LengthMismatch
3392 The packet length reported by link layer is less
3393 than the total length field.
3394
3395
3396 BadTTL
3397 The packet can't be forwarded as the TTL has
3398 expired.
3399
3400
3401 Multicast
3402 The packet received is a multicast packet.
3403
3404
3405
3406 FragRequired
3407 The MTU for outgoing interface is less than the
3408 packet size.
3409
3410
3411 Redirect
3412 The outgoing port is same as the one on which the
3413 packet is received.
3414
3415
3416 LocalDelivery
3417 The packet is for a local interface.
3418
3419
3420 LimitedBroadcast
3421 Packet received as limited broadcast.
3422
3423
3424
3425
3426
3427 IngressPort
3428 At which interface the packet arrive.
3429 3
3430 ifIndex
3431
3432
3433 EgressPort
3434 Interface out which the packet will emmit.
3435 4
3436 ifIndex
3437
3438
3439 NextHopIP
3440
3441 Nexthop IPv4 address
3442 5
3443 IP4Addr
3444
3445
3446 NexthopIPv6
3447
3448 Nexthop IPv6 address
3449 6
3450 IPv6Addr
3451
3452
3453 PacketLength
3454 The length of the packet in octets.
3455 7
3456 uint32
3457
3458
3459 IPPacketType
3460
3461 Type of the packet
3462 8
3463
3464 uint32
3465
3466
3467 IPv4
3468 IPv4 packet
3469
3470
3471 IPv6
3472 IPv6 packet
3473
3474
3475 TaggedFrame
3476 packet with metadata
3477
3478
3479 MetaDataFrame
3480 meta data only
3481
3482
3483
3484
3485
3486 QueueID
3487
3488 The queue ID
3489 9
3490 uint32
3491
3492
3493 QueueOperationCmd
3494
3495 The type of operation on the queue,there are two types
3496 defined here: enqueue and dequeue.
3497 10
3498
3499 uchar
3500
3501
3502 Enqueue
3503 Enqueue command.
3504
3505
3506 Dequeue
3507 Dequeue command.
3508
3509
3510
3511
3512
3513 SrcFEID
3514 Source FE ID.
3515 11
3516 uint32
3517
3518
3519 DstFEID
3520 Destination FE ID.
3521 12
3522 uint32
3523
3524
3525 NexthopIndex
3526
3527 Nexthop index into the link layer address resolution
3528 table.
3529 13
3530 uint
3531
3532
3533 NHEncapMethod
3534
3535 how should the following LFBs do to encapsulate the
3536 packets,such as link encapsulation which means the packets need
3537 to encapsulate link layer header before sending to media;inter FE
3538 communication encapsulation which means the packets need to first
3539 encapsulate inter FE communication header before transimiting to
3540 other FEs;tunnel encapsulation which means the packet need do
3541 extra tunnel encapsulation before sending out to media
3542 14
3543 LinkEncapType
3544
3545
3546 ErrorId
3547
3548 Error Type.
3549 15
3550
3551 int32
3552
3553
3554 WrongIpVersion
3555 the IP version wrong
3556
3557
3558 WrongLength
3559
3560 the packet length is not as long as
3561 the header indicates
3562
3563
3564
3565 otherError
3566 The errors we not defined now
3567
3568
3569
3570
3571
3572
3573
3574 EtherPort
3575
3576 LFB for Ethernet ports
3577 1.0
3578 GenericConnectivityLFB
3579
3580
3581 PacketsFromProcessingUnit
3582 Ports for receiving packets from processing unit
3583 such as NP,that will be sent to media.
3584
3585
3586 [EthernetII]
3587
3588
3589 [OutputPort]
3590
3591
3592
3593
3594 PacketsFromMedia
3595 Ports for receiving packets from ethernet media.
3596
3597
3598
3599 [EthernetII]
3600
3601
3602
3603
3604
3605
3606 PacketsToProcessingUnit
3607 Ports for sending packets to processing unit such
3608 as NP for further processing.
3609
3610
3611 [EthernetII]
3613
3614
3615 [InputPort]
3616
3617
3618
3619
3620 PacketsToMedia
3621 Ports for sending packets to media.
3622
3623
3624 [EthernetII]
3625
3626
3627
3628
3629
3630
3631 IfIndex
3632 A unique value for each interface. Its value ranges
3633 between 1 and the value of total number of interfaces in the
3634 system. The value for each interface must remain constant at
3635 least from one re-initialization of the entity's network
3636 management system to the next re-initialization.
3637 uint32
3638
3639
3640 IfName
3641 Name of this port
3642 string[16]
3643
3644
3645 LinkSpeed
3646 Speed of this port
3647 NetSpeedType
3648
3649
3650 MTU
3651 Maximum transmition unit
3652 uint32
3653
3654
3655 OperaStatus
3656 Operate state of this port.
3657 PortStatusValues
3658 "down"
3659
3660
3661 AdminStatus
3662 Administrator's state of this port
3663 PortStatusValues
3664 "down"
3665
3666
3667 PromiscuousMode
3668 Whether the interface is in promiscuous mode
3669
3670 booleanType
3671 "no"
3672
3673
3674 CarrierStatus
3675 whether the port is linked with an connector.
3676
3677 booleanType
3678 "no"
3679
3680
3681 OperMode
3682 The port operation mode,must be one of the
3683 following values:Auto,Half-duplex,Full-duplex
3684 IEEENegotiationType
3685 "auto"
3686
3687
3688 SrcNegotiationTypeMACAddr
3689 source MAC
3690 IEEEMAC
3691
3692
3693 MacAliasTable
3694 A series of MACs that the port can receive frame
3695 on.
3696
3697 IEEEMAC
3698
3699
3700
3701 StatsEnable
3702 whether enable the statistics in this LFB.
3703
3704
3705 booleanType
3706 "no"
3707
3708
3709 PortStats
3710 port statistics.
3711
3712 PortStatsType
3713
3714
3715 Ipaddr
3716 IP layer Address.
3717 IPAddress
3718
3719
3720
3721
3722 PortStatusChanged
3723 Port status has changed since last time reporting.
3724
3725
3726 OperaStatus
3727
3728
3729
3730
3731 OperaStatus
3732
3733
3734
3735
3736
3737
3738 EtherDecap
3739
3740 An LFB class for definition of Ethernet decapsulation
3741 and Ethernet filtering functions
3742 1.0
3743 GenericConnectivityLFB
3744
3745
3746 PacketsIn
3747 Packets from other LFB.
3748
3749
3750 [EthernetII]
3751
3752
3753
3754
3755
3756
3757 DecapOut
3758 Ethernet decapsulation output.
3759
3760
3761 [Arbitrary]
3762
3763
3764
3765
3766
3767
3768 DispatchTable
3769 This table is used for selecting output in the
3770 ouput group for the incoming packet stream.
3771 IPDispatchTableType
3772
3773
3774
3775
3776 IPv4UcastLPM
3777 IPv4 Longest Prefix Match Lookup LFB
3778 1.0
3779
3780
3781 PktIn
3782 The port to receive IPv4 packets from other LFBs
3783
3784
3785
3786 [IPv4]
3787
3788
3789
3790
3791
3792
3793 SuccessOut
3794 Successful output when all is fine.
3795
3796
3797 [IPv4]
3798
3799
3800 [NextHopID]
3801 [FEID]
3802 [Egress]
3803 [MTU]
3804 [Flags]
3805 [NexthopIPAddr]
3806 [NHEncapMethod]
3807
3808
3809
3810
3811 ExceptionOut
3812 Exception output
3813
3814
3815 [IPv4]
3816
3817
3818 [Ingress ]
3819 [ExceptionID]
3820
3821
3822
3823
3824 FailOutput
3825 Dropper
3826
3827
3828 [ IPv4 ]
3829
3830
3831
3832
3833
3834
3835 PrefixTable
3836 IPv4 prefix table
3837
3838 IPv4PrefixTableEntry
3839
3840 IPv4PrefixTableEntry.prefix
3841
3842
3843
3844
3845
3846 Fib
3847 IPv4 unicast forwarding table.
3848
3849
3850 IPv4FibEntryType
3851
3852 IPv4FibEntryType.prefix
3853
3854
3855
3856
3857
3858 LocalIpAddrTable
3859 The table of interfaces's ip address infomation on
3860 the local device
3861 LocalIpAddrType
3862
3863
3864 IPv4Stats
3865 The IPv4 associated statistics
3866
3867 IPv4UcastLPMStatisticsType
3868
3869
3870
3871
3872 PrefixTableLimit
3873 maxium number of prefix supported by this LFB
3874
3875 uint32
3876
3877
3878 LocalIpAddrTableLimit
3879 maxium number of IP address entrys supported by
3880 this LFB
3881 uint32
3882
3883
3884 This LFB represents the IPv4 longest prefix match
3885 lookup operation.
3886
3887
3888 IPv4NextHopApplicator
3889 An LFB definition for applicating next hop action to
3890 IPv4 packets,the actions include:TTL operation,checksum
3891 recalculation.
3892 1.0
3893
3894
3895 PktIn
3896 Port used to receive IPv4 packets from other LFBs
3897
3898
3899
3900 [ IPv4 ]
3902
3903
3904 [NextHopID
3905 ]
3906 [FEID]
3907 [Egress
3908 ]
3909 [MTU]
3910 [Flags
3911 ]
3912 [
3913 NexthopIPAddr]
3914 [
3915 NHEncapMethod]
3916
3917
3918
3919
3920
3921
3922 SuccessOut
3923 Output port for packet successfully fulfill the
3924 nexthop application.
3925
3926
3927 [ IPv4 ]
3928
3929
3930 [DstFEID]
3931 [Egress]
3932 [L2Index]
3933 [NextHopIP]
3934 [NHEncapMethod]
3935
3936
3937
3938
3939 ExceptionOut
3940 Output for packets need deep dealt by higher level
3941 protocol stacks.
3942
3943
3944 [ IPv4 ]
3945
3946
3947 [Ingress]
3948 [ExceptionID]
3949
3951
3952
3953
3954 FailOutput
3955 Output for packets failed the nexthop application
3956 operation.
3957
3958
3959 [ IPv4 ]
3960
3961
3962
3963
3964
3965
3966 NextHopTable
3967 Nexthop table
3968
3969
3970 IPv4NextHopInfoType
3971
3972
3973
3974
3975
3976 NextHopTableLimit
3977 Maxium number of nexthops this LFB supports
3978
3979 uint32
3980
3981
3982
3983
3984 IPv6UcastLPM
3985 An LFB class definition for IPv6 longest prefix lookup
3986 function.
3987 1.0
3988
3989
3990 PktIn
3991 The port to receive IPv6 packets needed to do IPv4
3992 LPM.
3993
3994
3995 [IPv6]
3996
3997
3998
4000
4001
4002
4003 SuccessOut
4004 Output for packets that have find the correct
4005 route.
4006
4007
4008 [IPv6]
4009
4010
4011 [NextHopID]
4012
4013
4014
4015
4016 FailOutput
4017 LPM failed.
4018
4019
4020 [ IPv6 ]
4021
4022
4023
4024
4025
4026
4027 PrefixTable
4028 IPv6 prefix table
4029
4030 IPv6PrefixTableEntry
4031
4032 IPv6PrefixTableEntry.prefix
4033
4034
4035
4036
4037
4038 LocalIpv6AddrTable
4039 The table of interfaces's ip address infomation on
4040 the local device
4041 LocalIpv6AddrType
4042
4043
4044 IPv6Stats
4045 The IPv6 associated statistics
4046
4047 IPv6LPMClassiferStatisticsType
4049
4050
4051
4052
4053 PrefixTableLimit
4054 maxium number of prefix supported by this LFB
4055
4056 uint32
4057
4058
4059 LocalIpv6AddrTableLimit
4060 maxium number of IPv6 address entrys supported by
4061 this LFB
4062 uint32
4063
4064
4065
4066
4067 IPv6UcastNexthopApplicator
4068 An LFB for applicating next hop action to IPv6 packets,
4069 actions mainly inlcude TTL incrementation and checksum
4070 recalculation.
4071 1.0
4072
4073
4074 PktIn
4075 Input port for packets to be applicate nexthop.
4076
4077
4078
4079 [ IPv6 ]
4080
4081
4082 [NextHopID]
4083
4084
4085
4086
4087
4088
4089 SuccessOut
4090 Output port for packet successfully fulfill the
4091 nexthop application.
4092
4093
4094 [ IPv6 ]
4095
4096
4097 [FEID]
4098 [Egress]
4099 [L2Index]
4100 [NextHopIPv6]
4101 [NHEncapMethod]
4102
4103
4104
4105
4106 ExceptionOut
4107 Output port for exception packet.The following
4108 packets are identified as Exception packet:1 Packet with Hop
4109 Limit zero.2 The MTU for outgoing interface is less than the
4110 packet size.3 The outgoing port is same as the one on which
4111 the packet is received.4 The packet is for a local interface.
4112
4113
4114
4115 [ IPv6 ]
4116
4117
4118 [Ingress]
4119 [ExceptionID]
4120
4121
4122
4123
4124 FailOutput
4125 Output for packets failed the nexthop application
4126 operation.
4127
4128
4129 [ IPv6 ]
4130
4131
4132
4133
4134
4135
4136 NextHopTable
4137 Nexthop table
4138
4139 IPv6NextHopInfoType
4140
4141
4142
4143
4144
4145 NextHopTableLimit
4146 Maxium number of nexthops this LFB supports
4147
4148 uint32
4149
4150
4151
4152
4153 EtherEncap
4154
4155 An LFB classifier definition for completes ethernet
4156 encapsulation fuctions
4157 1.0
4158 GenericConnectivityLFB
4159
4160
4161 EncapIn
4162 Port for receiving packets needed to build Ethernet
4163 encapsulation.
4164
4165
4166 [IPv4]
4167 [IPv6]
4168
4169
4170 [L2Index]
4171
4172 [NextHopIP]
4173 [NextHopIPv6]
4174
4175 [IPPacketType]
4176
4177
4178
4179
4180
4181
4182 SuccessOut
4183
4184
4185
4186 [EthernetII]
4187
4188
4189
4190
4191 ExceptionOut
4192 packet can't find the associated L2 information
4193
4194
4195
4196 [IPv4]
4197 [IPv6]
4198
4199
4200
4201
4202
4203
4204 ArpTable
4205 Ethernet arp table.
4206
4207 ArpTableEntryType
4208
4209
4210
4211 NbrTable
4212 IPv6 neighbour table.
4213
4214
4215 NbrTableEntryType
4216
4217
4218
4219 DCHostTablev4
4220 Direct connected host arp table for IPv4
4221
4222 DCHostTableEntryTypev4
4223
4224
4225
4226 DCHostTablev6
4227 Direct connected host arp table for IPv6
4228
4229
4230 DCHostTableEntryTypev6
4231
4232
4233
4234
4235
4236 ArpTableLimit
4237 Max number of arp entries in arp table.
4238 uint32
4239
4240
4241 NbrTableLimit
4242 Max number of neighbours in neighbour table.
4243
4244
4245 uint32
4246
4247
4248 DCHostTablev4Limit
4249 The limit on Direct connected host table for IPv4.
4250
4251 uint32
4252
4253
4254 DCHostTablev6Limit
4255 The limit on Direct connected host table for IPv6.
4256
4257
4258 uint32
4259
4260
4261
4262
4263 Scheduler
4264 Base scheduler LFB.
4265 1.0
4266
4267
4268 Watcher
4269 Input for watching the queues to be scheduled.
4270 Queues to be scheduled can transmit packet enqueue and
4271 dequeue infomation to scheduler through these port
4272
4273
4274 [MetadataFrame]
4275
4276
4277 [QueueID]
4278 [PacketLength]
4279 [QueueOperationCmd]
4280
4281
4282
4283
4284
4285
4286 OutControl
4287 Control output,this output is used by scheduler to
4288 communicate commands to it's controlled queues such as
4289 dequeue a packet.
4290
4291
4292 [MetadataFrame]
4293
4294
4295 [QueueOperationCmd]
4296
4297
4298
4299
4300
4301
4302 QueueScheduledLimit
4303 Max number of queues that can be scheduled by this
4304 scheduler.
4305 uint32
4306
4307
4308 This defines a base LFB class for schedulers.
4309 Schedulers have an Input Port group called Watchers for
4310 representing the queues they watch, and an Output Port group
4311 called Controllers fro representing the queues they control.
4312
4313
4314
4315 Queue
4316 Queue LFB.
4317 1.0
4318
4319
4320 InControl
4321 Input from scheduler
4322
4323
4324 [QueueOperationCmd]
4325
4326
4327
4328
4329 InData
4330 Input port for data packet.
4331
4332
4333 [Arbitrary]
4334
4335
4336 [PacketLength]
4338
4339
4340
4341
4342
4343
4344 OutToController
4345 Output to queue controller
4346
4347
4348 [MetadataFrame]
4349
4350
4351 [QueueID]
4352 [PacketLength]
4353 [QueueOperationCmd]
4354
4355
4356
4357
4358 OutData
4359 Data packet output
4360
4361
4362 [Arbitrary]
4363
4364
4365
4366
4367
4368
4369 CurLen
4370 Current length of the queue in number of packets.
4371
4372 uint32
4373
4374
4375
4376
4377 QueueLenLimit
4378 Maximum length of the queue in number of packets.
4379
4380 uint32
4381
4382
4383 Queues have a packet input, a packet output, a
4384 control input, and a group of control outputs. The control ports
4385 represent the control relationships with scheduluers.
4387
4388
4389
4390 WRRSched
4391 Weighted round robin scheduler.
4392 1.0
4393 Scheduler
4394
4395
4396 WeightTable
4397 Weight table for queues to be scheduled.
4398
4399
4400 WeightTableEntryType
4401
4402
4403
4404
4405
4406 IPv6AddrResolution
4407 This LFB class provides the function of IPv6 address
4408 resolution part of neighbor discovery protocol.It provides an
4409 offload of ND protocol processing to FE.It process the following
4410 ND messages:neighbour solicitation and neighbour advertisement.
4411
4412 1.0
4413
4414
4415 AddrResDataPktIn
4416 The IPv6 data packet that need to do the address
4417 resolution.
4418
4419
4420 [IPv6]
4421
4422
4423
4424
4425 AddrResProtoPktIn
4426 The neighbour discovery packet related to address
4427 resolution.
4428
4429
4430 [IPv6]
4431
4432
4433
4434
4435
4436
4437 AddrResDataPktOut
4438 The IPv6 packet that have encapsulated with the
4439 correct ethernet L2 info and need to be sent out to link.
4440
4441
4442
4443 [EthernetII]
4444
4445
4446
4447
4448 AddrResProtoPktOut
4449 The IPv6 neighbour discovey packet wich has been
4450 encapsulation with the correct ethernet L2 info.
4451
4452
4453 [EthernetII]
4454
4455
4456
4457
4458
4459
4460 Nbrtable
4461 This table is an alias to the IPv6 neighbour table
4462 in the EtherEncap LFB.
4463 NbrTable
4464
4465
4466
4467
4468 ICMPv6Generator
4469 This LFB class provide some basic ICMPv6 function,it
4470 only generate the following ICMP messages for the packets that
4471 need some basic icmp processing:destination not reachable and
4472 time excceeded.
4473 1.0
4474
4475
4476 PktIn
4477 The IPv6 packet that need icmp processing.
4478
4479
4480
4481 [IPv6]
4482
4483
4484 [ExceptionID]
4485
4486
4487
4488
4489
4490
4491 ICMPv6PktOut
4492 The output for the ICMPv6 packets generated
4493 according to the input IPv6 packet and the ExceptionID.
4494
4495
4496
4497 [IPv6]
4498
4499
4500
4501
4502
4503
4504 ExtendHeaderProc
4505 This LFB class process the IPv6 packet with extended
4506 header,For the moment,the packets to this LFB are redirect to
4507 RedirectSink LFB by default.
4508 1.0
4509
4510
4511 PktIn
4512 The IPv6 packet with extended header in.
4513
4514
4515 [IPv6]
4516
4517
4518
4519
4520
4521
4522 PktOut
4523 According to the Extended header type the packet
4524 may have different next proccesing LFB.Now by default we send
4525 all the packet with extended header to CE.
4526
4527
4528 [IPv6]
4529
4530
4532
4533
4534
4535
4536 arp
4537 This LFB class provides the function of address
4538 resolution for IPv4 nodes.
4539 1.0
4540
4541
4542 AddrResDataPktIn
4543 The IPv4 data packet that need to do the address
4544 resolution.
4545
4546
4547 [IPv4]
4548
4549
4550
4551
4552 ArpPktIn
4553 The neighbour discovery packet related to address
4554 resolution.
4555
4556
4557 [IPv4]
4558
4559
4560
4561
4562
4563
4564 AddrResDataPktOut
4565 The IPv4 packet that have been encapsulated with
4566 the correct ethernet L2 info and need to be sent out to link.
4567
4568
4569
4570 [EthernetII]
4571
4572
4573
4574
4575 ArpOut
4576 The arp packet out.
4577
4578
4579 [EthernetII]
4581
4582
4583
4584
4585
4586
4587 Arptable
4588 This table is an alias of the arp table in the
4589 EtherEncap LFB.
4590 ArpTable
4591
4592
4593
4594
4595 ICMPGenerator
4596 This LFB class provide some basic ICMP function,it only
4597 generate the following ICMP messages:ICMP destination
4598 unreachable and time excceeded.
4599 1.0
4600
4601
4602 PktIn
4603 IPv4 packet that need icmp processing.
4604
4605
4606 [IPv4]
4607
4608
4609 [ExceptionID]
4610
4611
4612
4613
4614
4615
4616 ICMPPktOut
4617 The output for the ICMP packets generated according
4618 to the input packet and the ExceptionID.
4619
4620
4621 [IPv4]
4622
4623
4624
4625
4626
4627
4628 MetadataClassifier
4629 This LFB class provides the function of classify
4630 packets according to the meta data.Now it only works on one meta
4631 data.
4632 1.0
4633
4634
4635 PktIn
4636 Packets need to do the classification.
4637
4638
4639 [Arbitrary]
4640
4641
4642 [Arbitrary]
4643
4644
4647
4648
4649
4650
4651
4652 ClassifiedOut
4653 Output group for the classified packets.
4654
4655
4656 [Arbitrary]
4657
4658
4659
4660
4661
4662
4663 MetaDataID
4664 The metadata id that this classifier works on.
4665
4666 uint32
4667
4668
4669 MetaDataName
4670 The name of the meta data that this classifier
4671 works on.
4672 string
4673
4674
4675 MetadataClassifyTable
4676 The meta data classifying table.
4677 MetadataClassTableType
4678
4679
4680 OutNumOfPorts
4681 The number of ports in the output group.
4682 uint32
4683
4684
4685
4686
4687 MaxOutNumOfPorts
4688 Maxium number of ports in the output group.
4689
4690 uint32
4691
4692
4693
4694
4695 OptionProc
4696 This LFB class process the IPv4 packet with options,it
4697 can process on the following options:Router-alert option.
4698
4699 1.0
4700
4701
4702 PktIn
4703 The IPv4 packet with options in.
4704
4705
4706 [IPv4]
4707
4708
4709
4710
4711
4712
4713 PktOut
4714 According to the Option type the packet may have
4715 different next proccesing LFB.Now by default we send all the
4716 packet with extended header to CE.
4717
4718
4719 [IPv4]
4720
4721
4722
4723
4724
4725
4726 GenericConnectivityLFB
4727
4728 An LFB Class for providing connectivity between an FE and
4729 communications media.
4730
4731 1.0
4732 This LFB Class provides a generic basis for
4733 representing connectivity between the FE and the outside world.
4734 The LFB has one or more ports for packets that the FE processing
4735 logic is forwrding for transmission by this Connectivity LFB. It
4736 has one or more ports for packets that the Connectivity LFB has
4737 received and is handing to the FE processing logic. Multiple
4738 ports for handline packets are supported so that protocol
4739 specific encapsulation and demultiplexing can be provided by this
4740 LFB. This LFB also has ports for sending packets to lower layer
4741 Connectivity LFBs and receiving packets from such lower layer
4742 Connectivity LFBs. This enables support for the processing
4743 components of interface stacks, such as PPP over Ethernet or
4744 Ethernet over MPLS.For packets arriving from Media or lower layer
4745 connectivity, this LFB will perform appropriate media validation,
4746 then remove media specific headers, and place the relevant
4747 information in meta-data. For ethernet, the Source MAC would be
4748 in meta-data. For Frame Relay or ATM, a circuit identifier would
4749 be in meta-data. For Ethernet with VLANs, this meta-data would
4750 indicate which VLAN the packet came from. For packets to be
4751 transmitted, meta-data indicating the destination (destination
4752 MAC or outgoing circuit, etc.) is required. This LFB will also
4753 include statistical components such as the number of octets and
4754 packets sent and received, the number of various input and output
4755 errors, etc.
4756
4757
4758 RedirectLFB
4759 An LFB Class definition for exchanging data packets
4760 between the FE and the CE.
4761 1.0
4762
4763
4764 RedirectToCE
4765
4766 Port for frames to send to the CE.
4767
4768
4769
4770 [taggedFrame]
4771
4772
4774
4775
4776
4777
4778 RedirectFromCE
4779
4780 Port for frames to send to the CE
4781
4782
4783
4784 [taggedFrame]
4785
4786
4787
4788
4789 This LFB represents a point of exchagne of data
4790 packets between the CE and the FE. Packets with meta-data are
4791 exchanged. It is expected that the output port of a RedirectLFB,
4792 if it is connected at all, will be connected to a meta-data
4793 redirector
4794
4795
4796 IPv4Validator
4797 An LFB Class definition for validates the IPv4 packet.
4798
4799 1.0
4800
4801
4802 ValidatorIn
4803
4804 Normal packet input.
4805
4806
4807
4808 [IPv4]
4809
4810
4811
4812
4813
4814
4815 ValidatorOut
4816
4817 Normal packet Output.
4818
4819
4820
4821 [IPv4packet]
4823
4824
4825
4826
4827 FailOutput
4828 The port to send packets that do not match any
4829 entries.
4830
4831
4832 [taggedFrame]
4833
4834
4835 [errorid]
4836
4837
4838
4839
4840 This LFB validates the IP version and header length
4841 fields, including verifying that the packet length is at least as
4842 long as the header indicates.
4843
4844
4845 IPv6Validator
4846 An LFB Class definition for validates the IPv6 packet.
4847
4848 1.0
4849
4850
4851 ValidatorIn
4852
4853 Normal packet input.
4854
4855
4856
4857 [IPv6]
4858
4859
4860
4861
4862
4863
4864 ValidatorOut
4865
4866 Normal packet Output.
4867
4868
4869
4870 [IPv6packet]
4872
4873
4874
4875
4876 FailOutput
4877 The port to send packets that do not match any
4878 entries.
4879
4880
4881 [taggedFrame]
4882
4883
4884 [errorid]
4885
4886
4887
4888
4889 This LFB validates the IP version and header length
4890 fields, including verifying that the packet length is at least as
4891 long as the header indicates.
4892
4893
4894 PacketTrimmer
4895
4896 LFB removes data from the front of a packet.
4897 1.0
4898
4899
4900 PacketIn
4901
4902 Normal packet input.
4903
4904
4905
4906 [Packet]
4907
4908
4909
4910
4911
4912
4913 PacketOut
4914
4915 Normal packet Output.
4916
4917
4918
4919 [Packet]
4921
4922
4923
4924
4925 FailOut
4926
4927 For packets without enough bytes to remove
4928
4929
4930
4931 [Packet]
4932
4933
4934
4935
4936
4937
4938 TrimLength
4939 amount to trim from each packet
4940 uint32
4941
4942
4943
4944
4945 Duplicator
4946
4947 An LFB Class definition for packet duplicator LFB. Any
4948 packet received on an input port is logically copied and sent to
4949 all output ports.
4950 1.0
4951
4952
4953 PacketIn
4954
4955 Normal packet input.
4956
4957
4958
4959 [IPv4]
4960 [IPv6]
4961
4962
4963
4964
4965
4966
4967 PacketOut
4968 Normal packet output port group
4969
4970
4971 [IPv4]
4972 [IPv6]
4973
4974
4975
4976
4977
4978
4979 ArbitraryClassifierLFB
4980
4981 A classifier which can test packet or metadata, and on
4982 that basis set meta-data a pick an output port.
4983 1.0
4984
4985
4986 PacketsToClassify
4987
4988 The group of ports to received packets over
4989
4990
4991
4992 [taggedFrame]
4993
4994
4995
4996
4997
4998
4999
5000 SuccessOutput
5001
5002 The group of ports used by the classifer for output
5003 when a successful match is found.
5004
5005
5006
5007 [taggedFrame]
5008
5009
5010
5011
5012
5013 FailOutput
5014
5015 The port to send packets that do not match any entries.
5016
5018
5019
5020 [taggedFrame]
5021
5022
5023
5024
5025
5026
5027
5028 ClassifierTable
5029 The table of classifier entries. Each entry is
5030 tested until one succeeds. Each entry contains an optional
5031 port test, an array of packet and meta data tests, an array
5032 of metadata actions, and an exit selection.
5033
5034
5035
5036 InputPortTest
5037 If present,this match will only match packets
5038 arriving over the specified port.
5039
5040 uint32
5041
5042
5043 TestConditions
5044 The array of conditions to test
5045
5046 MatchCondition
5047
5048
5049
5050 MetaDataActions
5051 The array of meta data modifications to make
5052 when the match succeeds.
5053
5054 MatchMetaDataAction
5055
5056
5057
5058 MatchOutputPort
5059 The port within the success group to send
5060 packets which match these tests.
5061 uint32
5062
5063
5064
5065
5067
5068
5069
5070
5071 7. LFB Use Case
5073 Editorial:This section is supposed to discuss how we can build some
5074 basic applications define by WG charter such as IPV4 forwarding etc.
5076 Putting together LFBs to form a specific packet processing
5077 application
5079 8. Contributors
5081 The authors would like to thank Jamal Hadi Salim and Ligang Dong who
5082 made a major contribution to the development of this document.
5084 Jamal Hadi Salim
5085 Mojatatu Networks
5086 Ottawa, Ontario
5087 Canada
5088 Email: hadi@mojatatu.com
5090 Ligang Dong
5091 Zhejiang Gongshang University
5092 149 Jiaogong Road
5093 Hangzhou 310035
5094 P.R.China
5095 Phone: +86-571-28877751
5096 EMail: donglg@mail.zjgsu.edu.cn
5098 9. Acknowledgements
5100 This document is based on earlier documents from Joel Halpern, Ligang
5101 Dong, Fenggen Jia and Weiming Wang.
5103 10. IANA Considerations
5105 This memo includes no request to IANA.
5107 11. Security Considerations
5109 These definitions if used by an FE to support ForCES create
5110 manipulable entities on the FE. Manipulation of such objects can
5111 produce almost unlimited effects on the FE. FEs should ensure that
5112 only properly authenticated ForCES protocol participants are
5113 performing such manipulations. Thus the security issues with this
5114 protocol are defined in the FE-protocol [I-D.ietf-forces-protocol].
5116 12. References
5118 12.1. Normative References
5120 [I-D.ietf-forces-model]
5121 Halpern, J. and J. Salim, "ForCES Forwarding Element
5122 Model", draft-ietf-forces-model-16 (work in progress),
5123 October 2008.
5125 [I-D.ietf-forces-protocol]
5126 Dong, L., Doria, A., Gopal, R., HAAS, R., Salim, J.,
5127 Khosravi, H., and W. Wang, "ForCES Protocol
5128 Specification", draft-ietf-forces-protocol-22 (work in
5129 progress), March 2009.
5131 12.2. Informative References
5133 [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
5134 Requirement Levels", BCP 14, RFC 2119, March 1997.
5136 [RFC2629] Rose, M., "Writing I-Ds and RFCs using XML", RFC 2629,
5137 June 1999.
5139 [RFC3552] Rescorla, E. and B. Korver, "Guidelines for Writing RFC
5140 Text on Security Considerations", BCP 72, RFC 3552,
5141 July 2003.
5143 [RFC3654] Khosravi, H. and T. Anderson, "Requirements for Separation
5144 of IP Control and Forwarding", RFC 3654, November 2003.
5146 [RFC3746] Yang, L., Dantu, R., Anderson, T., and R. Gopal,
5147 "Forwarding and Control Element Separation (ForCES)
5148 Framework", RFC 3746, April 2004.
5150 [RFC5226] Narten, T. and H. Alvestrand, "Guidelines for Writing an
5151 IANA Considerations Section in RFCs", BCP 26, RFC 5226,
5152 May 2008.
5154 Authors' Addresses
5156 Weiming Wang
5157 Zhejiang Gongshang University
5158 18, Xuezheng Str., Xiasha University Town
5159 Hangzhou, 310018
5160 P.R.China
5162 Phone: +86-571-28877721
5163 Email: wmwang@mail.zjgsu.edu.cn
5165 Evangelos Haleplidis
5166 University of Patras
5167 Patras,
5168 Greece
5170 Email: ehalep@ece.upatras.gr
5172 Kentaro Ogawa
5173 NTT Corporation
5174 Tokyo,
5175 Japan
5177 Email: ogawa.kentaro@lab.ntt.co.jp
5179 Fenggen Jia
5180 National Digital Switching Center(NDSC)
5181 Jianxue Road
5182 Zhengzhou, 452000
5183 P.R.China
5185 Phone: +86-571-28877751
5186 Email: jfg@mail.ndsc.com.cn,fgjia@mail.zjgsu.edu.cn
5188 Halpern Joel
5189 Ericsson
5190 P.O. Box 6049
5191 Leesburg, 20178
5192 VA
5194 Phone: +1 703 371 3043
5195 Email: jhalpern@redback.com