I'm writing a TLI driver for a multicast protocol. This protocol uses ethernet
multicast. First, ethernet multicast was enabled at user level. But it's not
the user's job to make that. Then, I would like to make that inside my bind
procedure : ptpbind(queue_t *q, mblk_t *mp)
Here is what I do :
multibp = allocb(sizeof(dl_enabmulti_req_t) + 6, BPRI_HI);
multibp->b_datap->db_type = M_PCPROTO;
multireqp = (dl_enabmulti_req_t *)multibp->b_wptr;
multireqp -> dl_primitive = DL_ENABMULTI_REQ ;
multireqp -> dl_addr_length = 6;
multireqp -> dl_addr_offset = sizeof(dl_enabmulti_req_t);
multibp->b_wptr+=sizeof(dl_enabmulti_req_t);
then, I fill the message with my muticast address.
and I transmit the message to the stream head of the ethernet driver :
putq(netlink.bottom, multibp);
(the ethernet driver (le) was already linked under my driver)
But it doesn't work. I receive nothing with the test program. It worked when I
made that from user level.
Then, does any one know that problem ?
I thank you for any help.
--
Nicolas Le Sourd.
Ecole Nationale Superieure des Telecommunications de Bretagne
3, rue de la Chataigneraie
BP 78
35512 Cesson Sevigne Cedex
Brittany, France.