Patent application number | Description | Published |
20090051646 | Flexible Electrophoretic-Type Display - An electrophoretic-type display device including an array of microcells, where each microcell is formed by a microwell containing a quantity of ink and a polymer-based membrane connected to upper edges of the microwell. The membrane is formed by curing an aqueous or hydroalcoholic sealing solution that is overcoated on the ink-filled microwells. The ink includes an isoparaffinic-based or oil-based suspension fluid, and the peripheral side walls of the microwell have a surface energy in the range of 20 to 30 mN/m. The microwell material serves two purposes: to prevent displacement (floating) of the relatively light ink solution above the relatively heavy sealing solution, and to facilitate reliable attachment between the polymer membrane and microwell walls during subsequent curing. | 02-26-2009 |
20090141338 | TONER COMPOSITIONS FOR DRY-POWDER ELECTROPHORETIC DISPLAYS - Toner particles and a dry-powder electrophoretic display employing such particles are disclosed herein. The toner particles adapted for a dry-powder electrophoretic display comprise emulsion/aggregation particles having a negative charge. At least a portion of the toner particles include a surface coating, comprising a methacrylate polymer, disposed on the surface of the toner particles to impart a positive charge to a set of toner particles. The emulsion/aggregation toner particles have a particle size generally less than about 10 micrometers that allows for improved image quality as compared to conventional toners utilized in dry-powder electrophoretic displays. | 06-04-2009 |
20100140442 | Oblique Parts or Surfaces - Various structures, such as microstructures and wall-like structures, can include parts or surfaces that are oblique. In some implementations, a cantilevered element includes a spring-like portion with a uniformly oblique surface or with another artifact of an oblique radiation technique. In some implementations, when a deflecting force is applied, a spring-like portion can provide deflection and spring force within required ranges. Various oblique radiation techniques can be used, such as radiation of a layer through a prism, and structures having spring-like portions with oblique radiation artifacts can be used in various applications, such as with downward or upward deflecting forces. | 06-10-2010 |
20100144216 | Oblique Parts or Surfaces - Various structures, such as microstructures and wall-like structures, can include parts or surfaces that are oblique. In some implementations, a cantilevered element includes a spring-like portion with a uniformly oblique surface or with another artifact of an oblique radiation technique. In some implementations, when a deflecting force is applied, a spring-like portion can provide deflection and spring force within required ranges. Various oblique radiation techniques can be used, such as radiation of a layer through a prism, and structures having spring-like portions with oblique radiation artifacts can be used in various applications, such as with downward or upward deflecting forces. | 06-10-2010 |
20130008869 | Oblique Parts or Surfaces - Various structures, such as microstructures and wall-like structures, can include parts or surfaces that are oblique. In some implementations, a cantilevered element includes a spring-like portion with a uniformly oblique surface or with another artifact of an oblique radiation technique. In some implementations, when a deflecting force is applied, a spring-like portion can provide deflection and spring force within required ranges. Various oblique radiation techniques can be used, such as radiation of a layer through a prism, and structures having spring-like portions with oblique radiation artifacts can be used in various applications, such as with downward or upward deflecting forces. | 01-10-2013 |
20150110954 | Method of Fabricating a Card with Piezo-Powered Indicator by Printed Electronics Processes - An interactive card or the like employs a piezoelectric charge generator (piezo-strip) for temporarily driving an indicator. The piezo-strip may be displaced (bent) in order to generate charge to drive the indicator. Printed electronic processes are utilized to produce the indicator and/or the piezoelectric charge generator The need for a printed battery or supplemental power source is obviated. The card may carry printed indicia which corresponds to the states of the indicator (e.g., indication of a test answer selection). Multiple display elements and selector switches may provide multiple indicator states. Multiple piezo-strips may provide a selection function as well as a rest function. Applications include business cards, greeting cards and novelty items, toys and games, advertising and promotions, testing and education, sensors, and so forth. | 04-23-2015 |
Patent application number | Description | Published |
20110107928 | DIGITAL PRINTING PLATE AND SYSTEM WITH ELECTROSTATICALLY LATCHED DEFORMABLE MEMBRANES - A printing surface includes a substrate having latching electrodes on a first surface, a spacer layer on the first surface of the substrate, the spacer layer patterned to form wells such that the latching electrodes reside in the wells, a deformable membrane, the membrane having conductive regions, on the spacer layer to enclose the wells, each enclosed well and its associated region of the membrane forming a pixel membrane, and actuation circuitry to actuate the electrodes to cause selected ones of the pixel membranes to remain in a deflected state when the pixel membranes receive an impulse to return to an undeflected state. | 05-12-2011 |
20110271857 | PRINTING SYSTEM EMPLOYING DEFORMABLE POLYMER PRINTING PLATES - A printing plate has a substrate, an array of cells on the substrate, wherein each cell corresponds to an element of a print image, a deformable polymer material localized into the cells such that each cell is at least partially formed from the deformable polymer material, a reservoir corresponding to each cell to collect the deformable polymer material as needed when the deformable polymer material is one of either melted or softened, and a heater to cause the deformable polymer material to either melt or soften. A method of forming a printing plate provides an array of cells, first heats the array of cells such that the deformable polymer material does one of either melts or softens, actuates the cells in the array to assume a deformed state, cools the array of cells to solidify the cells in the deformed state, second heats the cells such that the deformable polymer material in selected ones of the cells does one of either soften or melt and return to a less deformed state to form a printing pattern, and cools the surface to solidify the deformable polymer material in the printing pattern. A method of forming a printing plate provides an array of cells, heats the array of cells such that the deformable polymer material softens, actuates selected ones of the cells to deform surfaces of the selected ones to form a printing pattern, and cools the array of cells to solidify the printing pattern into a printing plate. | 11-10-2011 |
20120302046 | ELECTRONIC CIRCUIT STRUCTURE AND METHOD FOR FORMING SAME - A thin film transistor (TFT) structure is implemented. This embodiment is much less sensitive than conventional TFTs to alignment errors and substrate distortion. In such a configuration, there is no need to define gate features, so the layout is simplified. Moreover, the gate layer may be patterned by several inexpensive printing or non-printing methods. | 11-29-2012 |
20120322214 | METHOD AND STRUCTURE FOR ESTABLISHING CONTACTS IN THIN FILM TRANSISTOR DEVICES - The roughness and structural height of printed metal lines is used to pin a fluid. This fluid deposits a top contact material which is connected to the bottom printed contacts through pinholes in the hydrophobic polymer layer. This results in a sandwich-like contact structure achieved in a self-aligned deposition process and having improved source-drain contact for all-additive printed circuits. In one form, the present technique is used for thin film transistor applications, but it may be applied to electrodes in general. | 12-20-2012 |
Patent application number | Description | Published |
20140067945 | Sharing Television and Video Programming Through Social Networking - In particular embodiments a social networking system captures data associated with video content provided to a first user of a social-networking system, identifies, using the captured data, the video content provided to the first user, and updates a graph of the social-networking system to associate the first user with the identified video content. The graph of the social-networking system has a plurality of nodes and edges connecting the nodes. The nodes of the graph include user nodes that are each associated with a particular user of the social-networking system. | 03-06-2014 |
20140067946 | Sharing Television and Video Programming Through Social Networking - In particular embodiments, a social networking system queries a social graph of the social-networking system for social content associated with video content provided to one or more users of the social-networking system and accesses privacy settings associated with each of the one or more users. The privacy settings indicate whether a particular user has authorized the social-networking system to share social content associated with the particular user with one or more third parties. The social networking system provides the social content associated with video content provided to the one or more users to a particular third party if the privacy settings of the one or more users indicate that the one or more users have authorized the social-networking system to share the social content with one or more third parties. | 03-06-2014 |
20140067947 | Sharing Television and Video Programming Through Social Networking - In particular embodiments, one or more computer systems of a social-networking system identify a user viewing video content on a first display device, identify the video content being viewed on the first display device by the user, and determine a second display device associated with the identified user. The one or more computer systems of the social-networking system determine an action related to the video content being viewed by the user on the first display device and provide one or more instructions to the determined second display device to display a call-to-action associated with the determined action. | 03-06-2014 |
20140067961 | Sharing Television and Video Programming Through Social Networking - In particular embodiments, one or more computer systems of a social-networking system determine available media content from one or more content sources and query a social graph of a social-networking system for social content associated with a user of the social-networking system. The social graph includes nodes and edges connecting the nodes. The nodes include user nodes that are each associated with a particular user of the social-networking system. The one or more computer systems of the social-networking system determine, using the social content and the available media content, a plurality of social coefficients for the user, determine, based on the determined social coefficients, recommended media content for the user, and provide the recommended media content for display in a programming guide on a display device. | 03-06-2014 |
20140068692 | Sharing Television and Video Programming Through Social Networking - In particular embodiments, one or more computer systems of a social-networking system receive a first video stream from a content source, receive social content from a social graph of the social-networking system, and generate an overlay area comprising at least a portion of the social content. The social graph includes a plurality of nodes and edges connecting the nodes, the nodes comprising user nodes that are each associated with a particular user of the social-networking system. The one or more computer systems of the social-networking system determine a placement for the overlay area within the first video stream, generate a modified video stream using at least the first video stream and the overlay area, and provide the modified video stream for display on a display device. The overlay area is placed within the modified video stream according to the determined placement. | 03-06-2014 |
Patent application number | Description | Published |
20090120446 | METHODS AND SYSTEMS FOR IMPROVING AIRWAY PATENCY - An oral device for improving airway patency comprises a tongue constraint and a negative pressure source. The tongue constraint engages the patient's tongue to maintain a clear region below the palate in an oral cavity. By applying a negative pressure in the clear region, an airway behind the soft palate or tongue of the patient can be maintained. The tongue constraint is usually connected to an anchor. The anchor may be held between the patient's teeth or may engage the inferior surface of the palate. Another oral device for improving airway patency comprises a lateral tongue structure and a negative pressure source. | 05-14-2009 |
20110220124 | METHODS AND SYSTEMS FOR IMPROVING AIRWAY PATENCY - An oral device for improving airway patency comprises a tongue constraint and a negative pressure source. The tongue constraint engages the patient's tongue to maintain a clear region below the palate in an oral cavity and allow an anterior portion of the tongue to rise. By applying a negative pressure in the clear region, an airway behind the soft palate or tongue of the patient can be maintained. The tongue constraint is usually connected to an anchor. The anchor may be held between the patient's teeth or may engage the inferior surface of the palate. Another oral device for improving airway patency comprises a lateral tongue structure and a negative pressure source. | 09-15-2011 |
20120132215 | METHODS AND SYSTEMS FOR IMPROVING AIRWAY PATENCY - An oral device for improving airway patency comprises a tongue constraint and a negative pressure source. The tongue constraint engages the patient's tongue to maintain a clear region below the palate in an oral cavity. By applying a negative pressure in the clear region, an airway behind the soft palate or tongue of the patient can be maintained. The tongue constraint is usually connected to an anchor. The anchor may be held between the patient's teeth or may engage the inferior surface of the palate. Another oral device for improving airway patency comprises a lateral tongue structure and a negative pressure source. | 05-31-2012 |
20130186411 | ORAL DEVICE FOR MANDIBULAR ADVANCEMENT AND MEDIAL TONGUE CONSTRAINT - An oral device for temporary placement in a patient's oral cavity includes upper and lower jaw braces and a tongue-engaging member. The upper and lower jaw braces are connected so that the lower jaw brace is advanced in an anterior direction relative to the upper jaw brace when the upper and lower jaw braces are closed together. A partial vacuum is drawn in the oral cavity and the vacuum and lower jaw displacement together control the position of the tongue in order to clear the patient's airway to reduce sleep apnea or treat other conditions. | 07-25-2013 |
20130213409 | AIRWAY DEVICE WITH TONGUE-ENGAGING MEMBER - An oral device for improving airway patency comprises a base adapted to be held between a patient's upper and lower teeth and a tongue-engaging member. The tongue-engaging member engages the tongue and displaces the tongue anteriorly when the base is held between the patient's teeth. A vacuum is applied through the base and the tongue-engaging member in order to draw the soft palate against a posterior region of the tongue in order to stabilize the soft palate and open or clear the patient's airway. | 08-22-2013 |
20130263866 | METHODS AND SYSTEMS FOR IMPROVING AIRWAY PATENCY - An oral device for improving airway patency comprises a tongue constraint and a negative pressure source. The tongue constraint engages the patient's tongue to maintain a clear region below the palate in an oral cavity and allow an anterior portion of the tongue to rise. By applying a negative pressure in the clear region, an airway behind the soft palate or tongue of the patient can be maintained. The tongue constraint is usually connected to an anchor. The anchor may be held between the patient's teeth or may engage the inferior surface of the palate. Another oral device for improving airway patency comprises a lateral tongue structure and a negative pressure source. | 10-10-2013 |
20140053849 | ORAL DEVICE FOR ANTERIOR ADVANCEMENT AND MEDIAL CONSTRAINT OF THE TONGUE - An oral device for temporary placement in a patient's oral cavity includes a base, a tongue-engaging member and a tongue pocket. Partial vacuums are separately drawn through the tongue-engaging member and the tongue pocket in order to advance and control the position of the tongue in order to clear the patient's airway to reduce sleep apnea or treat other conditions. | 02-27-2014 |
20140135664 | AIRWAY DEVICE WITH TONGUE-ENGAGING MEMBER - An oral device for improving airway patency comprises a base adapted to be held between a patient's upper and lower teeth and a tongue-engaging member. The tongue-engaging member engages the tongue and displaces the tongue anteriorly when the base is held between the patient's teeth. A vacuum is applied through the base and the tongue-engaging member in order to draw the soft palate against a posterior region of the tongue in order to stabilize the soft palate and open or clear the patient's airway. | 05-15-2014 |
20150157492 | METHODS AND SYSTEMS FOR IMPROVING AIRWAY PATENCY - An oral device for improving airway patency comprises a tongue constraint and a negative pressure source. The tongue constraint engages the patient's tongue to maintain a clear region below the palate in an oral cavity and allow an anterior portion of the tongue to rise. By applying a negative pressure in the clear region, an airway behind the soft palate or tongue of the patient can be maintained. The tongue constraint is usually connected to an anchor. The anchor may be held between the patient's teeth or may engage the inferior surface of the palate. Another oral device for improving airway patency comprises a lateral tongue structure and a negative pressure source. | 06-11-2015 |
20160106571 | ORAL DEVICE FOR MANDIBULAR ADVANCEMENT AND MEDIAL TONGUE CONSTRAINT - An oral device for temporary placement in a patient's oral cavity includes upper and lower jaw braces and a tongue-engaging member. The upper and lower jaw braces are connected so that the lower jaw brace is advanced in an anterior direction relative to the upper jaw brace when the upper and lower jaw braces are closed together. A partial vacuum is drawn in the oral cavity and the vacuum and lower jaw displacement together control the position of the tongue in order to clear the patient's airway to reduce sleep apnea or treat other conditions. | 04-21-2016 |
Patent application number | Description | Published |
20080287944 | TISSUE ABLATION APPARATUS AND METHOD - A method and apparatus for carrying our thermal ablation of target tissue is disclosed. The apparatus includes an RF ablation device having a multi-electrode electrode assembly designed to be deployed in target tissue, defining a selected-volume tissue region to be ablated, and having infusion channels for infusing a liquid into the target tissue during the ablation process. A control unit in the apparatus is operably connected to an RF energy source, for controlling the RF power level supplied to the electrodes, and to an infusion device, for controlling the rate of infusion of a liquid through the device into the tissue. During both electrode deployment and tissue ablation, impedance and or temperature measurements made within the tissue are used to control the RF source and infusion device, for optimizing the time and extent of tissue ablation. | 11-20-2008 |
20080312650 | Thermal Ablation of Biological Tissue - An ablation device is described comprising an introducer and an electrode array. The electrode array couples to a distal end of the introducer. The electrode array includes a center member having a distal end configured to penetrate tissue and a plurality of electrodes. Proximal and distal ends of each electrode are relatively fixed. The electrodes are dynamically configurable from a retracted state to a deployed state in which the electrodes form a relatively spherical shape in a tissue volume. | 12-18-2008 |
20080319436 | Devices and Methods for Thermal Ablation of Biological Tissue Using Geometric Ablation Patterns - A tissue ablation system including numerous components and methods is described herein for encircling target tissue and generating tissue ablation volumes in various biological tissues. The biological tissue includes tissue of a variety of organs of the human body including the liver, spleen, kidney, lung, breast and other organs, but is not so limited. The tissue ablation device comprises an energy source and at least one trocar coupled to the energy source, the trocar having a body, a proximal end, and a distal end. The trocar carries an electrode array that comprises a plurality of electrodes, each electrode of the plurality of electrodes is configured to extend from the trocar when moved from a retracted state to a deployed state, and to have at least one radius of curvature in the deployed state so that the electrode array forms a series of shaped electrodes in the deployed state. | 12-25-2008 |
20130197317 | Detachably-mountable, compact, light for surgical and diagnostic devices - A detachable light for use in combination with surgical and diagnostic devices. The detachable light incorporates multiple functions into a minimum number of elements in the housing of the detachable light. The housing includes aligning gripping elements which align the light to a functional centerline of the surgical or diagnostic device. The housing includes multiple light sources on its exterior surface, where the direction of light output may be adjusted. Exterior surfaces of the detachable light which are in contact with patient tissue are formed from an atraumatic material. | 08-01-2013 |
20160038228 | THERMAL HEMOSTASIS AND/OR COAGULATION OF TISSUE - Energy delivery systems and methods are provided for use in biological tissue. The energy delivery system includes an energy source and an electrode array. The electrode array includes bipolar electrodes positioned so a first spacing between a pair of adjacent electrodes is different relative to a second spacing between at least one other pair of adjacent electrodes. The electrode array and the energy source are coupled and configured to generate uniform energy density in target tissue according to impedance of the target tissue. | 02-11-2016 |
20160128761 | DEVICES AND METHODS FOR THERMAL ABLATION OF BIOLOGICAL TISSUE USING GEOMETRIC ABLATION PATTERNS - A tissue ablation system including numerous components and methods is described herein for encircling target tissue and generating tissue ablation volumes in various biological tissues. The biological tissue includes tissue of a variety of organs of the human body including the liver, spleen, kidney, lung, breast and other organs, but is not so limited. The tissue ablation device comprises an energy source and at least one trocar coupled to the energy source, the trocar having a body, a proximal end, and a distal end. The trocar carries an electrode array that comprises a plurality of electrodes, each electrode of the plurality of electrodes is configured to extend from the trocar when moved from a retracted state to a deployed state, and to have at least one radius of curvature in the deployed state so that the electrode array forms a series of shaped electrodes in the deployed state. | 05-12-2016 |
Patent application number | Description | Published |
20140253455 | TASK ASSISTANT PROVIDING CONTEXTUAL SUGGESTIONS - A method of providing a task assistant to provide an interface to an application is described. The method comprises, in one embodiment, providing a task assistant to provide an interface to an application, to receive input from a user through multimodal input including a plurality of speech input, typing input, and touch input. The method further comprises receiving a request from a user for a suggestion, determining a current transaction state, based on interactions with the user during a current session, and selecting suggestions relevant to a transaction type associated with the current transaction state. | 09-11-2014 |
20140258323 | TASK ASSISTANT - A method of providing a task assistant to provide an interface to an application is described. The method comprises receiving input from a user through multimodal input including a plurality of speech input, typing input, and touch input, interpreting the input, and providing a formatted query to the application, receiving data from the application in response to the query, and providing a response to the user through multimodal output including a plurality of: speech output, text output, non-speech audio output, haptic output, and visual non-text output. | 09-11-2014 |
20140258324 | TASK ASSISTANT UTILIZING CONTEXT FOR IMPROVED INTERACTION - A method of providing a task assistant is described. The task assistant is designed to receive input from a user through multimodal input including a plurality of speech input, typing input, and touch input, determine the meaning of the input, and determining whether there is a context based on prior interactions with the user. The method further to generate an interpreted input based on a combination of the input and the context, and providing a formatted query to an application. The method further to receive data from the application in response to the formatted query, and provide a response to the user through multimodal output including a plurality of: speech output, text output, non-speech audio output, haptic output, and visual non-text output. The method further to update the context based on the interpreted input. | 09-11-2014 |
20140258855 | TASK ASSISTANT INCLUDING IMPROVED NAVIGATION - A method of providing a task assistant to provide an interface to an application is described. The method includes, in one embodiment, receiving input from a user through multimodal input including a plurality of each input, typing input, and touch input, interpreting the input, and providing a formatted query to the application, and receiving data from the application in response to the query. The method further includes identifying a destination providing a response to the query, identifying an anchor pointing to a specific location in the application associated with the response to the query, and directing the user to the specific location, using the anchor, the specific location providing a response to the user. | 09-11-2014 |
20140258857 | TASK ASSISTANT HAVING MULTIPLE STATES - A method of providing a task assistant to provide an interface to an application, the method comprising activating the task assistant, the activation having an associated visual display. The method in one embodiment includes receiving input from a user through multimodal input including a plurality of speech input, typing input, and touch input, interpreting the input, and providing a formatted query to the application, receiving data from the application in response to the query, and providing a response to the user through multimodal output including a plurality of: speech output, text output, non-speech audio output, haptic output, and visual non-text output, wherein the task assistant has a plurality of active states, each of the active states having an associated visual display. | 09-11-2014 |
20140259126 | BIOMETRIC AUTHORIZATION FOR REAL TIME ACCESS CONTROL - A method of providing biometric authorization comprising enabling a user to log into an account, and determining whether there is a hold on the account. When there is a hold on the account, informing the user of the hold, and enabling the user to respond to a transaction that caused the hold. The method, in one embodiment further comprising prompting the user to enter a biometric authentication, in conjunction with the response, and processing the unblock request in real-time upon receiving and validating the biometric authentication. | 09-11-2014 |
20160062604 | VIRTUAL ASSISTANT DEVELOPMENT SYSTEM - In accordance with aspects of the disclosure, a computing device may provide a user interface for developing an interactive natural-language response system, which may include a virtual assistant. A user may interact with a system using spoken, written (e.g., text), or other input methods. The user interface may allow a user to associate sentences with intents, tag words within the sentences with concepts, and construct a grammar using the associated intents and tagged concepts. The system may use the grammar for automatically predictively associating sentences with intents and words with concepts. The system may display in the foam of a chat transcript a single branch of a tree of a discussion between the virtual assistant and a user. The user interface may graphically display variable values to assist a user to test system responses under different simulated conditions. | 03-03-2016 |
Patent application number | Description | Published |
20110134925 | Switching Apparatus and Method Based on Virtual Interfaces - A network device comprises a plurality of physical ports, and a packet processing pipeline coupled to the plurality of physical ports. The packet processing pipeline is configured to assign a virtual port from a plurality of virtual ports to a packet received via one of the physical ports, wherein a quantity of the plurality of virtual ports is larger than a quantity of the plurality of physical ports, and wherein, for each of at least some of the physical ports, multiple virtual ports correspond to one physical port. The packet processing pipeline is also configured to assign a virtual domain from a plurality of virtual domains to the packet based on the assigned virtual port, and process the packet based on one or more of i) the assigned virtual port, ii) the assigned virtual domain, and iii) a header field of the packet, including determining zero, one, or more physical ports to which the packet is to be forwarded. | 06-09-2011 |
20130209103 | METHOD AND APPARATUS FOR DYNAMICALLY ALLOCATING BANDWIDTH TO A CLIENT IN A PASSIVE OPTICAL NETWORK - Embodiments of the present disclosure provide methods for allocating bandwidth to a plurality of traffic containers of a passive optical network. The method comprises receiving upstream data from a plurality of traffic containers of the passive optical network and passing the upstream data to a traffic manager. The method further comprises dynamically changing the allocated bandwidth based at least in part on the amount of the upstream data stored in one or more queues of the traffic manager. | 08-15-2013 |
20130212670 | Intelligent PHY with security detection for ethernet networks - A physical layer device includes memory, a memory control module, and a physical layer module. The memory control module is configured to control access to the memory. The physical layer module is configured to store packets in the memory via the memory control module. The physical layer module includes an interface configured to receive the packets from a network device via a network and an interface bus. The interface bus includes at least one of a control module and a regular expression module. The at least one of the control module and the regular expression module is configured to inspect the packets to determine a security level of the packets. A network interface is configured to, based on the security level, provide the packets to a device separate from the physical layer device. | 08-15-2013 |
20140119370 | SWITCHING APPARATUS AND METHOD BASED ON VIRTUAL INTERFACES - A network device comprises a plurality of physical ports and a packet processing pipeline. The packet processing pipeline is configured to assign a virtual port from a plurality of virtual ports to a packet received via one of the physical ports, wherein a quantity of the virtual ports is larger than a quantity of the physical ports, and wherein, for each of at least some of the physical ports, multiple virtual ports correspond to one physical port. The packet processing pipeline is also configured to assign a virtual domain from a plurality of virtual domains to the packet based on the assigned virtual port, and process the packet based on one or more of i) the assigned virtual port, ii) the assigned virtual domain, and iii) a header field of the packet, including determining zero, one, or more physical ports to which the packet is to be forwarded. | 05-01-2014 |
20140321467 | Apparatus and Method for Table Search with Centralized Memory Pool in a Network Switch - A network switch includes packet processing units in a first processor core. An interface module is connected to the packet processing units. The interface module supports a unified table search request interface and a unified table search response interface. A common memory pool is connected to the interface module. The common memory pool includes a variety of memory types configurable to support multiple parallel table search requests. | 10-30-2014 |
20140369363 | Apparatus and Method for Uniquely Enumerating Paths in a Parse Tree - A method includes constructing a graph characterizing a set of packet headers associated with network traffic. The graph has a unique identifier for each possible combination of packet headers forming a path in the graph. A received packet is associated with a unique identifier in the graph. Characteristics of the received packet are reconstructed based upon the unique identifier. | 12-18-2014 |
20150186143 | METHOD AND APPARATUS FOR PARALLEL AND CONDITIONAL DATA MANIPULATION IN A SOFTWARE-DEFINED NETWORK PROCESSING ENGINE - Embodiments of the present invention relate to fast and conditional data modification and generation in a software-defined network (SDN) processing engine. Modification of multiple inputs and generation of multiple outputs can be performed in parallel. A size of each input or output data can be large, such as in hundreds of bytes. The processing engine includes a control path and a data path. The control path generates instructions for modifying inputs and generating new outputs. The data path executes all instructions produced by the control path. The processing engine is typically programmable such that conditions and rules for data modification and generation can be reconfigured depending on network features and protocols supported by the processing engine. The SDN processing engine allows for processing multiple large-size data flows and is efficient in manipulating such data. The SDN processing engine achieves full throughput with multiple back-to-back input and output data flows. | 07-02-2015 |
20150186516 | APPARATUS AND METHOD OF GENERATING LOOKUPS AND MAKING DECISIONS FOR PACKET MODIFYING AND FORWARDING IN A SOFTWARE-DEFINED NETWORK ENGINE - Embodiments of the present invention relate to a Lookup and Decision Engine (LDE) for generating lookup keys for input tokens and modifying the input tokens based on contents of lookup results. The input tokens are parsed from network packet headers by a Parser, and the tokens are then modified by the LDE. The modified tokens guide how corresponding network packets will be modified or forwarded by other components in a software-defined networking (SDN) system. The design of the LDE is highly flexible and protocol independent. Conditions and rules for generating lookup keys and for modifying tokens are fully programmable such that the LDE can perform a wide variety of reconfigurable network features and protocols in the SDN system. | 07-02-2015 |
20150187419 | METHOD AND SYSTEM FOR RECONFIGURABLE PARALLEL LOOKUPS USING MULTIPLE SHARED MEMORIES - Embodiments of the present invention relate to multiple parallel lookups using a pool of shared memories by proper configuration of interconnection networks. The number of shared memories reserved for each lookup is reconfigurable based on the memory capacity needed by that lookup. The shared memories are grouped into homogeneous tiles. Each lookup is allocated a set of tiles based on the memory capacity needed by that lookup. The tiles allocated for each lookup do not overlap with other lookups such that all lookups can be performed in parallel without collision. Each lookup is reconfigurable to be either hash-based or direct-access. The interconnection networks are programmed based on how the tiles are allocated for each lookup. | 07-02-2015 |
20150188848 | MATRIX OF ON-CHIP ROUTERS INTERCONNECTING A PLURALITY OF PROCESSING ENGINES AND A METHOD OF ROUTING USING THEREOF - Embodiments of the present invention relate to a scalable interconnection scheme of multiple processing engines on a single chip using on-chip configurable routers. The interconnection scheme supports unicast and multicast routing of data packets communicated by the processing engines. Each on-chip configurable router includes routing tables that are programmable by software, and is configured to correctly deliver incoming data packets to its output ports in a fair and deadlock-free manner. In particular, each output port of the on-chip configurable routers includes an output port arbiter to avoid deadlocks when there are contentions at output ports of the on-chip configurable routers and to guarantee fairness in delivery among transferred data packets. | 07-02-2015 |
20150347313 | METHOD AND APPARATUS FOR TABLE AGING IN A NETWORK SWITCH - Embodiments of the present invention relate to a centralized table aging module that efficiently and flexibly utilizes an embedded memory resource, and that enables and facilitates separate network controllers. The centralized table aging module performs aging of tables in parallel using the embedded memory resource. The table aging module performs an age marking process and an age refreshing process. The memory resource includes age mark memory and age mask memory. Age marking is applied to the age mark memory. The age mask memory provides per-entry control granularity regarding the aging of table entries. | 12-03-2015 |
20150350089 | METHOD AND APPARATUS FOR FLEXIBLE AND EFFICIENT ANALYTICS IN A NETWORK SWITCH - Embodiments of the present invention relate to a centralized network analytic device, the centralized network analytic device efficiently uses on-chip memory to flexibly perform counting, traffic rate monitoring and flow sampling. The device includes a pool of memory that is shared by all cores and packet processing stages of each core. The counting, the monitoring and the sampling are all defined through software allowing for greater flexibility and efficient analytics in the device. In some embodiments, the device is a network switch. | 12-03-2015 |
20150372860 | METHOD OF REDUCING LATENCY IN A FLEXIBLE PARSER AND AN APPARATUS THEREOF - Embodiments of the apparatus for reducing latency in a flexible parser relate to an implementation that optimizes each parser engine within the parser. A packet enters the parser. Each of the parser engines processes the packet if processing is required. Otherwise, the parser engine simply forwards the packet through without processing the packet, thereby reducing latency. Each parser engine includes a memory. The memory stores bypass data and status information that indicates whether parsing for this packet is completed and, thus, no further processing is required by subsequent parser engines. Each parser engine also includes a counter, which is incremented whenever a packet enters the parser engine and is decremented whenever a packet exists the parser engine. A packet bypasses the parser engine based on the counter of the parser engine and the status information of that packet. | 12-24-2015 |
20150373155 | METHOD OF MODIFYING PACKETS TO A GENERIC FORMAT FOR ENABLING PROGRAMMABLE MODIFICATIONS AND AN APPARATUS THEREOF - Embodiments of the apparatus for modifying packet headers relate to a rewrite engine that represents each protocol header of packets in a generic format specific to that protocol to enable programmable modifications of packets, resulting in hardware and software flexibility in modifying packet headers. Software programs generic formats in a hardware table for various protocols. The rewrite engine is able to detect missing fields from a protocol header and is able to expand the protocol header to a maximum size such that the protocol header contains all possible fields of that protocol. Each of the fields has the same offset irrespective of which variation of the protocol the protocol header corresponds to. In a bit vector, all newly added fields are marked invalid (represented by 0), and all existing fields are marked valid (represented by 1). Software modification commands allow data to be replaced, removed and inserted. | 12-24-2015 |
20150373156 | METHOD OF USING A UNIQUE PACKET IDENTIFIER TO IDENTIFY STRUCTURE OF A PACKET AND AN APPARATUS THEREOF - Embodiments of the apparatus for modifying packet headers relate to a packet generalization scheme that maintains information across protocol layers of packets. The packet generalization scheme uses a protocol table that includes layer information for all possible protocol layer combinations. The protocol layer combinations in the protocol table are manually configured through software. Each protocol layer combination in the protocol table is uniquely identified by a PktID. A rewrite engine of a network device receives the PktID for a packet and uses that unique identifier as key to the protocol table to access information for each protocol layer of the packet that the rewrite engine requires during modification of the packet. The packet generalization scheme eliminates the need for a parser engine of the network device to pass parsed data to the rewrite engine, which is resource intensive. | 12-24-2015 |
20150373159 | METHOD OF USING GENERIC MODIFICATION INSTRUCTIONS TO ENABLE FLEXIBLE MODIFICATIONS OF PACKETS AND AN APPARATUS THEREOF - Embodiments of the apparatus for modifying packet headers relate to programmable modifications of packets by applying commands to generalized protocol headers. Each protocol header of incoming packets is represented in a generic format specific to that protocol to enable modifications to packet headers. Missing fields from a protocol header are detected, and the protocol header is expanded to a maximum size such that the protocol header contains all possible fields of that protocol, including the missing fields. Each of the fields has the same offset irrespective of which variation of the protocol the protocol header corresponds to. Modification uses a set of commands that is applied to expanded protocol headers. All of the commands are thus generic as these commands are independent of incoming headers (e.g., size and protocol). | 12-24-2015 |
20150373160 | METHOD OF USING BIT VECTORS TO ALLOW EXPANSION AND COLLAPSE OF HEADER LAYERS WITHIN PACKETS FOR ENABLING FLEXIBLE MODIFICATIONS AND AN APPARATUS THEREOF - Embodiments of the apparatus for modifying packet headers relate to a use of bit vectors to allow expansion and collapse of protocol headers within packets for enabling flexible modification. A rewrite engine expands each protocol header into a generic format and applies various commands to modify the generalized protocol header. The rewrite engine maintains a bit vector for the generalized protocol header with each bit in the bit vector representing a byte of the generalized protocol header. A bit marked as 0 in the bit vector corresponds to an invalid byte, while a bit marked as 1 in the bit vector corresponds to a valid byte. The rewrite engine uses the bit vector to remove all the invalid bytes after all commands have been operated on the generalized protocol header to thereby form a new protocol header. | 12-24-2015 |
20150373161 | METHOD OF SPLITTING A PACKET INTO INDIVIDUAL LAYERS FOR MODIFICATION AND INTELLIGENTLY STITCHING LAYERS BACK TOGETHER AFTER MODIFICATION AND AN APPARATUS THEREOF - Embodiments of the apparatus for modifying packet headers relate to pointer structure for splitting a packet into individual layers and for intelligently stitching them back together. The pointer structure includes N+1 layer pointers to N+1 protocol headers. The pointer structure also includes a total size of all headers. A rewrite engine uses the layer pointers to extract the first N corresponding protocol layers within the packet for modification. The rewrite engine uses the layer pointers to form an end point, which together with the total size of all headers is associated with a body of the headers. The body of the headers is a portion of headers that are not modified by the rewrite engine. After all the modifications are performed and modified headers are compressed, the modified layer pointers are used to stitch the modified headers back together with the body of the headers. | 12-24-2015 |
20150373163 | METHOD OF EXTRACTING DATA FROM PACKETS AND AN APPARATUS THEREOF - Embodiments of the apparatus for extracting data from packets relate to programmable layer commands that allow fields from packets to be extracted. A packet is split into individual layers. Each layer is given a unique layer type number that identifies the layer. Based on the layer type, each layer is expanded to a generic format. Each layer has a set of layer commands that is generic to that layer. Fields of each layer command are fieldOffset and fieldLen. These layer commands allow information in the packet to be extracted in a programmable manner. Extracted fields from each protocol layer are concatenated to form a token layer. All token layers are concatenated to form a final token, which is used for further processing of the packet. | 12-24-2015 |
20150373164 | METHOD OF FORMING A HASH INPUT FROM PACKET CONTENTS AND AN APPARATUS THEREOF - Embodiments of the apparatus for forming a hash input from packet contents relate to a programmable flexible solution to form hash inputs, allowing for hardware changes and for adding support for newer protocols as and when they are defined in the future. A packet is split into individual layers. Each layer is given a unique layer type number that helps identify what that layer is. Based on the layer type, each layer is expanded to a generic format. Each layer has a set of hash commands that is generic to that layer. Fields of each hash command are fieldOffset, fieldLen, hashMask, and hashMaskMSB. These hash commands allow information in the packet to be extracted in a programmable manner. The fields extracted from each protocol layer of the packet are concatenated to form a hash layer. A bit vector indicates which hash layers are used to form the hash input. | 12-24-2015 |
20150373165 | METHOD OF HANDLING LARGE PROTOCOL LAYERS FOR CONFIGURABLE EXTRACTION OF LAYER INFORMATION AND AN APPARATUS THEREOF - Embodiments of the apparatus for handling large protocol layers relate to an implementation that optimizes a field selection circuit. This implementation provides software like flexibility to a hardware parser engine in parsing packets. The implementation limits a size of each layer and splits any layer that exceeds that size into smaller layers. The parser engine extracts data from the split layers just as it would from a non-split layer and, then, concatenates the extracted data in a final result. | 12-24-2015 |
20150373166 | METHOD OF IDENTIFYING INTERNAL DESTINATIONS OF NETWORK PACKETS AND AN APPARATUS THEREOF - Embodiments of the apparatus of identifying internal destinations of network packets relate to a network chip that allows flexibility in handling packets. The handling of packets can be a function of what the packet contents are or where the packets are from. The handling of packets can also be a function of both what the packet contents are and where the packets are from. In some embodiments, where the packets are from refers to unique port numbers of chip ports that the packets arrived at. The packets can be distributed for processing within the network chip. | 12-24-2015 |
20160085475 | SESSION BASED PACKET MIRRORING IN A NETWORK ASIC - A forwarding pipeline of a forwarding engine includes a mirror bit mask vector with one bit per supported independent mirror session. Each bit in the mirror bit mask vector can be set at any point in the forwarding pipeline when the forwarding engine determines that conditions for a corresponding mirror session are met. At the end of the forwarding pipeline, if any of the bits in the mirror bit mask vector is set, then a packet, the mirror bit mask vector and a pointer to the start of a mirror destination linked list are forwarded to the multicast replication engine. The mirror destination linked list typically defines a rule for mirroring. The multicast replication engine mirrors the packet according to the mirror destination linked list and the mirror bit mask vector. | 03-24-2016 |
20160085644 | MULTICAST REPLICATION ENGINE OF A NETWORK ASIC AND METHODS THEREOF - A multicast replication engine includes a circuit implemented on a network chip to replicate packets, mirror packets and perform link switchovers. The multicast replication engine determines whether a switchover feature is enabled. If the switchover feature is not enabled, then the multicast replication engine mirrors the packet according to a mirror bit mask and to a mirror destination linked list. The mirror destination linked list corresponds to a mirroring rule. If the switchover feature is enabled, then the multicast replication engine replicates the packet according to a first live link of a failover linked list. The failover linked list corresponds to a switchover rule. The mirroring rule and the switchover rule are stored in the same table. Copies of the packet are forwarded according to a multicast rule that is represented by a hierarchical linked list with N tiers. | 03-24-2016 |
20160087808 | FAST HARDWARE SWITCHOVER IN A CONTROL PATH IN A NETWORK ASIC - A multicast destination table contains a list of links. The list of links includes the main link that is currently in use and alternate links to reach the same destination. The links in the list of links are ordered based on a metric. Each of the links is stored as an entry in the multicast destination table. A multicast replication engine traverses the list of links until an enabled link in the list of links is reached, and replicates a packet according to data associated with the enabled link in the list of links. | 03-24-2016 |
20160087809 | HIERARCHICAL HARDWARE LINKED LIST APPROACH FOR MULTICAST REPLICATION ENGINE IN A NETWORK ASIC - A multicast rule is represented in a hierarchical linked list with N tiers. Each tier or level in the hierarchical linked list corresponds to a network layer of a network stack that requires replication. Redundant groups in each tier are eliminated such that the groups in each tier are stored exactly once in a replication table. A multicast replication engine traverses the hierarchical linked list and replicates a packet according to each node in the hierarchical linked list. | 03-24-2016 |
20160134536 | HYBRID WILDCARD MATCH TABLE - Embodiments of the present invention are directed to a wildcard matching solution that uses a combination of static random access memories (SRAMs) and ternary content addressable memories (TCAMs) in a hybrid solution. In particular, the wildcard matching solution uses a plurality of SRAM pools for lookup and a spillover TCAM pool for unresolved hash conflicts. | 05-12-2016 |
20160134537 | HYBRID WILDCARD MATCH TABLE - Embodiments of the present invention are directed to a wildcard matching solution that uses a combination of static random access memories (SRAMs) and ternary content addressable memories (TCAMs) in a hybrid solution. In particular, the wildcard matching solution uses a plurality of SRAM pools for lookup and a spillover TCAM pool for unresolved hash conflicts. | 05-12-2016 |
20160142331 | PACKET SCHEDULING USING HIERARCHICAL SCHEDULING PROCESS WITH PRIORITY PROPAGATION - System and method of data routing according to a hierarchical scheduling process. Incoming data traffic is allocated to various queues of a buffer. A scheduling tree has a top level for queues, a bottom level for egress ports, and a plurality of intermediate levels corresponding to different granularities with respect to service categories. Each queue is assigned to a particular node in each intermediate level of the scheduling tree. The scheduling tree traverses through multiple scheduling stages from the bottom to the top level to select a winner node in each level based on a variety of fairness and differentiating variables. A queue associated with the winner nodes in various levels is selected for outgoing transmission at the selected egress port. Priority information is dynamically propagated from upper nodes to lower nodes such that a subsequent scheduling process uses the updated priority information. | 05-19-2016 |
20160142341 | PACKET SCHEDULING USING HIERARCHICAL SCHEDULING PROCESS - System and method of data routing according to a hierarchical scheduling process. Incoming data traffic is allocated to various queues of a buffer. A scheduling tree has a top level for queues, a bottom level for egress ports, and a plurality of intermediate levels corresponding to different granularities with respect to service categories. Each queue is assigned to a particular node in each intermediate level of the scheduling tree. The scheduling tree traverses through multiple scheduling stages from the bottom to the top level to select a winner node in each level based on a variety of fairness and differentiating variables. As a result, a queue associated with the winner nodes in various levels is selected and data from the queue is read out and sent to the selected egress port for transmission. | 05-19-2016 |