linux-headers (unknown)

(root)/
include/
linux/
erspan.h
       1  /* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
       2  /*
       3   * ERSPAN Tunnel Metadata
       4   *
       5   * Copyright (c) 2018 VMware
       6   *
       7   * This program is free software; you can redistribute it and/or modify
       8   * it under the terms of the GNU General Public License version 2
       9   * as published by the Free Software Foundation.
      10   *
      11   * Userspace API for metadata mode ERSPAN tunnel
      12   */
      13  #ifndef _ERSPAN_H
      14  #define _ERSPAN_H
      15  
      16  #include <linux/types.h>	/* For __beXX in userspace */
      17  #include <asm/byteorder.h>
      18  
      19  /* ERSPAN version 2 metadata header */
      20  struct erspan_md2 {
      21  	__be32 timestamp;
      22  	__be16 sgt;	/* security group tag */
      23  #if defined(__LITTLE_ENDIAN_BITFIELD)
      24  	__u8	hwid_upper:2,
      25  		ft:5,
      26  		p:1;
      27  	__u8	o:1,
      28  		gra:2,
      29  		dir:1,
      30  		hwid:4;
      31  #elif defined(__BIG_ENDIAN_BITFIELD)
      32  	__u8	p:1,
      33  		ft:5,
      34  		hwid_upper:2;
      35  	__u8	hwid:4,
      36  		dir:1,
      37  		gra:2,
      38  		o:1;
      39  #else
      40  #error "Please fix <asm/byteorder.h>"
      41  #endif
      42  };
      43  
      44  struct erspan_metadata {
      45  	int version;
      46  	union {
      47  		__be32 index;		/* Version 1 (type II)*/
      48  		struct erspan_md2 md2;	/* Version 2 (type III) */
      49  	} u;
      50  };
      51  
      52  #endif /* _ERSPAN_H */