transport: Stabilise core transport and implementation APIs
The following two patches demonstrate their use in pldmd:
1. https://gerrit.openbmc.org/c/openbmc/pldm/+/63652
2. https://gerrit.openbmc.org/c/openbmc/pldm/+/65676
In the process, deprecate the old requester APIs. These are unsuitable
for OpenBMC going forward, which will rely on AF_MCTP sockets for the
MCTP transport implementation.
Signed-off-by: Andrew Jeffery <andrew@aj.id.au>
Change-Id: I94a9d9ff5fc67d5d6cf9a2393ebef12fa7b277d7
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 70e8529..cedb362 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -25,6 +25,47 @@
1. transport: Match specified metadata in pldm_transport_send_recv_msg()
2. transport: mctp-demux: Drop ABI annotation for internal symbols
+3. transport: Stabilise core transport and implementation APIs
+
+ This stabilisation covers the following headers and functions:
+
+ - libpldm/transport.h
+
+ - pldm_transport_poll()
+ - pldm_transport_send_msg()
+ - pldm_transport_recv_msg()
+ - pldm_transport_send_recv_msg()
+
+ - libpldm/transport/af-mctp.h
+
+ - pldm_transport_af_mctp_init()
+ - pldm_transport_af_mctp_destroy()
+ - pldm_transport_af_mctp_core()
+ - pldm_transport_af_mctp_init_pollfd()
+ - pldm_transport_af_mctp_map_tid()
+ - pldm_transport_af_mctp_unmap_tid()
+
+ - libpldm/transport/mctp-demux.h
+ - pldm_transport_mctp_demux_init()
+ - pldm_transport_mctp_demux_destroy()
+ - pldm_transport_mctp_demux_core()
+ - pldm_transport_mctp_demux_init_pollfd()
+ - pldm_transport_mctp_demux_map_tid()
+ - pldm_transport_mctp_demux_unmap_tid()
+
+### Deprecated
+
+1. All the existing "requester" APIs from `libpldm/pldm.h` (also known as
+ `libpldm/requester/pldm.h`):
+
+ - pldm_open()
+ - pldm_send_recv()
+ - pldm_send()
+ - pldm_recv()
+ - pldm_recv_any()
+ - pldm_close()
+
+ Users should migrate to the newer "transport" APIs instead.
## [0.6.0] - 2023-08-22
diff --git a/abi/aarch64/gcc.dump b/abi/aarch64/gcc.dump
index 6c230b3..e6d301d 100644
--- a/abi/aarch64/gcc.dump
+++ b/abi/aarch64/gcc.dump
@@ -4,6 +4,7 @@
'Arch' => 'AARCH64',
'GccVersion' => '13.2.1',
'Headers' => {
+ 'af-mctp.h' => 1,
'base.h' => 1,
'bios.h' => 1,
'bios_table.h' => 1,
@@ -12,10 +13,12 @@
'fru.h' => 1,
'host.h' => 1,
'instance-id.h' => 1,
+ 'mctp-demux.h' => 1,
'pdr.h' => 1,
'platform.h' => 1,
'platform_oem_ibm.h' => 1,
'pldm.h' => 1,
+ 'transport.h' => 1,
'utils.h' => 1
},
'Language' => 'C',
@@ -72,6 +75,55 @@
'Return' => '74',
'ShortName' => 'encode_set_date_time_req'
},
+ '100429' => {
+ 'Header' => 'mctp-demux.h',
+ 'Param' => {
+ '0' => {
+ 'name' => 'ctx',
+ 'type' => '92097'
+ },
+ '1' => {
+ 'name' => 'tid',
+ 'type' => '89858'
+ },
+ '2' => {
+ 'name' => 'eid',
+ 'type' => '91813'
+ }
+ },
+ 'Return' => '74',
+ 'ShortName' => 'pldm_transport_mctp_demux_unmap_tid'
+ },
+ '100765' => {
+ 'Header' => 'mctp-demux.h',
+ 'Param' => {
+ '0' => {
+ 'name' => 't',
+ 'type' => '92139'
+ },
+ '1' => {
+ 'name' => 'pollfd',
+ 'type' => '94838'
+ }
+ },
+ 'Return' => '74',
+ 'ShortName' => 'pldm_transport_mctp_demux_init_pollfd'
+ },
+ '105042' => {
+ 'Header' => 'transport.h',
+ 'Param' => {
+ '0' => {
+ 'name' => 'transport',
+ 'type' => '92139'
+ },
+ '1' => {
+ 'name' => 'timeout',
+ 'type' => '74'
+ }
+ },
+ 'Return' => '74',
+ 'ShortName' => 'pldm_transport_poll'
+ },
'10505' => {
'Header' => 'bios.h',
'Param' => {
@@ -7141,6 +7193,135 @@
'Return' => '74',
'ShortName' => 'encode_get_bios_table_resp'
},
+ '92102' => {
+ 'Header' => 'transport.h',
+ 'Param' => {
+ '0' => {
+ 'name' => 'transport',
+ 'type' => '92139'
+ },
+ '1' => {
+ 'name' => 'tid',
+ 'type' => '89858'
+ },
+ '2' => {
+ 'name' => 'pldm_msg',
+ 'type' => '1434'
+ },
+ '3' => {
+ 'name' => 'msg_len',
+ 'type' => '123'
+ }
+ },
+ 'Return' => '91928',
+ 'ShortName' => 'pldm_transport_send_msg'
+ },
+ '92149' => {
+ 'Header' => 'transport.h',
+ 'Param' => {
+ '0' => {
+ 'name' => 'transport',
+ 'type' => '92139'
+ },
+ '1' => {
+ 'name' => 'tid',
+ 'type' => '89858'
+ },
+ '2' => {
+ 'name' => 'pldm_req_msg',
+ 'type' => '1434'
+ },
+ '3' => {
+ 'name' => 'req_msg_len',
+ 'type' => '123'
+ },
+ '4' => {
+ 'name' => 'pldm_resp_msg',
+ 'type' => '16616'
+ },
+ '5' => {
+ 'name' => 'resp_msg_len',
+ 'type' => '8822'
+ }
+ },
+ 'Return' => '91928',
+ 'ShortName' => 'pldm_transport_send_recv_msg'
+ },
+ '92206' => {
+ 'Header' => 'mctp-demux.h',
+ 'Param' => {
+ '0' => {
+ 'name' => 'ctx',
+ 'type' => '92097'
+ }
+ },
+ 'Return' => '1',
+ 'ShortName' => 'pldm_transport_mctp_demux_destroy'
+ },
+ '92243' => {
+ 'Header' => 'transport.h',
+ 'Param' => {
+ '0' => {
+ 'name' => 'transport',
+ 'type' => '92139'
+ },
+ '1' => {
+ 'name' => 'tid',
+ 'type' => '92280'
+ },
+ '2' => {
+ 'name' => 'pldm_msg',
+ 'type' => '16616'
+ },
+ '3' => {
+ 'name' => 'msg_len',
+ 'type' => '8822'
+ }
+ },
+ 'Return' => '91928',
+ 'ShortName' => 'pldm_transport_recv_msg'
+ },
+ '92285' => {
+ 'Header' => 'mctp-demux.h',
+ 'Param' => {
+ '0' => {
+ 'name' => 'ctx',
+ 'type' => '92097'
+ },
+ '1' => {
+ 'name' => 'tid',
+ 'type' => '89858'
+ },
+ '2' => {
+ 'name' => 'eid',
+ 'type' => '91813'
+ }
+ },
+ 'Return' => '74',
+ 'ShortName' => 'pldm_transport_mctp_demux_map_tid'
+ },
+ '92317' => {
+ 'Header' => 'mctp-demux.h',
+ 'Param' => {
+ '0' => {
+ 'name' => 'ctx',
+ 'type' => '92097'
+ }
+ },
+ 'Return' => '92139',
+ 'ShortName' => 'pldm_transport_mctp_demux_core'
+ },
+ '92361' => {
+ 'Header' => 'mctp-demux.h',
+ 'Param' => {
+ '0' => {
+ 'name' => 'ctx',
+ 'type' => '92383'
+ }
+ },
+ 'Return' => '74',
+ 'ShortName' => 'pldm_transport_mctp_demux_init'
+ },
'92486' => {
'Header' => 'pldm.h',
'Param' => {
@@ -7292,6 +7473,81 @@
'Return' => '74',
'ShortName' => 'encode_set_date_time_resp'
},
+ '95801' => {
+ 'Header' => 'af-mctp.h',
+ 'Param' => {
+ '0' => {
+ 'name' => 'ctx',
+ 'type' => '95884'
+ }
+ },
+ 'Return' => '1',
+ 'ShortName' => 'pldm_transport_af_mctp_destroy'
+ },
+ '95889' => {
+ 'Header' => 'af-mctp.h',
+ 'Param' => {
+ '0' => {
+ 'name' => 'ctx',
+ 'type' => '96112'
+ }
+ },
+ 'Return' => '74',
+ 'ShortName' => 'pldm_transport_af_mctp_init'
+ },
+ '96822' => {
+ 'Header' => 'af-mctp.h',
+ 'Param' => {
+ '0' => {
+ 'name' => 'ctx',
+ 'type' => '95884'
+ },
+ '1' => {
+ 'name' => 'tid',
+ 'type' => '89858'
+ },
+ '2' => {
+ 'name' => 'eid',
+ 'type' => '91813'
+ }
+ },
+ 'Return' => '74',
+ 'ShortName' => 'pldm_transport_af_mctp_unmap_tid'
+ },
+ '96900' => {
+ 'Header' => 'af-mctp.h',
+ 'Param' => {
+ '0' => {
+ 'name' => 'ctx',
+ 'type' => '95884'
+ },
+ '1' => {
+ 'name' => 'tid',
+ 'type' => '89858'
+ },
+ '2' => {
+ 'name' => 'eid',
+ 'type' => '91813'
+ }
+ },
+ 'Return' => '74',
+ 'ShortName' => 'pldm_transport_af_mctp_map_tid'
+ },
+ '97158' => {
+ 'Header' => 'af-mctp.h',
+ 'Param' => {
+ '0' => {
+ 'name' => 't',
+ 'type' => '92139'
+ },
+ '1' => {
+ 'name' => 'pollfd',
+ 'type' => '94838'
+ }
+ },
+ 'Return' => '74',
+ 'ShortName' => 'pldm_transport_af_mctp_init_pollfd'
+ },
'9723' => {
'Header' => 'bios.h',
'Param' => {
@@ -7330,7 +7586,18 @@
},
'Return' => '74',
'ShortName' => 'decode_set_date_time_req'
- }
+ },
+ '97241' => {
+ 'Header' => 'af-mctp.h',
+ 'Param' => {
+ '0' => {
+ 'name' => 'ctx',
+ 'type' => '95884'
+ }
+ },
+ 'Return' => '92139',
+ 'ShortName' => 'pldm_transport_af_mctp_core'
+ }
},
'SymbolVersion' => {},
'Symbols' => {
@@ -7634,6 +7901,22 @@
'pldm_recv_any' => 1,
'pldm_send' => 1,
'pldm_send_recv' => 1,
+ 'pldm_transport_af_mctp_core' => 1,
+ 'pldm_transport_af_mctp_destroy' => 1,
+ 'pldm_transport_af_mctp_init' => 1,
+ 'pldm_transport_af_mctp_init_pollfd' => 1,
+ 'pldm_transport_af_mctp_map_tid' => 1,
+ 'pldm_transport_af_mctp_unmap_tid' => 1,
+ 'pldm_transport_mctp_demux_core' => 1,
+ 'pldm_transport_mctp_demux_destroy' => 1,
+ 'pldm_transport_mctp_demux_init' => 1,
+ 'pldm_transport_mctp_demux_init_pollfd' => 1,
+ 'pldm_transport_mctp_demux_map_tid' => 1,
+ 'pldm_transport_mctp_demux_unmap_tid' => 1,
+ 'pldm_transport_poll' => 1,
+ 'pldm_transport_recv_msg' => 1,
+ 'pldm_transport_send_msg' => 1,
+ 'pldm_transport_send_recv_msg' => 1,
'unpack_pldm_header' => 1,
'ver2str' => 1
}
@@ -9092,6 +9375,11 @@
'Size' => '8',
'Type' => 'Pointer'
},
+ '60' => {
+ 'Name' => 'short',
+ 'Size' => '2',
+ 'Type' => 'Intrinsic'
+ },
'6048' => {
'Header' => 'utils.h',
'Line' => '18',
@@ -10004,6 +10292,253 @@
'Size' => '4',
'Type' => 'Typedef'
},
+ '92071' => {
+ 'Header' => undef,
+ 'Line' => '23',
+ 'Memb' => {
+ '0' => {
+ 'name' => 'transport',
+ 'offset' => '0',
+ 'type' => '92144'
+ },
+ '1' => {
+ 'name' => 'socket',
+ 'offset' => '64',
+ 'type' => '74'
+ },
+ '2' => {
+ 'name' => 'tid_eid_map',
+ 'offset' => '68',
+ 'type' => '95445'
+ },
+ '3' => {
+ 'name' => 'socket_send_buf',
+ 'offset' => '768',
+ 'type' => '94587'
+ }
+ },
+ 'Name' => 'struct pldm_transport_mctp_demux',
+ 'PrivateABI' => 1,
+ 'Size' => '312',
+ 'Type' => 'Struct'
+ },
+ '92097' => {
+ 'BaseType' => '92071',
+ 'Name' => 'struct pldm_transport_mctp_demux*',
+ 'Size' => '8',
+ 'Type' => 'Pointer'
+ },
+ '92139' => {
+ 'BaseType' => '92144',
+ 'Name' => 'struct pldm_transport*',
+ 'Size' => '8',
+ 'Type' => 'Pointer'
+ },
+ '92144' => {
+ 'Header' => undef,
+ 'Line' => '17',
+ 'Memb' => {
+ '0' => {
+ 'name' => 'name',
+ 'offset' => '0',
+ 'type' => '12199'
+ },
+ '1' => {
+ 'name' => 'version',
+ 'offset' => '8',
+ 'type' => '168'
+ },
+ '2' => {
+ 'name' => 'recv',
+ 'offset' => '22',
+ 'type' => '94772'
+ },
+ '3' => {
+ 'name' => 'send',
+ 'offset' => '36',
+ 'type' => '94813'
+ },
+ '4' => {
+ 'name' => 'init_pollfd',
+ 'offset' => '50',
+ 'type' => '94894'
+ }
+ },
+ 'Name' => 'struct pldm_transport',
+ 'PrivateABI' => 1,
+ 'Size' => '40',
+ 'Type' => 'Struct'
+ },
+ '92280' => {
+ 'BaseType' => '89858',
+ 'Name' => 'pldm_tid_t*',
+ 'Size' => '8',
+ 'Type' => 'Pointer'
+ },
+ '92383' => {
+ 'BaseType' => '92097',
+ 'Name' => 'struct pldm_transport_mctp_demux**',
+ 'Size' => '8',
+ 'Type' => 'Pointer'
+ },
+ '94587' => {
+ 'Header' => undef,
+ 'Line' => '4',
+ 'Memb' => {
+ '0' => {
+ 'name' => 'size',
+ 'offset' => '0',
+ 'type' => '74'
+ },
+ '1' => {
+ 'name' => 'socket',
+ 'offset' => '4',
+ 'type' => '74'
+ },
+ '2' => {
+ 'name' => 'max_size',
+ 'offset' => '8',
+ 'type' => '74'
+ }
+ },
+ 'Name' => 'struct pldm_socket_sndbuf',
+ 'PrivateABI' => 1,
+ 'Size' => '12',
+ 'Type' => 'Struct'
+ },
+ '94772' => {
+ 'Name' => 'pldm_requester_rc_t(*)(struct pldm_transport*, pldm_tid_t*, void**, size_t*)',
+ 'Param' => {
+ '0' => {
+ 'type' => '92139'
+ },
+ '1' => {
+ 'type' => '92280'
+ },
+ '2' => {
+ 'type' => '16616'
+ },
+ '3' => {
+ 'type' => '8822'
+ }
+ },
+ 'Return' => '91928',
+ 'Size' => '8',
+ 'Type' => 'FuncPtr'
+ },
+ '94813' => {
+ 'Name' => 'pldm_requester_rc_t(*)(struct pldm_transport*, pldm_tid_t, void const*, size_t)',
+ 'Param' => {
+ '0' => {
+ 'type' => '92139'
+ },
+ '1' => {
+ 'type' => '89858'
+ },
+ '2' => {
+ 'type' => '1434'
+ },
+ '3' => {
+ 'type' => '123'
+ }
+ },
+ 'Return' => '91928',
+ 'Size' => '8',
+ 'Type' => 'FuncPtr'
+ },
+ '94838' => {
+ 'BaseType' => '94843',
+ 'Name' => 'struct pollfd*',
+ 'Size' => '8',
+ 'Type' => 'Pointer'
+ },
+ '94843' => {
+ 'Header' => undef,
+ 'Line' => '36',
+ 'Memb' => {
+ '0' => {
+ 'name' => 'fd',
+ 'offset' => '0',
+ 'type' => '74'
+ },
+ '1' => {
+ 'name' => 'events',
+ 'offset' => '4',
+ 'type' => '60'
+ },
+ '2' => {
+ 'name' => 'revents',
+ 'offset' => '6',
+ 'type' => '60'
+ }
+ },
+ 'Name' => 'struct pollfd',
+ 'PrivateABI' => 1,
+ 'Size' => '8',
+ 'Type' => 'Struct'
+ },
+ '94894' => {
+ 'Name' => 'int(*)(struct pldm_transport*, struct pollfd*)',
+ 'Param' => {
+ '0' => {
+ 'type' => '92139'
+ },
+ '1' => {
+ 'type' => '94838'
+ }
+ },
+ 'Return' => '74',
+ 'Size' => '8',
+ 'Type' => 'FuncPtr'
+ },
+ '95377' => {
+ 'Header' => undef,
+ 'Line' => '22',
+ 'Memb' => {
+ '0' => {
+ 'name' => 'transport',
+ 'offset' => '0',
+ 'type' => '92144'
+ },
+ '1' => {
+ 'name' => 'socket',
+ 'offset' => '64',
+ 'type' => '74'
+ },
+ '2' => {
+ 'name' => 'tid_eid_map',
+ 'offset' => '68',
+ 'type' => '95445'
+ },
+ '3' => {
+ 'name' => 'socket_send_buf',
+ 'offset' => '768',
+ 'type' => '94587'
+ }
+ },
+ 'Name' => 'struct pldm_transport_af_mctp',
+ 'PrivateABI' => 1,
+ 'Size' => '312',
+ 'Type' => 'Struct'
+ },
+ '95445' => {
+ 'BaseType' => '89858',
+ 'Name' => 'pldm_tid_t[256]',
+ 'Size' => '256',
+ 'Type' => 'Array'
+ },
+ '95884' => {
+ 'BaseType' => '95377',
+ 'Name' => 'struct pldm_transport_af_mctp*',
+ 'Size' => '8',
+ 'Type' => 'Pointer'
+ },
+ '96112' => {
+ 'BaseType' => '95884',
+ 'Name' => 'struct pldm_transport_af_mctp**',
+ 'Size' => '8',
+ 'Type' => 'Pointer'
+ },
'969' => {
'BaseType' => '890',
'Name' => 'struct pldm_header_info const',
diff --git a/abi/x86_64/gcc.dump b/abi/x86_64/gcc.dump
index 5e4bd23..8392888 100644
--- a/abi/x86_64/gcc.dump
+++ b/abi/x86_64/gcc.dump
@@ -4,6 +4,7 @@
'Arch' => 'x86_64',
'GccVersion' => '13.2.0',
'Headers' => {
+ 'af-mctp.h' => 1,
'base.h' => 1,
'bios.h' => 1,
'bios_table.h' => 1,
@@ -12,10 +13,12 @@
'fru.h' => 1,
'host.h' => 1,
'instance-id.h' => 1,
+ 'mctp-demux.h' => 1,
'pdr.h' => 1,
'platform.h' => 1,
'platform_oem_ibm.h' => 1,
'pldm.h' => 1,
+ 'transport.h' => 1,
'utils.h' => 1
},
'Language' => 'C',
@@ -69,6 +72,49 @@
'Return' => '74',
'ShortName' => 'decode_set_date_time_req'
},
+ '101954' => {
+ 'Header' => 'mctp-demux.h',
+ 'Param' => {
+ '0' => {
+ 'name' => 'ctx',
+ 'type' => '93498'
+ },
+ '1' => {
+ 'name' => 'tid',
+ 'type' => '91195'
+ },
+ '2' => {
+ 'name' => 'eid',
+ 'type' => '93214'
+ }
+ },
+ 'Reg' => {
+ '0' => 'rdi',
+ '1' => 'rsi',
+ '2' => 'rdx'
+ },
+ 'Return' => '74',
+ 'ShortName' => 'pldm_transport_mctp_demux_unmap_tid'
+ },
+ '102268' => {
+ 'Header' => 'mctp-demux.h',
+ 'Param' => {
+ '0' => {
+ 'name' => 't',
+ 'type' => '93540'
+ },
+ '1' => {
+ 'name' => 'pollfd',
+ 'type' => '96292'
+ }
+ },
+ 'Reg' => {
+ '0' => 'rdi',
+ '1' => 'rsi'
+ },
+ 'Return' => '74',
+ 'ShortName' => 'pldm_transport_mctp_demux_init_pollfd'
+ },
'10323' => {
'Header' => 'bios.h',
'Param' => {
@@ -115,6 +161,21 @@
'Return' => '74',
'ShortName' => 'encode_set_date_time_req'
},
+ '106653' => {
+ 'Header' => 'transport.h',
+ 'Param' => {
+ '0' => {
+ 'name' => 'transport',
+ 'type' => '93540'
+ },
+ '1' => {
+ 'name' => 'timeout',
+ 'type' => '74'
+ }
+ },
+ 'Return' => '74',
+ 'ShortName' => 'pldm_transport_poll'
+ },
'10815' => {
'Header' => 'bios.h',
'Param' => {
@@ -7644,6 +7705,143 @@
'Return' => '74',
'ShortName' => 'pldm_instance_db_init'
},
+ '93503' => {
+ 'Header' => 'transport.h',
+ 'Param' => {
+ '0' => {
+ 'name' => 'transport',
+ 'type' => '93540'
+ },
+ '1' => {
+ 'name' => 'tid',
+ 'type' => '91195'
+ },
+ '2' => {
+ 'name' => 'pldm_msg',
+ 'type' => '1434'
+ },
+ '3' => {
+ 'name' => 'msg_len',
+ 'type' => '123'
+ }
+ },
+ 'Return' => '93329',
+ 'ShortName' => 'pldm_transport_send_msg'
+ },
+ '93550' => {
+ 'Header' => 'transport.h',
+ 'Param' => {
+ '0' => {
+ 'name' => 'transport',
+ 'type' => '93540'
+ },
+ '1' => {
+ 'name' => 'tid',
+ 'type' => '91195'
+ },
+ '2' => {
+ 'name' => 'pldm_req_msg',
+ 'type' => '1434'
+ },
+ '3' => {
+ 'name' => 'req_msg_len',
+ 'type' => '123'
+ },
+ '4' => {
+ 'name' => 'pldm_resp_msg',
+ 'type' => '16964'
+ },
+ '5' => {
+ 'name' => 'resp_msg_len',
+ 'type' => '9084'
+ }
+ },
+ 'Return' => '93329',
+ 'ShortName' => 'pldm_transport_send_recv_msg'
+ },
+ '93607' => {
+ 'Header' => 'mctp-demux.h',
+ 'Param' => {
+ '0' => {
+ 'name' => 'ctx',
+ 'type' => '93498'
+ }
+ },
+ 'Return' => '1',
+ 'ShortName' => 'pldm_transport_mctp_demux_destroy'
+ },
+ '93644' => {
+ 'Header' => 'transport.h',
+ 'Param' => {
+ '0' => {
+ 'name' => 'transport',
+ 'type' => '93540'
+ },
+ '1' => {
+ 'name' => 'tid',
+ 'type' => '93681'
+ },
+ '2' => {
+ 'name' => 'pldm_msg',
+ 'type' => '16964'
+ },
+ '3' => {
+ 'name' => 'msg_len',
+ 'type' => '9084'
+ }
+ },
+ 'Return' => '93329',
+ 'ShortName' => 'pldm_transport_recv_msg'
+ },
+ '93686' => {
+ 'Header' => 'mctp-demux.h',
+ 'Param' => {
+ '0' => {
+ 'name' => 'ctx',
+ 'type' => '93498'
+ },
+ '1' => {
+ 'name' => 'tid',
+ 'type' => '91195'
+ },
+ '2' => {
+ 'name' => 'eid',
+ 'type' => '93214'
+ }
+ },
+ 'Reg' => {
+ '0' => 'rdi',
+ '1' => 'rsi',
+ '2' => 'rdx'
+ },
+ 'Return' => '74',
+ 'ShortName' => 'pldm_transport_mctp_demux_map_tid'
+ },
+ '93718' => {
+ 'Header' => 'mctp-demux.h',
+ 'Param' => {
+ '0' => {
+ 'name' => 'ctx',
+ 'type' => '93498'
+ }
+ },
+ 'Reg' => {
+ '0' => 'rdi'
+ },
+ 'Return' => '93540',
+ 'ShortName' => 'pldm_transport_mctp_demux_core'
+ },
+ '93762' => {
+ 'Header' => 'mctp-demux.h',
+ 'Param' => {
+ '0' => {
+ 'name' => 'ctx',
+ 'type' => '93784'
+ }
+ },
+ 'Return' => '74',
+ 'ShortName' => 'pldm_transport_mctp_demux_init'
+ },
'93887' => {
'Header' => 'pldm.h',
'Param' => {
@@ -7789,6 +7987,28 @@
'Return' => '93329',
'ShortName' => 'pldm_open'
},
+ '97255' => {
+ 'Header' => 'af-mctp.h',
+ 'Param' => {
+ '0' => {
+ 'name' => 'ctx',
+ 'type' => '97338'
+ }
+ },
+ 'Return' => '1',
+ 'ShortName' => 'pldm_transport_af_mctp_destroy'
+ },
+ '97343' => {
+ 'Header' => 'af-mctp.h',
+ 'Param' => {
+ '0' => {
+ 'name' => 'ctx',
+ 'type' => '97567'
+ }
+ },
+ 'Return' => '74',
+ 'ShortName' => 'pldm_transport_af_mctp_init'
+ },
'9755' => {
'Header' => 'bios.h',
'Param' => {
@@ -7835,7 +8055,88 @@
},
'Return' => '74',
'ShortName' => 'encode_set_date_time_resp'
- }
+ },
+ '98322' => {
+ 'Header' => 'af-mctp.h',
+ 'Param' => {
+ '0' => {
+ 'name' => 'ctx',
+ 'type' => '97338'
+ },
+ '1' => {
+ 'name' => 'tid',
+ 'type' => '91195'
+ },
+ '2' => {
+ 'name' => 'eid',
+ 'type' => '93214'
+ }
+ },
+ 'Reg' => {
+ '0' => 'rdi',
+ '1' => 'rsi',
+ '2' => 'rdx'
+ },
+ 'Return' => '74',
+ 'ShortName' => 'pldm_transport_af_mctp_unmap_tid'
+ },
+ '98395' => {
+ 'Header' => 'af-mctp.h',
+ 'Param' => {
+ '0' => {
+ 'name' => 'ctx',
+ 'type' => '97338'
+ },
+ '1' => {
+ 'name' => 'tid',
+ 'type' => '91195'
+ },
+ '2' => {
+ 'name' => 'eid',
+ 'type' => '93214'
+ }
+ },
+ 'Reg' => {
+ '0' => 'rdi',
+ '1' => 'rsi',
+ '2' => 'rdx'
+ },
+ 'Return' => '74',
+ 'ShortName' => 'pldm_transport_af_mctp_map_tid'
+ },
+ '98636' => {
+ 'Header' => 'af-mctp.h',
+ 'Param' => {
+ '0' => {
+ 'name' => 't',
+ 'type' => '93540'
+ },
+ '1' => {
+ 'name' => 'pollfd',
+ 'type' => '96292'
+ }
+ },
+ 'Reg' => {
+ '0' => 'rdi',
+ '1' => 'rsi'
+ },
+ 'Return' => '74',
+ 'ShortName' => 'pldm_transport_af_mctp_init_pollfd'
+ },
+ '98714' => {
+ 'Header' => 'af-mctp.h',
+ 'Param' => {
+ '0' => {
+ 'name' => 'ctx',
+ 'type' => '97338'
+ }
+ },
+ 'Reg' => {
+ '0' => 'rdi'
+ },
+ 'Return' => '93540',
+ 'ShortName' => 'pldm_transport_af_mctp_core'
+ }
},
'SymbolVersion' => {},
'Symbols' => {
@@ -8139,6 +8440,22 @@
'pldm_recv_any' => 1,
'pldm_send' => 1,
'pldm_send_recv' => 1,
+ 'pldm_transport_af_mctp_core' => 1,
+ 'pldm_transport_af_mctp_destroy' => 1,
+ 'pldm_transport_af_mctp_init' => 1,
+ 'pldm_transport_af_mctp_init_pollfd' => 1,
+ 'pldm_transport_af_mctp_map_tid' => 1,
+ 'pldm_transport_af_mctp_unmap_tid' => 1,
+ 'pldm_transport_mctp_demux_core' => 1,
+ 'pldm_transport_mctp_demux_destroy' => 1,
+ 'pldm_transport_mctp_demux_init' => 1,
+ 'pldm_transport_mctp_demux_init_pollfd' => 1,
+ 'pldm_transport_mctp_demux_map_tid' => 1,
+ 'pldm_transport_mctp_demux_unmap_tid' => 1,
+ 'pldm_transport_poll' => 1,
+ 'pldm_transport_recv_msg' => 1,
+ 'pldm_transport_send_msg' => 1,
+ 'pldm_transport_send_recv_msg' => 1,
'unpack_pldm_header' => 1,
'ver2str' => 1
}
@@ -9597,6 +9914,11 @@
'Size' => '8',
'Type' => 'Pointer'
},
+ '60' => {
+ 'Name' => 'short',
+ 'Size' => '2',
+ 'Type' => 'Intrinsic'
+ },
'6206' => {
'Header' => 'utils.h',
'Line' => '18',
@@ -10509,12 +10831,259 @@
'Size' => '4',
'Type' => 'Typedef'
},
+ '93472' => {
+ 'Header' => undef,
+ 'Line' => '23',
+ 'Memb' => {
+ '0' => {
+ 'name' => 'transport',
+ 'offset' => '0',
+ 'type' => '93545'
+ },
+ '1' => {
+ 'name' => 'socket',
+ 'offset' => '64',
+ 'type' => '74'
+ },
+ '2' => {
+ 'name' => 'tid_eid_map',
+ 'offset' => '68',
+ 'type' => '96899'
+ },
+ '3' => {
+ 'name' => 'socket_send_buf',
+ 'offset' => '768',
+ 'type' => '96041'
+ }
+ },
+ 'Name' => 'struct pldm_transport_mctp_demux',
+ 'PrivateABI' => 1,
+ 'Size' => '312',
+ 'Type' => 'Struct'
+ },
+ '93498' => {
+ 'BaseType' => '93472',
+ 'Name' => 'struct pldm_transport_mctp_demux*',
+ 'Size' => '8',
+ 'Type' => 'Pointer'
+ },
+ '93540' => {
+ 'BaseType' => '93545',
+ 'Name' => 'struct pldm_transport*',
+ 'Size' => '8',
+ 'Type' => 'Pointer'
+ },
+ '93545' => {
+ 'Header' => undef,
+ 'Line' => '17',
+ 'Memb' => {
+ '0' => {
+ 'name' => 'name',
+ 'offset' => '0',
+ 'type' => '12552'
+ },
+ '1' => {
+ 'name' => 'version',
+ 'offset' => '8',
+ 'type' => '168'
+ },
+ '2' => {
+ 'name' => 'recv',
+ 'offset' => '22',
+ 'type' => '96226'
+ },
+ '3' => {
+ 'name' => 'send',
+ 'offset' => '36',
+ 'type' => '96267'
+ },
+ '4' => {
+ 'name' => 'init_pollfd',
+ 'offset' => '50',
+ 'type' => '96348'
+ }
+ },
+ 'Name' => 'struct pldm_transport',
+ 'PrivateABI' => 1,
+ 'Size' => '40',
+ 'Type' => 'Struct'
+ },
+ '93681' => {
+ 'BaseType' => '91195',
+ 'Name' => 'pldm_tid_t*',
+ 'Size' => '8',
+ 'Type' => 'Pointer'
+ },
+ '93784' => {
+ 'BaseType' => '93498',
+ 'Name' => 'struct pldm_transport_mctp_demux**',
+ 'Size' => '8',
+ 'Type' => 'Pointer'
+ },
+ '96041' => {
+ 'Header' => undef,
+ 'Line' => '4',
+ 'Memb' => {
+ '0' => {
+ 'name' => 'size',
+ 'offset' => '0',
+ 'type' => '74'
+ },
+ '1' => {
+ 'name' => 'socket',
+ 'offset' => '4',
+ 'type' => '74'
+ },
+ '2' => {
+ 'name' => 'max_size',
+ 'offset' => '8',
+ 'type' => '74'
+ }
+ },
+ 'Name' => 'struct pldm_socket_sndbuf',
+ 'PrivateABI' => 1,
+ 'Size' => '12',
+ 'Type' => 'Struct'
+ },
+ '96226' => {
+ 'Name' => 'pldm_requester_rc_t(*)(struct pldm_transport*, pldm_tid_t*, void**, size_t*)',
+ 'Param' => {
+ '0' => {
+ 'type' => '93540'
+ },
+ '1' => {
+ 'type' => '93681'
+ },
+ '2' => {
+ 'type' => '16964'
+ },
+ '3' => {
+ 'type' => '9084'
+ }
+ },
+ 'Return' => '93329',
+ 'Size' => '8',
+ 'Type' => 'FuncPtr'
+ },
+ '96267' => {
+ 'Name' => 'pldm_requester_rc_t(*)(struct pldm_transport*, pldm_tid_t, void const*, size_t)',
+ 'Param' => {
+ '0' => {
+ 'type' => '93540'
+ },
+ '1' => {
+ 'type' => '91195'
+ },
+ '2' => {
+ 'type' => '1434'
+ },
+ '3' => {
+ 'type' => '123'
+ }
+ },
+ 'Return' => '93329',
+ 'Size' => '8',
+ 'Type' => 'FuncPtr'
+ },
+ '96292' => {
+ 'BaseType' => '96297',
+ 'Name' => 'struct pollfd*',
+ 'Size' => '8',
+ 'Type' => 'Pointer'
+ },
+ '96297' => {
+ 'Header' => undef,
+ 'Line' => '36',
+ 'Memb' => {
+ '0' => {
+ 'name' => 'fd',
+ 'offset' => '0',
+ 'type' => '74'
+ },
+ '1' => {
+ 'name' => 'events',
+ 'offset' => '4',
+ 'type' => '60'
+ },
+ '2' => {
+ 'name' => 'revents',
+ 'offset' => '6',
+ 'type' => '60'
+ }
+ },
+ 'Name' => 'struct pollfd',
+ 'PrivateABI' => 1,
+ 'Size' => '8',
+ 'Type' => 'Struct'
+ },
+ '96348' => {
+ 'Name' => 'int(*)(struct pldm_transport*, struct pollfd*)',
+ 'Param' => {
+ '0' => {
+ 'type' => '93540'
+ },
+ '1' => {
+ 'type' => '96292'
+ }
+ },
+ 'Return' => '74',
+ 'Size' => '8',
+ 'Type' => 'FuncPtr'
+ },
+ '96831' => {
+ 'Header' => undef,
+ 'Line' => '22',
+ 'Memb' => {
+ '0' => {
+ 'name' => 'transport',
+ 'offset' => '0',
+ 'type' => '93545'
+ },
+ '1' => {
+ 'name' => 'socket',
+ 'offset' => '64',
+ 'type' => '74'
+ },
+ '2' => {
+ 'name' => 'tid_eid_map',
+ 'offset' => '68',
+ 'type' => '96899'
+ },
+ '3' => {
+ 'name' => 'socket_send_buf',
+ 'offset' => '768',
+ 'type' => '96041'
+ }
+ },
+ 'Name' => 'struct pldm_transport_af_mctp',
+ 'PrivateABI' => 1,
+ 'Size' => '312',
+ 'Type' => 'Struct'
+ },
+ '96899' => {
+ 'BaseType' => '91195',
+ 'Name' => 'pldm_tid_t[256]',
+ 'Size' => '256',
+ 'Type' => 'Array'
+ },
'969' => {
'BaseType' => '890',
'Name' => 'struct pldm_header_info const',
'Size' => '8',
'Type' => 'Const'
- }
+ },
+ '97338' => {
+ 'BaseType' => '96831',
+ 'Name' => 'struct pldm_transport_af_mctp*',
+ 'Size' => '8',
+ 'Type' => 'Pointer'
+ },
+ '97567' => {
+ 'BaseType' => '97338',
+ 'Name' => 'struct pldm_transport_af_mctp**',
+ 'Size' => '8',
+ 'Type' => 'Pointer'
+ }
},
'UndefinedSymbols' => {
'libpldm.so.0.6.0' => {
diff --git a/src/requester/pldm.c b/src/requester/pldm.c
index 5297947..30687b3 100644
--- a/src/requester/pldm.c
+++ b/src/requester/pldm.c
@@ -26,7 +26,7 @@
*/
static struct pldm_transport_mctp_demux *open_transport;
-LIBPLDM_ABI_STABLE
+LIBPLDM_ABI_DEPRECATED
pldm_requester_rc_t pldm_open(void)
{
int fd = PLDM_REQUESTER_OPEN_FAIL;
@@ -94,7 +94,7 @@
break; \
} while (0)
-LIBPLDM_ABI_STABLE
+LIBPLDM_ABI_DEPRECATED
pldm_requester_rc_t pldm_recv_any(mctp_eid_t eid, int mctp_fd,
uint8_t **pldm_resp_msg, size_t *resp_msg_len)
{
@@ -152,7 +152,7 @@
return rc;
}
-LIBPLDM_ABI_STABLE
+LIBPLDM_ABI_DEPRECATED
pldm_requester_rc_t pldm_recv(mctp_eid_t eid, int mctp_fd,
__attribute__((unused)) uint8_t instance_id,
uint8_t **pldm_resp_msg, size_t *resp_msg_len)
@@ -169,7 +169,7 @@
return rc;
}
-LIBPLDM_ABI_STABLE
+LIBPLDM_ABI_DEPRECATED
pldm_requester_rc_t pldm_send_recv(mctp_eid_t eid, int mctp_fd,
const uint8_t *pldm_req_msg,
size_t req_msg_len, uint8_t **pldm_resp_msg,
@@ -195,7 +195,7 @@
return rc;
}
-LIBPLDM_ABI_STABLE
+LIBPLDM_ABI_DEPRECATED
pldm_requester_rc_t pldm_send(mctp_eid_t eid, int mctp_fd,
const uint8_t *pldm_req_msg, size_t req_msg_len)
{
@@ -211,7 +211,7 @@
/* Adding this here for completeness in the case we can't smoothly
* transition apps over to the new api */
-LIBPLDM_ABI_TESTING
+LIBPLDM_ABI_DEPRECATED
void pldm_close(void)
{
if (open_transport) {
diff --git a/src/transport/af-mctp.c b/src/transport/af-mctp.c
index d3f5882..ace2969 100644
--- a/src/transport/af-mctp.c
+++ b/src/transport/af-mctp.c
@@ -29,14 +29,14 @@
#define transport_to_af_mctp(ptr) \
container_of(ptr, struct pldm_transport_af_mctp, transport)
-LIBPLDM_ABI_TESTING
+LIBPLDM_ABI_STABLE
struct pldm_transport *
pldm_transport_af_mctp_core(struct pldm_transport_af_mctp *ctx)
{
return &ctx->transport;
}
-LIBPLDM_ABI_TESTING
+LIBPLDM_ABI_STABLE
int pldm_transport_af_mctp_init_pollfd(struct pldm_transport *t,
struct pollfd *pollfd)
{
@@ -70,7 +70,7 @@
return -1;
}
-LIBPLDM_ABI_TESTING
+LIBPLDM_ABI_STABLE
int pldm_transport_af_mctp_map_tid(struct pldm_transport_af_mctp *ctx,
pldm_tid_t tid, mctp_eid_t eid)
{
@@ -79,7 +79,7 @@
return 0;
}
-LIBPLDM_ABI_TESTING
+LIBPLDM_ABI_STABLE
int pldm_transport_af_mctp_unmap_tid(struct pldm_transport_af_mctp *ctx,
__attribute__((unused)) pldm_tid_t tid,
mctp_eid_t eid)
@@ -169,7 +169,7 @@
return PLDM_REQUESTER_SUCCESS;
}
-LIBPLDM_ABI_TESTING
+LIBPLDM_ABI_STABLE
int pldm_transport_af_mctp_init(struct pldm_transport_af_mctp **ctx)
{
if (!ctx || *ctx) {
@@ -204,7 +204,7 @@
return 0;
}
-LIBPLDM_ABI_TESTING
+LIBPLDM_ABI_STABLE
void pldm_transport_af_mctp_destroy(struct pldm_transport_af_mctp *ctx)
{
if (!ctx) {
diff --git a/src/transport/mctp-demux.c b/src/transport/mctp-demux.c
index f9f11f0..8b35c0a 100644
--- a/src/transport/mctp-demux.c
+++ b/src/transport/mctp-demux.c
@@ -32,7 +32,7 @@
#define transport_to_demux(ptr) \
container_of(ptr, struct pldm_transport_mctp_demux, transport)
-LIBPLDM_ABI_TESTING
+LIBPLDM_ABI_STABLE
struct pldm_transport *
pldm_transport_mctp_demux_core(struct pldm_transport_mctp_demux *ctx)
{
@@ -66,7 +66,7 @@
return fd;
}
-LIBPLDM_ABI_TESTING
+LIBPLDM_ABI_STABLE
int pldm_transport_mctp_demux_init_pollfd(struct pldm_transport *t,
struct pollfd *pollfd)
{
@@ -103,7 +103,7 @@
return -1;
}
-LIBPLDM_ABI_TESTING
+LIBPLDM_ABI_STABLE
int pldm_transport_mctp_demux_map_tid(struct pldm_transport_mctp_demux *ctx,
pldm_tid_t tid, mctp_eid_t eid)
{
@@ -112,7 +112,7 @@
return 0;
}
-LIBPLDM_ABI_TESTING
+LIBPLDM_ABI_STABLE
int pldm_transport_mctp_demux_unmap_tid(struct pldm_transport_mctp_demux *ctx,
__attribute__((unused)) pldm_tid_t tid,
mctp_eid_t eid)
@@ -232,7 +232,7 @@
return PLDM_REQUESTER_SUCCESS;
}
-LIBPLDM_ABI_TESTING
+LIBPLDM_ABI_STABLE
int pldm_transport_mctp_demux_init(struct pldm_transport_mctp_demux **ctx)
{
if (!ctx || *ctx) {
@@ -266,7 +266,7 @@
return 0;
}
-LIBPLDM_ABI_TESTING
+LIBPLDM_ABI_STABLE
void pldm_transport_mctp_demux_destroy(struct pldm_transport_mctp_demux *ctx)
{
if (!ctx) {
diff --git a/src/transport/transport.c b/src/transport/transport.c
index ee94091..f7dace5 100644
--- a/src/transport/transport.c
+++ b/src/transport/transport.c
@@ -29,7 +29,7 @@
}
#endif
-LIBPLDM_ABI_TESTING
+LIBPLDM_ABI_STABLE
int pldm_transport_poll(struct pldm_transport *transport, int timeout)
{
struct pollfd pollfd;
@@ -57,7 +57,7 @@
return rc;
}
-LIBPLDM_ABI_TESTING
+LIBPLDM_ABI_STABLE
pldm_requester_rc_t pldm_transport_send_msg(struct pldm_transport *transport,
pldm_tid_t tid,
const void *pldm_msg,
@@ -74,7 +74,7 @@
return transport->send(transport, tid, pldm_msg, msg_len);
}
-LIBPLDM_ABI_TESTING
+LIBPLDM_ABI_STABLE
pldm_requester_rc_t pldm_transport_recv_msg(struct pldm_transport *transport,
pldm_tid_t *tid, void **pldm_msg,
size_t *msg_len)
@@ -140,7 +140,7 @@
return 0;
}
-LIBPLDM_ABI_TESTING
+LIBPLDM_ABI_STABLE
pldm_requester_rc_t
pldm_transport_send_recv_msg(struct pldm_transport *transport, pldm_tid_t tid,
const void *pldm_req_msg, size_t req_msg_len,
diff --git a/tests/transport.cpp b/tests/transport.cpp
index 4427896..4d03574 100644
--- a/tests/transport.cpp
+++ b/tests/transport.cpp
@@ -5,7 +5,6 @@
#include <gtest/gtest.h>
-#ifdef LIBPLDM_API_TESTING
TEST(Transport, create)
{
struct pldm_transport_test* test = NULL;
@@ -14,9 +13,7 @@
EXPECT_NE(pldm_transport_test_core(test), nullptr);
pldm_transport_test_destroy(test);
}
-#endif
-#ifdef LIBPLDM_API_TESTING
TEST(Transport, send_one)
{
const uint8_t msg[] = {0x81, 0x00, 0x01, 0x01};
@@ -41,9 +38,7 @@
EXPECT_EQ(rc, PLDM_REQUESTER_SUCCESS);
pldm_transport_test_destroy(test);
}
-#endif
-#ifdef LIBPLDM_API_TESTING
TEST(Transport, recv_one)
{
uint8_t msg[] = {0x01, 0x00, 0x01, 0x00};
@@ -76,9 +71,7 @@
free(recvd);
pldm_transport_test_destroy(test);
}
-#endif
-#ifdef LIBPLDM_API_TESTING
TEST(Transport, send_recv_one)
{
uint8_t req[] = {0x81, 0x00, 0x01, 0x01};
@@ -126,9 +119,7 @@
free(msg);
pldm_transport_test_destroy(test);
}
-#endif
-#ifdef LIBPLDM_API_TESTING
TEST(Transport, send_recv_timeout)
{
uint8_t req[] = {0x81, 0x00, 0x01, 0x01};
@@ -163,9 +154,7 @@
EXPECT_EQ(rc, PLDM_REQUESTER_RECV_FAIL);
pldm_transport_test_destroy(test);
}
-#endif
-#ifdef LIBPLDM_API_TESTING
TEST(Transport, send_recv_unwanted)
{
uint8_t req[] = {0x81, 0x00, 0x01, 0x01};
@@ -218,9 +207,7 @@
EXPECT_EQ(rc, PLDM_REQUESTER_RECV_FAIL);
pldm_transport_test_destroy(test);
}
-#endif
-#ifdef LIBPLDM_API_TESTING
TEST(Transport, send_recv_drain_one_unwanted)
{
uint8_t unwanted[] = {0x01, 0x00, 0x01, 0x01};
@@ -270,9 +257,7 @@
free(msg);
pldm_transport_test_destroy(test);
}
-#endif
-#ifdef LIBPLDM_API_TESTING
TEST(Transport, send_recv_wrong_pldm_type)
{
uint8_t req[] = {0x81, 0x00, 0x01, 0x01};
@@ -325,9 +310,7 @@
EXPECT_EQ(rc, PLDM_REQUESTER_RECV_FAIL);
pldm_transport_test_destroy(test);
}
-#endif
-#ifdef LIBPLDM_API_TESTING
TEST(Transport, send_recv_wrong_command_code)
{
uint8_t req[] = {0x81, 0x00, 0x01, 0x01};
@@ -380,4 +363,3 @@
EXPECT_EQ(rc, PLDM_REQUESTER_RECV_FAIL);
pldm_transport_test_destroy(test);
}
-#endif