Currently, several stages / tables in DASH directly uses the headers to lookup entries, such as direction. inbound routing, and etc. It it ok currently, because DASH only accepts traffic with a single layer and a single type of encap. However, once we start to handle multiple layers and types of encaps, it will make the pipeline very complicated.
This change refactors the pipeline to add a pre-pipeline stage to preprocess the underlay and overlay data for pipeline lookup and actions, so we can keep the rest of the pipeline more future-proof.
Currently, several stages / tables in DASH directly uses the headers to lookup entries, such as direction. inbound routing, and etc. It it ok currently, because DASH only accepts traffic with a single layer and a single type of encap. However, once we start to handle multiple layers and types of encaps, it will make the pipeline very complicated.
This change refactors the pipeline to add a pre-pipeline stage to preprocess the underlay and overlay data for pipeline lookup and actions, so we can keep the rest of the pipeline more future-proof.