Hello, In mac_provider.h for solaris10, I find some Crossbow-like definitions though they are different from those defined in Solaris Express. I am wondering if Crossbow is available for Solaris10 Gldv3 driver? Is there any limitation? Tom /* * Common ring functions and driver interfaces */ typedef int (*mac_ring_start_t)(mac_ring_driver_t); typedef void (*mac_ring_stop_t)(mac_ring_driver_t); typedef mblk_t *(*mac_ring_send_t)(void *, mblk_t *); typedef mblk_t *(*mac_ring_poll_t)(void *, int); typedef struct mac_ring_info_s { mac_ring_driver_t mr_driver; mac_ring_start_t mr_start; mac_ring_stop_t mr_stop; mac_intr_t mr_intr; union { mac_ring_send_t send; mac_ring_poll_t poll; } mrfunion; } mac_ring_info_s; #define mr_send mrfunion.send #define mr_poll mrfunion.poll typedef int (*mac_group_start_t)(mac_group_driver_t); typedef void (*mac_group_stop_t)(mac_group_driver_t); typedef int (*mac_add_mac_addr_t)(void *, const uint8_t *); typedef int (*mac_rem_mac_addr_t)(void *, const uint8_t *); struct mac_group_info_s { mac_group_driver_t mrg_driver; /* Driver reference */ mac_group_start_t mrg_start; /* Start the group */ mac_group_stop_t mrg_stop; /* Stop the group */ uint_t mrg_count; /* Count of rings */ mac_intr_t mrg_intr; /* Optional per-group intr */ /* Only used for rx groups */ mac_add_mac_addr_t mrg_addmac; /* Add a MAC address */ mac_rem_mac_addr_t mrg_remmac; /* Remove a MAC address */ }; -- This message posted from opensolaris.org
Tom, The core GLDv3 APIs that have been committed and are now documented can be used by drivers outside of ON. The other capabilities are still private and are not safe to use outside of ON (the core Solaris consolidation.) The S10 polling capability is not part of that set. Also the S11 ring capability introduced as part of Crossbow is not part of the committed GLDv3 APIs yet. Nicolas. On 01/25/11 10:57 PM, Tom Chen wrote:> Hello, > > In mac_provider.h for solaris10, I find some Crossbow-like definitions though they are different from those defined in Solaris Express. I am wondering if Crossbow is available for Solaris10 Gldv3 driver? Is there any limitation? > > Tom > > /* > * Common ring functions and driver interfaces > */ > typedef int (*mac_ring_start_t)(mac_ring_driver_t); > typedef void (*mac_ring_stop_t)(mac_ring_driver_t); > > typedef mblk_t *(*mac_ring_send_t)(void *, mblk_t *); > typedef mblk_t *(*mac_ring_poll_t)(void *, int); > > typedef struct mac_ring_info_s { > mac_ring_driver_t mr_driver; > mac_ring_start_t mr_start; > mac_ring_stop_t mr_stop; > mac_intr_t mr_intr; > union { > mac_ring_send_t send; > mac_ring_poll_t poll; > } mrfunion; > } mac_ring_info_s; > > #define mr_send mrfunion.send > #define mr_poll mrfunion.poll > > typedef int (*mac_group_start_t)(mac_group_driver_t); > typedef void (*mac_group_stop_t)(mac_group_driver_t); > typedef int (*mac_add_mac_addr_t)(void *, const uint8_t *); > typedef int (*mac_rem_mac_addr_t)(void *, const uint8_t *); > > struct mac_group_info_s { > mac_group_driver_t mrg_driver; /* Driver reference */ > mac_group_start_t mrg_start; /* Start the group */ > mac_group_stop_t mrg_stop; /* Stop the group */ > uint_t mrg_count; /* Count of rings */ > mac_intr_t mrg_intr; /* Optional per-group intr */ > > /* Only used for rx groups */ > mac_add_mac_addr_t mrg_addmac; /* Add a MAC address */ > mac_rem_mac_addr_t mrg_remmac; /* Remove a MAC address */ > };-- Nicolas Droux - Solaris Core OS Engineering - Oracle nicolas.droux at oracle.com
Nicolas, Thank you! How about "set_prop, get_prop", ie. Brussel features? are they supported in Solaris10? Tom -------------------------------------------------- From: "Nicolas Droux" <nicolas.droux at oracle.com> Sent: Wednesday, January 26, 2011 11:24 AM To: "Tom Chen" <chentom60 at hotmail.com> Cc: <crossbow-discuss at opensolaris.org> Subject: Re: [crossbow-discuss] solaris10 supports Crossbow?> Tom, > > The core GLDv3 APIs that have been committed and are now documented can be > used by drivers outside of ON. The other capabilities are still private > and are not safe to use outside of ON (the core Solaris consolidation.) > > The S10 polling capability is not part of that set. Also the S11 ring > capability introduced as part of Crossbow is not part of the committed > GLDv3 APIs yet. > > Nicolas. > > On 01/25/11 10:57 PM, Tom Chen wrote: >> Hello, >> >> In mac_provider.h for solaris10, I find some Crossbow-like definitions >> though they are different from those defined in Solaris Express. I am >> wondering if Crossbow is available for Solaris10 Gldv3 driver? Is there >> any limitation? >> >> Tom >> >> /* >> * Common ring functions and driver interfaces >> */ >> typedef int (*mac_ring_start_t)(mac_ring_driver_t); >> typedef void (*mac_ring_stop_t)(mac_ring_driver_t); >> >> typedef mblk_t *(*mac_ring_send_t)(void *, mblk_t *); >> typedef mblk_t *(*mac_ring_poll_t)(void *, int); >> >> typedef struct mac_ring_info_s { >> mac_ring_driver_t mr_driver; >> mac_ring_start_t mr_start; >> mac_ring_stop_t mr_stop; >> mac_intr_t mr_intr; >> union { >> mac_ring_send_t send; >> mac_ring_poll_t poll; >> } mrfunion; >> } mac_ring_info_s; >> >> #define mr_send mrfunion.send >> #define mr_poll mrfunion.poll >> >> typedef int (*mac_group_start_t)(mac_group_driver_t); >> typedef void (*mac_group_stop_t)(mac_group_driver_t); >> typedef int (*mac_add_mac_addr_t)(void *, const uint8_t *); >> typedef int (*mac_rem_mac_addr_t)(void *, const uint8_t *); >> >> struct mac_group_info_s { >> mac_group_driver_t mrg_driver; /* Driver reference */ >> mac_group_start_t mrg_start; /* Start the group */ >> mac_group_stop_t mrg_stop; /* Stop the group */ >> uint_t mrg_count; /* Count of rings */ >> mac_intr_t mrg_intr; /* Optional per-group intr */ >> >> /* Only used for rx groups */ >> mac_add_mac_addr_t mrg_addmac; /* Add a MAC address */ >> mac_rem_mac_addr_t mrg_remmac; /* Remove a MAC address */ >> }; > > -- > Nicolas Droux - Solaris Core OS Engineering - Oracle > nicolas.droux at oracle.com >
On 01/26/11 02:10 PM, tom60 wrote:> Nicolas, > > Thank you! > > How about "set_prop, get_prop", ie. Brussel features? are they supported > in Solaris10?Tom, Yes, those are part of the committed APIs, see also mac(9E) and mac_callbacks(9S). Nicolas.> > Tom > > -------------------------------------------------- > From: "Nicolas Droux" <nicolas.droux at oracle.com> > Sent: Wednesday, January 26, 2011 11:24 AM > To: "Tom Chen" <chentom60 at hotmail.com> > Cc: <crossbow-discuss at opensolaris.org> > Subject: Re: [crossbow-discuss] solaris10 supports Crossbow? > >> Tom, >> >> The core GLDv3 APIs that have been committed and are now documented >> can be used by drivers outside of ON. The other capabilities are still >> private and are not safe to use outside of ON (the core Solaris >> consolidation.) >> >> The S10 polling capability is not part of that set. Also the S11 ring >> capability introduced as part of Crossbow is not part of the committed >> GLDv3 APIs yet. >> >> Nicolas. >> >> On 01/25/11 10:57 PM, Tom Chen wrote: >>> Hello, >>> >>> In mac_provider.h for solaris10, I find some Crossbow-like >>> definitions though they are different from those defined in Solaris >>> Express. I am wondering if Crossbow is available for Solaris10 Gldv3 >>> driver? Is there any limitation? >>> >>> Tom >>> >>> /* >>> * Common ring functions and driver interfaces >>> */ >>> typedef int (*mac_ring_start_t)(mac_ring_driver_t); >>> typedef void (*mac_ring_stop_t)(mac_ring_driver_t); >>> >>> typedef mblk_t *(*mac_ring_send_t)(void *, mblk_t *); >>> typedef mblk_t *(*mac_ring_poll_t)(void *, int); >>> >>> typedef struct mac_ring_info_s { >>> mac_ring_driver_t mr_driver; >>> mac_ring_start_t mr_start; >>> mac_ring_stop_t mr_stop; >>> mac_intr_t mr_intr; >>> union { >>> mac_ring_send_t send; >>> mac_ring_poll_t poll; >>> } mrfunion; >>> } mac_ring_info_s; >>> >>> #define mr_send mrfunion.send >>> #define mr_poll mrfunion.poll >>> >>> typedef int (*mac_group_start_t)(mac_group_driver_t); >>> typedef void (*mac_group_stop_t)(mac_group_driver_t); >>> typedef int (*mac_add_mac_addr_t)(void *, const uint8_t *); >>> typedef int (*mac_rem_mac_addr_t)(void *, const uint8_t *); >>> >>> struct mac_group_info_s { >>> mac_group_driver_t mrg_driver; /* Driver reference */ >>> mac_group_start_t mrg_start; /* Start the group */ >>> mac_group_stop_t mrg_stop; /* Stop the group */ >>> uint_t mrg_count; /* Count of rings */ >>> mac_intr_t mrg_intr; /* Optional per-group intr */ >>> >>> /* Only used for rx groups */ >>> mac_add_mac_addr_t mrg_addmac; /* Add a MAC address */ >>> mac_rem_mac_addr_t mrg_remmac; /* Remove a MAC address */ >>> }; >> >> -- >> Nicolas Droux - Solaris Core OS Engineering - Oracle >> nicolas.droux at oracle.com >>-- Nicolas Droux - Solaris Core OS Engineering - Oracle nicolas.droux at oracle.com