Technology is rapidly changing and improving, especially in the field of networking. As such systems designed to transmit information over networks must be able to adapt to changing technologies without having to be replaced.
Information may be transmitted over a network by breaking the information down into smaller data units called packets, and included with the packets, may be header information pertaining to the processing of the packets. Packet processing may refer to the processing of packets as they are received at a switch or other network device. One or more packet processing actions may typically be determined based upon various fields included in the packet. Actions may include, for example, prioritizing the packet, determining a class of service for the packet, editing the packet, forwarding the packet to a selected output port, etc.
As technology and standards change or evolve, various fields and packet formats may change to accommodate new protocols or technologies. Unfortunately, many of the current packet processing techniques tend to be relatively inflexible, and may be unable to easily adapt to new protocols, fields, and packet formats.