Method for generating forwarding information, controller, and service forwarding entity
US-2017012799-A1 · Jan 12, 2017 · US
US2016205018A1 · US · A1
| Field | Value |
|---|---|
| Publication number | US-2016205018-A1 |
| Application number | US-201514596546-A |
| Country | US |
| Kind code | A1 |
| Filing date | Jan 14, 2015 |
| Priority date | Jan 14, 2015 |
| Publication date | Jul 14, 2016 |
| Grant date | — |
A practical reading order for non-experts. Skip the full description unless you need deep technical detail.
What the patent document calls the invention.
A short plain-language summary of the technical disclosure.
Who owns or filed the patent and who is credited as inventor.
Filing, priority, publication, and grant dates set the timeline.
The legal scope of protection — read this for what is actually claimed.
Technology tags used to group this patent with similar filings.
Prior art links and similar publications in this corpus.
Official abstract text for this publication.
Embodiments of the present invention describe a self-contained service function network layer between a chain (e.g., a logical chain or service function chain) and a substrate network. Embodiments of the present invention further provide techniques for constructing logical chains for service function networks using chain tables, organizing chain tables using APIs, deploying service function networks to substrate networks, routing packets through a service function network and a substrate network, and inserting, deleting, re-routing, moving and substituting service functions in logical chains.
Opening claim text (preview).
What is claimed is: 1 . An apparatus for managing service function chains, the apparatus comprising: a controller configured to control a plurality of service functions and a substrate network, wherein each service function of said plurality of service functions is associated with an identifier and a network address, and wherein the substrate network comprises a plurality of network switches coupled to the controller; and a chain table stored at a first service function of a service function chain, wherein the chain table stores an entry comprising a first identifier and an index of a next service function in the service function chain, wherein the controller is further configured to: generate a mapping comprising network addresses and associated identifiers; create or modify the entry of the chain table; and deploy the chain table to the first service function, and wherein further the first service function is operable to: receive a packet; process the packet; and transfer the packet to the next service function. 2 . The apparatus of claim 1 , wherein the first service function is further operable to transfer the packet to the next service function by looking up an address of the next service function using the mapping. 3 . The apparatus of claim 1 , wherein the controller is further configured to generate a routing table for the plurality of network switches, wherein the routing table comprises an outgoing address and an outgoing port number associated with the outgoing address. 4 . The apparatus of claim 1 , wherein the first service function is further operable to transfer the packet to the next service function by determining an address of the next service function using the mapping and determining a port number associated with the address using the routing table. 5 . An apparatus for routing packets in a service function chain, the apparatus comprising: a packet processor operable to: receive a packet; assign a chain ID to the packet; set an index value of a header of the packet to a first index associated with the chain ID; and set a destination value of the header to a first address associated with the first index; a network switch coupled to the packet processor and a first service function, wherein the network switch is operable to route the packet to the first service function, wherein the first service function is at the first address; a controller coupled to the first service function and operable to store an address mapping table comprising plurality of service function IDs and a plurality of network addresses associated with the plurality of service function IDs; and a first chain table stored at the first service function and comprising: the chain ID; a next service function ID associated with the chain ID; and a next service function index associated with the chain ID, wherein the first service function is operable to: process the packet; determine the next service function ID and the next service function index using the first chain table; modify the header of the packet based on the next service function ID and the next service function index; and forward the packet to a second service function associated with the next service function ID. 6 . The apparatus of claim 5 , wherein a second address associated with the second service function is determined based on the next service function ID using the address mapping table, and wherein the packet is forwarded to the second service function at the second address. 7 . The apparatus of claim 5 , wherein the chain ID is assigned to the header of the packet. 8 . The apparatus of claim 5 , wherein the first service function performs at least one process of: deep packet inspection; a firewall function; and a proxy service on the packet. 9 . The apparatus of claim 5 , wherein the packet processor is further operable to store an original value of the destination value of the header before the destination value is set by the packet processor. 10 . The apparatus of claim 5 , further comprising a routing table stored at the network switch and comprising an outgoing network address and an outgoing port number associated with the outgoing network address. 11 . A method of managing a service function chain, the method comprising: receiving a chain description and a key size at a controller, wherein the chain description comprises a chain ID and a plurality of identifiers, and wherein each identifier is associated with a service function; calculating a gap value based on the key size and a count of identifiers in the chain description; associating an index with each identifier of said plurality of identifiers, wherein indexes are calculated based on the gap value; and generating a respective chain table for each identifier comprising the chain ID and at least one index associated with the identifier. 12 . The method of claim 11 , wherein the chain description further comprises a start marker and an end marker. 13 . The method of claim 12 , wherein the chain table further comprises a next index and a next identifier. 14 . The method of claim 11 , wherein the calculating the gap value comprises using the formula floor(2 key size /chain_length). 15 . The method of claim 11 , further comprising: receiving an insertion instruction at the controller, wherein the insertion instruction comprises the chain ID; an insertion identifier; an insertion index; and a next insertion identifier; modifying a first entry of a first chain table associated with the insertion identifier to create a first modified entry, wherein the first modified entry comprises the next insertion identifier and a first next index associated with the next insertion identifier, wherein a first chain ID of the first entry matches the chain ID and a first index of the entry matches the insertion index; and creating a second entry in a second chain table associated with the next insertion identifier, wherein a second chain ID of the second entry matches the chain ID. 16 . The method of claim 11 , further comprising: receiving a substitute instruction at the controller, wherein the substitute instruction comprises: the chain ID; a first target identifier; a first target index; and a substitute identifier; modifying a first entry of a first chain table to create a modified first entry, wherein the modified first entry comprises the substitute identifier, a first chain ID of the first entry matches the chain ID, and a first next identifier of the entry matches the target next identifier; deleting a second entry of a second chain table, wherein a second chain ID of the second entry matches the chain ID and a second index of the second entry matches the target index; and creating a third entry in a third chain table, wherein the third entry comprises the chain ID and the target index. 17 . The method of claim 11 , further comprising generating a mapping table comprising a plurality of network addresses and a plurality of port numbers, wherein each network address is associated with one port number. 18 . The method of claim 17 , further comprising configuring a plurality of network switches using the controller based on the mapping table. 19 . The method of claim 17 , wherein the network addresses comprise at least one of an IP address and a MAC address. 20 . The method of claim 17 , further comprising transferring an incoming packet from a first service function to a second service function using chain tables and the mapping table. 21 . The m
Organization of routing tables · CPC title
Ensuring consistency of routing table updates, e.g. by using epoch numbers · CPC title
Address table lookup; Address filtering · CPC title
Related publications grouped by family.
Answers are generated from the same data shown on this page.