1/* SPDX-License-Identifier: GPL-2.0 */
2/*
3 * Copyright IBM Corp. 2020
4 *
5 * Author(s): Alexandra Winter <wintera@linux.ibm.com>
6 *
7 * Interface for Channel Subsystem Call
8 */
9#ifndef _ASM_S390_CHSC_H
10#define _ASM_S390_CHSC_H
11
12#include <uapi/asm/chsc.h>
13
14/**
15 * Operation codes for CHSC PNSO:
16 *    PNSO_OC_NET_BRIDGE_INFO - only addresses that are visible to a bridgeport
17 *    PNSO_OC_NET_ADDR_INFO   - all addresses
18 */
19#define PNSO_OC_NET_BRIDGE_INFO		0
20#define PNSO_OC_NET_ADDR_INFO		3
21/**
22 * struct chsc_pnso_naid_l2 - network address information descriptor
23 * @nit:  Network interface token
24 * @addr_lnid: network address and logical network id (VLAN ID)
25 */
26struct chsc_pnso_naid_l2 {
27	u64 nit;
28	struct { u8 mac[6]; u16 lnid; } addr_lnid;
29} __packed;
30
31struct chsc_pnso_resume_token {
32	u64 t1;
33	u64 t2;
34} __packed;
35
36struct chsc_pnso_naihdr {
37	struct chsc_pnso_resume_token resume_token;
38	u32:32;
39	u32 instance;
40	u32:24;
41	u8 naids;
42	u32 reserved[3];
43} __packed;
44
45struct chsc_pnso_area {
46	struct chsc_header request;
47	u8:2;
48	u8 m:1;
49	u8:5;
50	u8:2;
51	u8 ssid:2;
52	u8 fmt:4;
53	u16 sch;
54	u8:8;
55	u8 cssid;
56	u16:16;
57	u8 oc;
58	u32:24;
59	struct chsc_pnso_resume_token resume_token;
60	u32 n:1;
61	u32:31;
62	u32 reserved[3];
63	struct chsc_header response;
64	u32:32;
65	struct chsc_pnso_naihdr naihdr;
66	struct chsc_pnso_naid_l2 entries[];
67} __packed __aligned(PAGE_SIZE);
68
69#endif /* _ASM_S390_CHSC_H */
70