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

Reply via email to