{"id":960,"date":"2011-09-07T22:42:00","date_gmt":"2011-09-07T14:42:00","guid":{"rendered":"http:\/\/note.systw.net\/note\/?p=960"},"modified":"2023-11-07T22:46:17","modified_gmt":"2023-11-07T14:46:17","slug":"cisco-cef","status":"publish","type":"post","link":"https:\/\/systw.net\/note\/archives\/960","title":{"rendered":"Cisco CEF"},"content":{"rendered":"\n<p><strong>CEF(Cisco Express Forwarding)<\/strong><br>offering high performance packet forwarding through the use of dynamic lookup tables<br>CEF runs by default, taking advantage of the specialized hardware.<br>ps:<br>The following platforms all perform CEF in hardware:<br>Catalyst 6500 Supervisor 720 (with an integrated MSFC3)<br>Catalyst 6500 Supervisor 2\/MSFC2 combination<br>Catalyst 4500 Supervisor III, IV, V, and 6-E<br>Fixed-configuration switches, ex:Catalyst 3750, 3560, 3550, and 295<br>ps:<br><strong>Traditional MLS<\/strong>(NetFlow switching \/route cache switching)<br>the SE(switch enginer) must know the identity of each RP(router process).<br>The SE then can listen in to the first packet going to the router and also going away from the router.<br>If the SE can switch the packet in both directions,<br>it can learn a &#8220;shortcut path&#8221; so that subsequent packets of the same flow can be switched directly to the destination port without passing through the RP.<br>ps:<br>Traditionally, NetFlow switching was performed on Cisco hardware<br>Basically,the hardware consisted of an independent RP component and a NetFlow-capable SE component.<\/p>\n\n\n\n<p>ps:<br>CEF also can be optimized through the use of specialized forwarding hardware<br><strong>aCEF(Accelerated CEF)<\/strong><br>CEF is distributed across multiple Layer 3 forwarding engines, typically located on Catalyst 6500 line cards.<br>These engines do not have the capability to store and use the entire FIB, so only a portion of the FIB is downloaded to them at any time<br>This functions as an FIB &#8220;cache,&#8221; containing entries that are likely to be used again<br><strong>dCEF(Distributed CEF)<\/strong><br>CEF can be distributed completely among multiple Layer 3 forwarding engines for even greater performance.&nbsp;<br>Because the FIB is self-contained for complete Layer 3 forwarding, it can be replicated across any number of independent Layer 3 forwarding engines<\/p>\n\n\n\n<p>disable CEF<br>on the Catalyst 3750<br><strong>(config-if)# no ip route-cache cef<\/strong><br>on the Catalyst 4500<br><strong>(config-if)#no ip cef<\/strong><br>ps:<br>CEF is enabled on all CEF-capable Catalyst switches by default<\/p>\n\n\n\n<p>&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;<\/p>\n\n\n\n<p>A CEF-based multilayer switch consists of two basic functional blocks<br><strong>Layer 3 engine<\/strong>:is involved in building routing information<br><strong>Layer 3 forwarding engine<\/strong>:can use to switch packets in hardware by Layer 3 engine information<br>ps:<br>CEF operation depends on the correct routing information being generated and downloaded to the Layer 3 forwarding engine hardware . This information is contained in the FIB and is maintained dynamically.<\/p>\n\n\n\n<p><strong>The Layer 3 engine<\/strong>&nbsp;(essentially a router)<br>1. maintains routing information(from static routes or dynamic routing protocols)<br>2. the routing table is&nbsp;<strong>reformatted into FIB<\/strong><\/p>\n\n\n\n<p><strong>Layer 3 Forwarding Engine<\/strong><br>1. After the FIB is built , packets can be forwarded along the &#8220;Layer3 Forwarding Engine&#8221;<br>2. This follows the hardware switching process, in which<strong>&nbsp;no expensive or time-consuming<\/strong>&nbsp;operations are needed<br>3. \u5c01\u5305\u9032\u5165layer3 forwarding engine\u4f5c\u696d<br>ingress packet-&gt; ( FIB -&gt; Adjacency Table -&gt; rewrite engine)-&gt;egress packet<\/p>\n\n\n\n<p><br>&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;<br>&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;<\/p>\n\n\n\n<p><strong>FIB(Forwarding Information Base):<\/strong><br>1. an ordered list with the most specific route first, for each IP destination subnet in the table<br>2. contains routing or forwarding information that the network prefix can reference<br>ex:<br>a route to 10.1.0.0\/16 might be contained in the FIB along with routes to 10.1.1.0\/24 and 10.1.1.128\/25, if those exist.<br>Notice that these examples are increasingly more specific subnets, as designated by the longer subnet masks.<br>3. When the switch receives a packet, it easily can examine the destination address and find the&nbsp;&#8220;longest-match destination&#8221; route entry in the FIB.<br>ps:<br>FIB\u6b04\u4f4d\u5305\u62ec\u4ee5\u4e0b<br>\u3000IP Address<br>\u3000Next-Hop IP Addr<br>\u3000Next-Hop MAC Addr<br>\u3000Egress Port<\/p>\n\n\n\n<p><strong>FIB is dynamic<\/strong><br>the FIB must reflect the same change if:<br>1. a next-hop address is changed<br>2. aged out of the ARP table<br>ps:<br>route\u548cFIB\u7684\u4e92\u52d5<br>1. Anytime the routing table receives a change to a route prefix or the next-hop address, the FIB receives the same change<br>2. When the Layer 3 engine sees a change in the routing topology, it sends an update to the FIB<\/p>\n\n\n\n<p>&#8230;<\/p>\n\n\n\n<p><strong>CEF punt<\/strong><br>if a packet cannot be switched in hardware according to the FIB<br>Packets then:<br>\u30001 are marked as &#8220;CEF punt&#8221;<br>\u30002 immediately are sent to the Layer 3 engine for further processing<\/p>\n\n\n\n<p>\u6703\u5c0e\u81f4 &#8220;CEF punt&#8221; \u5c01\u5305\u7684\u60c5\u6cc1\u5982\u4e0b<br>An entry cannot be located in the FIB.<br>The FIB table is full.<br>The IP TTL has expired.<br>The MTU is exceeded, and the packet must be fragmented.<br>An ICMP redirect is involved.<br>The encapsulation type is not supported.<br>Packets are tunneled, requiring a compression or encryption operation.<br>An access list with the log option is triggered.<br>A NAT operation must be performed (except on the Catalyst 6500 Supervisor 720, which can handle NAT in hardware).<\/p>\n\n\n\n<p><br>&#8230;<\/p>\n\n\n\n<p>display FIB table<br><strong>Switch# show ip cef [option][detail]<\/strong><br>\u5e38\u7528option\u6709\u4ee5\u4e0b\u5169\u7a2e<br><strong>[interface | vlan &lt; vlan-id&gt;]<\/strong><br>related to a specific interface or VLAN<br><strong>[ prefix-ip prefix-mask] [longer-prefixes]<\/strong><br>by specifying an IP prefix address and mask<br>only an exact match of the IP prefix and mask will be displayed if it exists in the CEF table<\/p>\n\n\n\n<p>ps:<br>Switch# show ip cef \u70ba\u4f8b,\u756b\u9762\u5927\u81f4\u5982\u4e0b<br>Prefix\u3000\u3000\u3000\u3000\u3000\u3000Next Hop\u3000Interface<br>0.0.0.0\/32\u3000\u3000\u3000\u3000receive<br>192.168.199.0\/24\u3000attached\u3000Vlan1<br>192.168.199.0\/32\u3000receive<br>192.168.199.1\/32\u3000receive<br>192.168.199.2\/32\u3000192.168.199.2\u3000Vlan1<br>192.168.199.255\/32\u3000receive<br>\u8aaa\u660e\u5982\u4e0b<br>Next Hop=&#8221;receive&#8221;:packets will be sent to the Layer 3 engine for further processing.<br>Next Hop=&#8221;attached&#8221; :it is connected directly to an SVI or VLAN<br>Next Hop=same IP address, denoting that an adjacency is available.<br>0.0.0.0\/32;An FIB entry has been reserved for the default route. No next hop is defined<br>192.168.199.0\/24:The subnet assigned to the VLAN 1 interface is given its own entry.<br>192.168.199.0\/32:An FIB entry has been reserved<br>192.168.199.1\/32:An entry has been reserved<br>192.168.199.2\/32:This is an entry for a neighboring multilayer switch, found on VLAN 1 interface.<br>168.199.255\/32:The route processor (Layer 3 engine) handles all directed broadcasts<\/p>\n\n\n\n<p>ps:<br>Switch# show ip cef vlan 101 \u70ba\u4f8b,\u756b\u9762\u5927\u81f4\u5982\u4e0b<br>Prefix\u3000\u3000\u3000\u3000Next Hop\u3000\u3000Interface<br>10.1.1.0\/24\u3000\u3000attached\u3000\u3000Vlan101<br>10.1.1.2\/32\u3000\u300010.1.1.2\u3000\u3000Vlan101<br>10.1.1.3\/32\u3000\u300010.1.1.3\u3000\u3000Vlan101<br>ps:<br>Switch# show ip cef vlan 1003 \u70ba\u4f8b,\u756b\u9762\u5927\u81f4\u5982\u4e0b<br>Prefix Next Hop Interface<br>0.0.0.0\/0 172.20.52.1 FastEthernet3\/3<br>0.0.0.0\/32 receive<br>10.7.0.0\/16 172.20.52.1 FastEthernet3\/3<br>10.16.18.0\/23 172.20.52.1 FastEthernet3\/3<br>ps:<br>Switch# show ip cef vlan 1003 detail\u70ba\u4f8b,\u756b\u9762\u5927\u81f4\u5982\u4e0b<br>IP Distributed CEF with switching (Table Version 2364), flags=0x0<br>1383 routes, 0 reresolve, 0 unresolved (0 old, 0 new)<br>1383 leaves, 201 nodes, 380532 bytes, 2372 inserts, 989 invalidations<br>0 load sharing elements, 0 bytes, 0 references<br>universal per-destination load sharing algorithm, id 9B6C9823<br>3 CEF resets, 0 revisions of existing leaves<br>refcounts: 54276 leaf, 51712 node<br>Adjacency Table has 5 adjacencies<\/p>\n\n\n\n<p><br>ps:<br>Switch# show ip cef 10.1.0.0 255.255.0.0 longer-prefixes \u70ba\u4f8b,\u756b\u9762\u5927\u81f4\u5982\u4e0b<br>Prefix\u3000\u3000\u3000\u3000Next Hop\u3000\u3000Interface<br>10.1.1.0\/24\u3000\u3000attached\u3000\u3000Vlan101<br>10.1.1.2\/32\u3000\u300010.1.1.2\u3000\u3000Vlan101<br>10.1.1.3\/32\u3000\u300010.1.1.3\u3000\u3000Vlan101<br>10.1.2.0\/24\u3000\u3000attached\u3000\u3000Vlan102<br>10.1.3.0\/26\u3000\u3000192.168.1.2\u3000\u3000Vlan99<br>\u3000\u3000\u3000\u3000\u3000\u3000\u3000192.168.1.3\u3000\u3000Vlan99<br>10.1.3.64\/26\u3000\u3000192.168.1.2\u3000\u3000Vlan99<br>\u3000\u3000\u3000\u3000\u3000\u3000\u3000192.168.1.3\u3000\u3000Vlan99<br>10.1.3.128\/26\u3000\u3000192.168.1.4\u3000\u3000Vlan99<br>\u3000\u3000\u3000\u3000\u3000\u3000\u3000192.168.1.3\u3000\u3000Vlan99<\/p>\n\n\n\n<p>ps:<br>Switch# show ip cef 192.168.5.0 detail&nbsp;\u70ba\u4f8b,\u756b\u9762\u5927\u81f4\u5982\u4e0b<br>192.168.5.0\/24, version 21, cached adjacency to POS7\/2<br>0 packets, 0 bytes, traffic_index 4<br>via 10.14.1.1, 0 dependencies, recursive<br>next hop 10.14.1.1, POS7\/2 via 10.14.1.0\/30<br>valid cached adjacency<br>\u8aaa\u660e:<br>There is a valid CEF entry for the destination network 192.168.5.0<br>Packets can be CEF-switched to the destination host<\/p>\n\n\n\n<p>ps:<br>Switch# show ip cef 10.1.3.0 255.255.255.192 detail \u70ba\u4f8b,\u756b\u9762\u5927\u81f4\u5982\u4e0b<br>10.1.3.0\/26, version 270, epoch 0, per-destination sharing 0 packets, 0 bytes<br>via 192.168.1.2, Vlan99, 0 dependencies<br>\u3000traffic share 1<br>\u3000next hop 192.168.1.2, Vlan99<br>\u3000valid adjacency<br>via 192.168.1.3, Vlan99, 0 dependencies<br>\u3000traffic share 1<br>\u3000next hop 192.168.1.3, Vlan99<br>\u3000valid adjacency<br>0 packets, 0 bytes switched through the prefix<br>tmstats: external 0 packets, 0 bytes\u3000internal 0 packets, 0 bytes<br>\u76f8\u95dc\u8aaa\u660e\u5982\u4e0b<br>1. version: describes the number of times the CEF entry has been updated since the table was generated<br>2. epoch:denotes the number of times the CEF table has been flushed and regenerated as a whole<br>3. The 10.1.3.0\/26 subnet has two next-hop router addresses(192.168.1.2 , 192.168.1.3), so the local switch is using per-destination load sharing between the two routers.<\/p>\n\n\n\n<p><br>&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;.<\/p>\n\n\n\n<p><strong>Adjacency table<\/strong><br><strong>1. This portion of the FIB<\/strong><br>ps:To streamline packet forwarding even more, the FIB has corresponding Layer 2 information for every next-hop entry<br><strong>2. The adjacency table information is built from the ARP table<\/strong><br>the table consisting of the MAC addresses of nodes that can be reached in a single Layer 2 hop<br>ps:As a next-hop address receives a valid ARP entry, the adjacency table is updated<\/p>\n\n\n\n<p>&#8230;<\/p>\n\n\n\n<p><strong>CEF glean state<\/strong><br>1. the FIB entry is marked as &#8220;CEF glean&#8221; If an ARP entry does not exist<br>This means that the Layer 3 forwarding engine can&#8217;t forward the packet in hardware because of the missing Layer 2 next-hop address<br>2. after marked &#8220;CEF glean&#8221;<br>The packet is sent to the &#8220;Layer 3 engine&#8221; so that it can generate an ARP request and receive an ARP reply for glean the next-hop destination&#8217;s MAC address.<\/p>\n\n\n\n<p><strong>ARP throttling\/throttling adjacency<\/strong><br>1. During the time that an FIB entry is in the CEF glean state waiting for the ARP resolution,<br><strong>subsequent packets to that host are immediately dropped<\/strong>&nbsp;so that the &#8220;input queues&#8221; do not fill and the &#8220;Layer 3 engine&#8221; does not become too busy worrying about the need for dupliate ARP requests<br>2. If<br><strong>an ARP reply is not received in 2 seconds<\/strong>:<br>the throttling is released so that another ARP request can be triggered.<br><strong>after an ARP reply is received:<\/strong><br>the throttling is released, the FIB entry can be completed, and packets can be forwarded completely in hardware<\/p>\n\n\n\n<p>\u986f\u793aglean\u72c0\u614b<br><strong>Switch# show ip cef adjacency glean<\/strong><br>\u756b\u9762\u5927\u81f4\u5982\u4e0b<br>Prefix Next Hop Interface<br>10.1.1.2\/32 attached Vlan101<br>127.0.0.0\/8 attached EOBC0\/0<br>[output omitted]<br>\u8aaa\u660e:10.1.1.2\u56e0arp\u5df1age out\u800c\u9032\u5165glean state<br>ps:<br>Switch# show ip cef 10.1.1.2 255.255.255.255 detail<br>10.1.1.2\/32, version 688, epoch 0, attached, connected<br>0 packets, 0 bytes<br>\u3000via Vlan101, 0 dependencies<br>\u3000\u3000valid glean adjacency<br>\u8aaa\u660e:10.1.1.2\u56e0arp\u5df1age out\u800c\u9032\u5165glean state<br>\u57f7\u884cshow ip arp 10.1.1.2 \u4e0d\u6703\u6709\u8cc7\u6599 ,\u56e010.1.1.2\u7684arp\u5df1age out<\/p>\n\n\n\n<p><br>&#8230;<\/p>\n\n\n\n<p>The adjacency table also can contain other types of entries so that packets can be handled efficiently, types as follows<\/p>\n\n\n\n<p><br><strong>Null adjacency<\/strong><br>it represents a logical interface that silently absorbs packets without actually forwarding them.<\/p>\n\n\n\n<p><br><strong>Discard adjacency<\/strong><br>when packets must be discarded because of an access list or other policy action.<\/p>\n\n\n\n<p>&#8230;<\/p>\n\n\n\n<p><strong>Drop adjacency<\/strong><br>to switch packets that can&#8217;t be forwarded normally<br>ex:<br>an encapsulation failure, an unresolved address, an unsupported protocol,no valid route present, no valid adjacency, or a checksum error<\/p>\n\n\n\n<p>gauge drop adjacency<br><strong># show cef drop<\/strong><br>ps:\u756b\u9762\u5927\u81f4\u5982\u4e0b<br>CEF\u3000Drop\u3000Statistics<br>Slot\u3000Encap_fail\u3000Unresolved\u3000Unsupported\u3000No_route\u3000No_adj\u3000ChkSum_Err<br>RP 8799327 1 45827 5089667 32 0<\/p>\n\n\n\n<p>&#8230;<\/p>\n\n\n\n<p><strong>Punt adjacency<\/strong><br>when packets must be sent to the Layer 3 engine for further processing<br>various punt adjacency reasons as follows<br>\u3000<strong>No_adj<\/strong>:-An incomplete adjacency<br>\u3000<strong>No_encap<\/strong>:An incomplete ARP resolution<br>\u3000<strong>Unsupp&#8217;ted<\/strong>:Unsupported packet features<br>\u3000<strong>Redirect<\/strong>:ICMP redirect<br>\u3000<strong>Receive<\/strong>:Layer 3 engine interfaces;<br>\u3000\u3000 includes packets destined for IP addresses that are assigned to interfaces on the:<br>\u3000\u3000\u3000 Layer 3 engine,<br>\u3000\u3000\u3000 IP network addresses,<br>\u3000\u3000\u3000 IP broadcast addresses<br>\u3000<strong>Options<\/strong>:IP options present<br>\u3000<strong>Access<\/strong>:Access list evaluation failure<br>\u3000<strong>Frag<\/strong>:Fragmentation failure<\/p>\n\n\n\n<p>gauge punt adjacency<br><strong># show cef not-cef-switched<\/strong><br>gauge the CEF punt activity by looking at the various punt adjacency reasons<br>ps:<br>\u756b\u9762\u5927\u81f4\u5982\u4e0b<br>CEF Packets passed on to next switching layer<br>Slot No_adj No_encap Unsupp&#8217;ted Redirect Receive Options Access Frag<br>RP 3579706 0 0 0 41258564 0 0 0<\/p>\n\n\n\n<p>&#8230;<\/p>\n\n\n\n<p><strong>display the adjacency table<\/strong><br>Switch# show adjacency [ interface | vlan &lt; vlan-id&gt; ] [summary | detail]<br>ps<br>\u4ee5#show adjacency summary\u70ba\u4f8b,\u756b\u9762\u5927\u81f4\u5982\u4e0b<br>Adjacency Table has 106 adjacencies<br>Table epoch: 0 (106 entries at this epoch)<br>Interface Adjacency Count<br>Vlan99 21<br>Vlan101 3<br>Vlan102 1<br>Vlan103 47<br>Vlan104 7<br>Vlan105 27<br>\u8aaa\u660e:<br>display the total number of adjacencies known on each physical or VLAN interface<br>Adjacencies are kept for 1)each next-hop router and 2)each host that is connected directly to the local switch<br>ps:<br>\u4ee5Switch# show adjacency vlan 99 detail\u70ba\u4f8b,\u756b\u9762\u5927\u81f4\u5982\u4e0b<br>Protocol Interface Address<br>IP Vlan99&nbsp;<strong>192.168.1.2<\/strong>(5)&nbsp;\/\/indicates that there is an adjacency for the next-hop IP(192.168.1.2)<br>\u30000 packets, 0 bytes<br>\u3000<strong>000A5E45B145<\/strong>000E387D5100<strong>0800&nbsp;<\/strong>\/\/The destination MAC(000A5E45B145) is the MAC in the ARP table<br><strong>\u3000ARP 01:52:50<\/strong><br>\u3000Epoch: 0<br>IP Vlan99&nbsp;<strong>192.168.1.3<\/strong>(5)<br>\u30001 packets, 104 bytes<br>\u3000<strong>000CF1C909A0<\/strong>000E387D5100<strong>0800<\/strong><br>\u3000ARP 04:02:11<br>\u3000Epoch: 0<br>[output omitted]<br>\u8aaa\u660e:<br><strong>the format of the long string of hex digits<\/strong><br>\u30001. MAC address: the first six octets&nbsp;,&nbsp;ex:000A5E45B145<br>\u30002. MAC address of the Layer 3 engine&#8217;s interface:six octets&nbsp;,&nbsp;ex:000E387D5100<br>\u30003. the EtherType value:two octets ,&nbsp;ex:0800<br><strong>ARP<\/strong>:shows adjacency with the age of its ARP entry<br><strong>0 packets, 0 bytes<\/strong>:are almost always 0<\/p>\n\n\n\n<p>&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;..<\/p>\n\n\n\n<p><strong>packet rewrite engine<\/strong><br>When a multilayer switch finds valid entries in the FIB and adjacency tables, a packet is almost ready to be forwarded.<br>One step remains:&nbsp;<strong>The packet header information must be rewritten.<\/strong><br>ps:<br>The switch has an additional functional block that performs a packet rewrite in real time<br>ps:<br>multilayer switch can do this very efficiently with dedicated packet-rewrite hardware and address information obtained from table lookups.<\/p>\n\n\n\n<p>The packet rewrite engine makes the following changes to the packet just before forwarding<br><strong>Layer 2 destination address<\/strong>:Changed to the next-hop device&#8217;s MAC address<br><strong>Layer 2 source address<\/strong>:Changed to the outbound Layer 3 switch interface&#8217;s MAC address<br><strong>Layer 3 IP TTL<\/strong>:Decremented by one because one router hop has just occurred<br><strong>Layer 3 IP checksum<\/strong>:Recalculated to include changes to the IP header<br><strong>Layer 2 frame checksum<\/strong>:Recalculated to include changes to the Layer 2 and Layer 3 headers<br>ps:<br>A traditional router normally would make the same changes to each packet.<br>The multilayer switch must act as if a traditional router were being used, making identical changes.<\/p>\n\n\n\n<p>&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;..<\/p>\n","protected":false},"excerpt":{"rendered":"<p>CEF(Cisco Express Forwarding)o &#8230;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"fifu_image_url":"","fifu_image_alt":"","_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":false,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2}},"categories":[34],"tags":[],"class_list":["post-960","post","type-post","status-publish","format-standard","hentry","category-cisco-layer2"],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/systw.net\/note\/wp-json\/wp\/v2\/posts\/960","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/systw.net\/note\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/systw.net\/note\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/systw.net\/note\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/systw.net\/note\/wp-json\/wp\/v2\/comments?post=960"}],"version-history":[{"count":0,"href":"https:\/\/systw.net\/note\/wp-json\/wp\/v2\/posts\/960\/revisions"}],"wp:attachment":[{"href":"https:\/\/systw.net\/note\/wp-json\/wp\/v2\/media?parent=960"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/systw.net\/note\/wp-json\/wp\/v2\/categories?post=960"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/systw.net\/note\/wp-json\/wp\/v2\/tags?post=960"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}