On Wed, Sep 06, 2017 at 04:03:29PM +0800, Hannes Frederic Sowa wrote: > "Yang, Yi" <yi.y.y...@intel.com> writes: > >> > >> > If you check GENEVE implementation, tun_metadata* can be set or matched > >> > as any other match field. > >> > >> Yes, I wrote that in my previous mail. I wonder why NSH context metadata > >> is not in tun_metadata as well? > > > > tun_metadata is tunnel metadata, GENEVE needs tunnel port, but NSH is > > not so, NSH can't directly use tun_metadata, for MD type 2, we need to a > > lot of rework on tun_metadata to make it shared between GENEVE and NSH, > > I don't think this can happen in near term. So tun_metadata isn't option > > for this now. > > Sorry, I couldn't follow you. Why can't you store the context headers in > tun_metadata exactly?
tun_metadata can work only if in_port and out_port are GENEVE tunnel port, it is designed specially for GENEVE, Eth+NSH can work without any tunnel port involved, context headers for NSH are not tunnel metadata, they aren't tunnel-specific, you can't treat them as same thing. In addtition, tun_metadata also can be matched and set, they have the same issue as you concern. > > [...] > > Bye, > Hannes