chsc.h 1.4 KB

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