mirror of
https://github.com/torvalds/linux.git
synced 2024-12-12 22:23:55 +00:00
4fea49a79e
Add support for operation code 3 (OC3) of the Perform-Network-Subchannel-Operations (PNSO) function of the Channel-Subsystem-Call (CHSC) instruction. PNSO provides 2 operation codes: OC0 - BRIDGE_INFO OC3 - ADDR_INFO (new) Extend the function calls to *pnso* to pass the OC and add new response code 0108. Support for OC3 is indicated by a flag in the css_general_characteristics. Signed-off-by: Alexandra Winter <wintera@linux.ibm.com> Reviewed-by: Julian Wiedmann <jwi@linux.ibm.com> Reviewed-by: Peter Oberparleiter <oberpar@linux.ibm.com> Reviewed-by: Vineeth Vijayan <vneethv@linux.ibm.com> Signed-off-by: Julian Wiedmann <jwi@linux.ibm.com> Acked-by: Heiko Carstens <hca@linux.ibm.com> Signed-off-by: David S. Miller <davem@davemloft.net>
70 lines
1.4 KiB
C
70 lines
1.4 KiB
C
/* SPDX-License-Identifier: GPL-2.0 */
|
|
/*
|
|
* Copyright IBM Corp. 2020
|
|
*
|
|
* Author(s): Alexandra Winter <wintera@linux.ibm.com>
|
|
*
|
|
* Interface for Channel Subsystem Call
|
|
*/
|
|
#ifndef _ASM_S390_CHSC_H
|
|
#define _ASM_S390_CHSC_H
|
|
|
|
#include <uapi/asm/chsc.h>
|
|
|
|
/**
|
|
* Operation codes for CHSC PNSO:
|
|
* PNSO_OC_NET_BRIDGE_INFO - only addresses that are visible to a bridgeport
|
|
* PNSO_OC_NET_ADDR_INFO - all addresses
|
|
*/
|
|
#define PNSO_OC_NET_BRIDGE_INFO 0
|
|
#define PNSO_OC_NET_ADDR_INFO 3
|
|
/**
|
|
* struct chsc_pnso_naid_l2 - network address information descriptor
|
|
* @nit: Network interface token
|
|
* @addr_lnid: network address and logical network id (VLAN ID)
|
|
*/
|
|
struct chsc_pnso_naid_l2 {
|
|
u64 nit;
|
|
struct { u8 mac[6]; u16 lnid; } addr_lnid;
|
|
} __packed;
|
|
|
|
struct chsc_pnso_resume_token {
|
|
u64 t1;
|
|
u64 t2;
|
|
} __packed;
|
|
|
|
struct chsc_pnso_naihdr {
|
|
struct chsc_pnso_resume_token resume_token;
|
|
u32:32;
|
|
u32 instance;
|
|
u32:24;
|
|
u8 naids;
|
|
u32 reserved[3];
|
|
} __packed;
|
|
|
|
struct chsc_pnso_area {
|
|
struct chsc_header request;
|
|
u8:2;
|
|
u8 m:1;
|
|
u8:5;
|
|
u8:2;
|
|
u8 ssid:2;
|
|
u8 fmt:4;
|
|
u16 sch;
|
|
u8:8;
|
|
u8 cssid;
|
|
u16:16;
|
|
u8 oc;
|
|
u32:24;
|
|
struct chsc_pnso_resume_token resume_token;
|
|
u32 n:1;
|
|
u32:31;
|
|
u32 reserved[3];
|
|
struct chsc_header response;
|
|
u32:32;
|
|
struct chsc_pnso_naihdr naihdr;
|
|
struct chsc_pnso_naid_l2 entries[0];
|
|
} __packed __aligned(PAGE_SIZE);
|
|
|
|
#endif /* _ASM_S390_CHSC_H */
|