1. A method comprising: receiving a packet at a first component, at least partially implemented in hardware, of a network device; loading, by a second component, at least partially implemented in hardware, of the network device and based on the receiving the packet at the first component, a set of patterns from a first memory into a second memory to start a pattern matching session, the second memory being local to the second component; obtaining, by the first component, data from the packet; storing, by the second component, the data in a third memory, the third memory being accessible by the first component and the second component; accessing, by the second component, a portion of the data in the third memory; generating, by the second component, a result by comparing the accessed portion to the set of patterns in the second memory; matching, by the second component, another portion of the data, in the third memory, to the set of patterns, in the second memory, without further storing the data in the third memory; ending, by the first component, the pattern matching session after matching the other portion; and unloading, by the second component, the set of patterns from the second memory based on ending the pattern matching session.