Generate instance of GRE class with information for NVGRE (RFC7637).

    :param version: Version.
    :param vsid: Virtual Subnet ID.
    :param flow_id: FlowID.
    :return: Instance of GRE class with information for NVGRE.

def nvgre(version=0, vsid=0, flow_id=0):
    """
    Generate instance of GRE class with information for NVGRE (RFC7637).

    :param version: Version.
    :param vsid: Virtual Subnet ID.
    :param flow_id: FlowID.
    :return: Instance of GRE class with information for NVGRE.
    """

    # NVGRE header
    #  0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
    # +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    # |0| |1|0|   Reserved0     | Ver |   Protocol Type 0x6558        |
    # +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    # |               Virtual Subnet ID (VSID)        |    FlowID     |
    # +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    return gre(version=version, protocol=ether_types.ETH_TYPE_TEB,
               vsid=vsid, flow_id=flow_id)