a lfb library for forces (to be submitted) ligang dong, [email protected] fengen jia,...
TRANSCRIPT
A LFB Library for ForCES
<draft-dong-forces-lfblib-00.txt> (to be submitted)
Ligang Dong, [email protected] Fengen Jia, [email protected]
Weiming Wang,[email protected]
IETF 68th MeetingMar. 20, 2007, Prague Czech
Draft Content
• Defined 22 LFBs by use of XML schema proposed in FE Model– compliant with ForCES FE model specifications
• Attributes, capabilities, events, etc
• Defined relative frame types, data types, and metadata types used in proposed LFBs
LFB Designs - Port LFBs
• EtherPort– a description of a general Ethernet port function
• EtherEncap – for ethernet encapsulation
• EtherDecap– for Ethernet de-encapsulation and Ethernet filtering
functions
LFB Designs - IPv4 unicast forwarding LFBs
• IPv4Validator– for validates IPv4 packets
• IPv4UcastLPM– IPv4 Longest Prefix Match Lookup LFB
• IPv4NextHopApplicator– for applying next hop action to IPv4 packets
• ARP– provides the function of address resolution.
• ICMPProc– provides basic ICMP function.
• OptionProc– processes IPv4 packet options, – currently defined option: Router-alert option.
LFB Designs – IPv6 unicast forwarding LFBs
• IPv6Validator– for validating correctness of IPv6 packets
• IPv6UcastLPM– for IPv6 longest prefix lookup function
• IPv6UcastNexthopApplicator– for applying next hop action to IPv6 packets
• IPv6AddrResolution– provides the function of IPv6 address resolution part of Neighbor
Discovery protocol
• ICMPv6Proc– provides basic ICMPv6 function.
• ExtendHeaderProc– processes IPv6 packet extended header.
LFB Designs – Queue manager & scheduler LFBs
• Scheduler – Basic scheduler LFB
• Queue– Basic queue LFB
• InterFECommEncap– for encapsulating data that needs to be sent over switch
fabric to other FEs
• InterFECommDecap– for decapsulating data that comes from switch fabric
LFB Designs – Common Function LFBs
• RedirectSink– provides the function for data packets to be redirected to
CE.
• RedirectSource– provides the function for receiving data packets redirected
from CE
• MetaClassifier– provides the function of classifying packets according to
meta data.
– currently defined to work with one meta data
Example - IPv4UcastLPM (1)
<LFBClassDef LFBClassID="0x00011004"><name>IPv4UcastLPM</name><synopsis>IPv4 Longest Prefix Match Lookup LFB</synopsis><version>1.0</version><inputPorts>
<inputPort><name>PktIn</name><synopsis>The port to receive IPv4 packets from other LFBs</synopsis><expectation>
<frameExpected><ref>IPv4</ref></frameExpected>
</expectation></inputPort>
</inputPorts>
<outputPorts><outputPort>
<name>SuccessOut</name><synopsis>Successful output when all is fine</synopsis><product>
<frameProduced><ref>IPv4</ref>
</frameProduced><metadataProduced>
<ref>NextHopID</ref></metadataProduced>
</product></outputPort>
Example - IPv4UcastLPM (2)
<outputPort>
<name>ExceptionOut</name>
<synopsis>Exception output</synopsis>
<product>
<frameProduced><ref>IPv4</ref></frameProduced>
<metadataProduced>
<ref>InputPortID </ref>
<ref>ExceptionID</ref>
</metadataProduced>
</product>
</outputPort>
<outputPort>
<name>FailOutput</name>
<synopsis>Drop output</synopsis>
<product>
<frameProduced><ref> IPv4 </ref></frameProduced>
</product>
</outputPort>
</outputPorts>
Example - IPv4UcastLPM (3)
<attributes>
<attribute elementID="1">
<name> PrefixTable </name>
<synopsis>IPv4 prefix table</synopsis>
<array type="variable-size">
<typeRef>IPv4PrefixTableEntry</typeRef>
<contentKey contentKeyID="1">
<contentKeyField>
IPv4PrefixTableEntry.prefix
</contentKeyField>
</contentKey>
</array>
</attribute>
Example - IPv4UcastLPM (4)
<attribute elementID="2"> <name>LocalIpAddrTable</name> <synopsis>Table of interfaces' ip address info. on the local device
</synopsis><typeRef>LocalIpAddrType</typeRef>
</attribute><attribute elementID="3">
<name>StatsEnable</name><synopsis>Whether enable the statistics in this LFB</synopsis><typeRef>BooleanType</typeRef>
</attribute><attribute elementID="4">
<name>IPv4Stats</name><synopsis>The IPv4 associated statistics</synopsis><typeRef> IPv4UcastLPMStatisticsType </typeRef>
</attribute></attributes>
Example - IPv4UcastLPM (5)
<capabilities>
<capability elementID="1">
<name>PrefixTableLimit</name>
<synopsis>Maximum number of prefix supported by this LFB
</synopsis>
<typeRef>uint32</typeRef>
</capability>
<capability elementID="2">
<name>LocalIpAddrTableLimit</name>
<synopsis>Maxnum of IP address entries supported by this LFB
</synopsis>
<typeRef>uint32</typeRef>
</capability>
</capabilities>
<description>This LFB represents the IPv4 longest prefix match lookup operation.
</description>
</LFBClassDef>
Example - IPv4UcastLPM (6)
Implementation status• Proposed LFBs all have been implemented in terms of their forwarding functions• Most of the proposed LFB attributes have been implemented and tested, examples are as:
• Some LFB attributes, capabilities, and events are to be implemented
LFB Names LFB attributes
IPv4UcastLPM PrefixTable, LocalIpAddrTable
IPv4NextHopApplicator NextHopTable
IPv6UcastLPM PrefixTable, LocalIpv6AddrTable
IPv6UcastNexthopApplicator NextHopTable
EtherEncap ArpTable, NbrTable
Conclusion
• Earlier version of LFB definitions was posted on ForCES email list in Feb. 2006.
• This draft is basically an improvement to the version– Based on implementation responses
• Works on LFB definitions highly depends upon implementations, and just consume time and other resources. Our current work is still far from perfect.– Comments on the draft are really appreciated!
Acknowledges:
• Research is funded by:
– NSF China (60573116, 60603072)– Zhejiang Provincial NSF China (No. Z106829)– Zhejiang Sci & Tech Project (2006C11215)
Thank You!