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  */
26 struct chsc_pnso_naid_l2 {
27 	u64 nit;
28 	struct { u8 mac[6]; u16 lnid; } addr_lnid;
29 } __packed;
30 
31 struct chsc_pnso_resume_token {
32 	u64 t1;
33 	u64 t2;
34 } __packed;
35 
36 struct 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 
45 struct 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[0];
67 } __packed __aligned(PAGE_SIZE);
68 
69 #endif /* _ASM_S390_CHSC_H */
70