master/ethernet.c
changeset 834 0791aac03180
parent 770 efa5af306318
child 906 f95e3e33c0cf
equal deleted inserted replaced
833:5dca670ae4dd 834:0791aac03180
   118     eoe->tx_rate = 0;
   118     eoe->tx_rate = 0;
   119     eoe->rate_jiffies = 0;
   119     eoe->rate_jiffies = 0;
   120 
   120 
   121     /* device name eoe<MASTER>[as]<SLAVE>, because networking scripts don't
   121     /* device name eoe<MASTER>[as]<SLAVE>, because networking scripts don't
   122      * like hyphens etc. in interface names. */
   122      * like hyphens etc. in interface names. */
   123     if (slave->sii_alias) {
   123     if (slave->sii.alias) {
   124         snprintf(name, EC_DATAGRAM_NAME_SIZE,
   124         snprintf(name, EC_DATAGRAM_NAME_SIZE,
   125                 "eoe%ua%u", slave->master->index, slave->sii_alias);
   125                 "eoe%ua%u", slave->master->index, slave->sii.alias);
   126     } else {
   126     } else {
   127         snprintf(name, EC_DATAGRAM_NAME_SIZE,
   127         snprintf(name, EC_DATAGRAM_NAME_SIZE,
   128                 "eoe%us%u", slave->master->index, slave->ring_position);
   128                 "eoe%us%u", slave->master->index, slave->ring_position);
   129     }
   129     }
   130 
   130 
   151     // Usually setting the MTU appropriately makes the upper layers
   151     // Usually setting the MTU appropriately makes the upper layers
   152     // do the frame fragmenting. In some cases this doesn't work
   152     // do the frame fragmenting. In some cases this doesn't work
   153     // so the MTU is left on the Ethernet standard value and fragmenting
   153     // so the MTU is left on the Ethernet standard value and fragmenting
   154     // is done "manually".
   154     // is done "manually".
   155 #if 0
   155 #if 0
   156     eoe->dev->mtu = slave->sii_rx_mailbox_size - ETH_HLEN - 10;
   156     eoe->dev->mtu = slave->sii.rx_mailbox_size - ETH_HLEN - 10;
   157 #endif
   157 #endif
   158 
   158 
   159     // connect the net_device to the kernel
   159     // connect the net_device to the kernel
   160     if ((result = register_netdev(eoe->dev))) {
   160     if ((result = register_netdev(eoe->dev))) {
   161         EC_ERR("Unable to register net_device: error %i\n", result);
   161         EC_ERR("Unable to register net_device: error %i\n", result);
   235     unsigned int i;
   235     unsigned int i;
   236 #endif
   236 #endif
   237 
   237 
   238     remaining_size = eoe->tx_frame->skb->len - eoe->tx_offset;
   238     remaining_size = eoe->tx_frame->skb->len - eoe->tx_offset;
   239 
   239 
   240     if (remaining_size <= eoe->slave->sii_tx_mailbox_size - 10) {
   240     if (remaining_size <= eoe->slave->sii.tx_mailbox_size - 10) {
   241         current_size = remaining_size;
   241         current_size = remaining_size;
   242         last_fragment = 1;
   242         last_fragment = 1;
   243     }
   243     }
   244     else {
   244     else {
   245         current_size = ((eoe->slave->sii_tx_mailbox_size - 10) / 32) * 32;
   245         current_size = ((eoe->slave->sii.tx_mailbox_size - 10) / 32) * 32;
   246         last_fragment = 0;
   246         last_fragment = 0;
   247     }
   247     }
   248 
   248 
   249     if (eoe->tx_fragment_number) {
   249     if (eoe->tx_fragment_number) {
   250         complete_offset = eoe->tx_offset / 32;
   250         complete_offset = eoe->tx_offset / 32;
   702 {
   702 {
   703     ec_eoe_t *eoe = *((ec_eoe_t **) netdev_priv(dev));
   703     ec_eoe_t *eoe = *((ec_eoe_t **) netdev_priv(dev));
   704     ec_eoe_frame_t *frame;
   704     ec_eoe_frame_t *frame;
   705 
   705 
   706 #if 0
   706 #if 0
   707     if (skb->len > eoe->slave->sii_tx_mailbox_size - 10) {
   707     if (skb->len > eoe->slave->sii.tx_mailbox_size - 10) {
   708         EC_WARN("EoE TX frame (%i octets) exceeds MTU. dropping.\n", skb->len);
   708         EC_WARN("EoE TX frame (%i octets) exceeds MTU. dropping.\n", skb->len);
   709         dev_kfree_skb(skb);
   709         dev_kfree_skb(skb);
   710         eoe->stats.tx_dropped++;
   710         eoe->stats.tx_dropped++;
   711         return 0;
   711         return 0;
   712     }
   712     }