If these fields are to support -1 values, shouldn't they be int8_t, not uint8_t? Also, RFC 3635 does not define a struct, but rather the various fields that comprise the MIB.
On Fri, Oct 16, 2015 at 5:24 AM, Savolainen, Petri (Nokia - FI/Espoo) < petri.savolai...@nokia.com> wrote: > > RFC 3635 helps also here to define properties of an Ethernet-like > interface. It's not so as crucial to follow RFC terms and definitions here > as it's with counters, but we can use it as a guide line. Addresses and > promisc mode are classification issues. Name and pktio status (stopped / > started) ( == ifAdminStatus) are pktio level data. > > > typedef struct odp_pktio_link_state_t { > uint8_t type; // 0: Ethernet (or enum ODP_PKTIO_ETHERNET), > ... > uint8_t status; // 1: link up, 0: down, -1 not_present (== > ifOperStatus ) > uint8_t autoneg; // 1: autoneg on, 0: off, -1: not supported > uint8_t duplex; // 1: full duplex, 0: half duplex > uint32_t speed_mbps; // Speed in Mbps. This leaves room for > // speed_bps which would support odd > (Mbps) link speeds > uint32_t mtu; // MTU in bytes > } odp_pktio_link_state_t; > > > Better to use int (uint8_t) than bool to enable extendable status > definitions. E.g. ifOperStatus == not_present means that some HW component > is missing, rather than user have configured link down. > > > -Petri > > > > > -----Original Message----- > > From: lng-odp [mailto:lng-odp-boun...@lists.linaro.org] On Behalf Of EXT > > Maxim Uvarov > > Sent: Tuesday, October 13, 2015 3:39 PM > > To: lng-odp@lists.linaro.org > > Subject: [lng-odp] [API-NEXT PATCHv2] api: pktio link > > > > Define API to get pktio link state: seed, autoneg, link up/down, > > duplex, started/stopped state. > > > > Signed-off-by: Maxim Uvarov <maxim.uva...@linaro.org> > > --- > > v2: - use simple struct to return pktio link state; > > - odp will not modify link, only ready it's state; > > > > > > include/odp/api/packet_io.h | 22 ++++++++++++++++++++++ > > 1 file changed, 22 insertions(+) > > > > diff --git a/include/odp/api/packet_io.h b/include/odp/api/packet_io.h > > index d8e69ed..6c77e8d 100644 > > --- a/include/odp/api/packet_io.h > > +++ b/include/odp/api/packet_io.h > > @@ -96,6 +96,28 @@ typedef struct odp_pktio_param_t { > > } odp_pktio_param_t; > > > > /** > > + * Packet IO link state information > > + */ > > +typedef struct odp_pktio_link_state_t { > > + uint32_t speed; /**< Speed in Mbps: 10, 100, 1000 etc */ > > + odp_bool_t up; /**< 1 - link up, 0 - link down */ > > + odp_bool_t autoneg; /**< 1 - autoneg on, 0 - off */ > > + odp_bool_t fd; /**< 1 - full duplex, 0 - half duplex */ > > + odp_bool_t stopped; /**< 1 - pktio stopped, 0 - started */ > > +} odp_pktio_link_state_t; > > + > > +/** > > + * Get packet IO link state > > + * > > + * @param[in] pktio Packet IO handle > > + * @param[out] state Buffer to save link state > > + * > > + * @retval 0 on success (state info updated) > > + * @retval <0 on failure (state info not updated) > > + */ > > +int odp_pktio_link_state(odp_pktio_t pktio, odp_pktio_link_state_t > > *state); > > + > > +/** > > * Open a packet IO interface > > * > > * An ODP program can open a single packet IO interface per device, > > attempts > > -- > > 1.9.1 > > > > _______________________________________________ > > lng-odp mailing list > > lng-odp@lists.linaro.org > > https://lists.linaro.org/mailman/listinfo/lng-odp > _______________________________________________ > lng-odp mailing list > lng-odp@lists.linaro.org > https://lists.linaro.org/mailman/listinfo/lng-odp >
_______________________________________________ lng-odp mailing list lng-odp@lists.linaro.org https://lists.linaro.org/mailman/listinfo/lng-odp