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/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' => {