Changeset 56792a2 in mainline
- Timestamp:
- 2012-02-27T19:52:41Z (13 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- 1cc8b42
- Parents:
- 962f03b
- Location:
- uspace/srv/ethip
- Files:
-
- 6 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/srv/ethip/arp.c
r962f03b r56792a2 46 46 #include "std.h" 47 47 48 #define MY_ETH_ADDR 0xaafeedfaceee49 50 48 static int arp_send_packet(ethip_nic_t *nic, arp_eth_packet_t *packet); 51 49 … … 73 71 74 72 reply.opcode = aop_reply; 75 reply.sender_hw_addr .addr = MY_ETH_ADDR;73 reply.sender_hw_addr = nic->mac_addr; 76 74 reply.sender_proto_addr = laddr->addr; 77 75 reply.target_hw_addr = packet.sender_hw_addr; -
uspace/srv/ethip/ethip.c
r962f03b r56792a2 177 177 178 178 frame.dest.addr = 0xdeeedeeedeee; 179 frame.src .addr = 0xaadeadbeeffe;179 frame.src = nic->mac_addr; 180 180 frame.etype_len = ETYPE_IP; 181 181 frame.data = sdu->data; -
uspace/srv/ethip/ethip.h
r962f03b r56792a2 44 44 #include <sys/types.h> 45 45 46 typedef struct ethip_nic {47 link_t nic_list;48 service_id_t svc_id;49 char *svc_name;50 async_sess_t *sess;51 52 iplink_srv_t iplink;53 service_id_t iplink_sid;54 55 /** List of IP addresses configured on this link */56 list_t addr_list; /* of ethip_link_addr_t */57 } ethip_nic_t;58 59 46 typedef struct { 60 47 link_t addr_list; … … 67 54 uint64_t addr; 68 55 } mac48_addr_t; 56 57 typedef struct ethip_nic { 58 link_t nic_list; 59 service_id_t svc_id; 60 char *svc_name; 61 async_sess_t *sess; 62 63 iplink_srv_t iplink; 64 service_id_t iplink_sid; 65 66 /** MAC address */ 67 mac48_addr_t mac_addr; 68 /** List of IP addresses configured on this link */ 69 list_t addr_list; /* of ethip_link_addr_t */ 70 } ethip_nic_t; 69 71 70 72 /** Ethernet frame */ -
uspace/srv/ethip/ethip_nic.c
r962f03b r56792a2 48 48 #include "ethip.h" 49 49 #include "ethip_nic.h" 50 #include "pdu.h" 50 51 51 52 static int ethip_nic_open(service_id_t sid); … … 152 153 int rc; 153 154 bool in_list = false; 155 nic_address_t nic_address; 154 156 155 157 log_msg(LVL_DEBUG, "ethip_nic_open()"); … … 187 189 goto error; 188 190 191 rc = nic_get_address(nic->sess, &nic_address); 192 if (rc != EOK) { 193 log_msg(LVL_ERROR, "Error getting MAC address of NIC '%s'.", 194 nic->svc_name); 195 goto error; 196 } 197 198 mac48_decode(nic_address.address, &nic->mac_addr); 199 189 200 rc = nic_set_state(nic->sess, NIC_STATE_ACTIVE); 190 201 if (rc != EOK) { 191 log_msg(LVL_ERROR, " Failedactivating NIC '%s'.",202 log_msg(LVL_ERROR, "Error activating NIC '%s'.", 192 203 nic->svc_name); 193 204 goto error; 194 205 } 195 206 196 log_msg(LVL_DEBUG, "Initialized IP link service."); 207 log_msg(LVL_DEBUG, "Initialized IP link service, MAC = 0x%" PRIx64, 208 nic->mac_addr.addr); 197 209 198 210 return EOK; -
uspace/srv/ethip/pdu.c
r962f03b r56792a2 46 46 #include "pdu.h" 47 47 48 static void mac48_encode(mac48_addr_t *addr, void *buf);49 static void mac48_decode(void *data, mac48_addr_t *addr);50 51 48 #define MAC48_BYTES 6 52 49 … … 116 113 } 117 114 118 staticvoid mac48_encode(mac48_addr_t *addr, void *buf)115 void mac48_encode(mac48_addr_t *addr, void *buf) 119 116 { 120 117 uint64_t val; … … 127 124 } 128 125 129 staticvoid mac48_decode(void *data, mac48_addr_t *addr)126 void mac48_decode(void *data, mac48_addr_t *addr) 130 127 { 131 128 uint64_t val; -
uspace/srv/ethip/pdu.h
r962f03b r56792a2 42 42 extern int eth_pdu_encode(eth_frame_t *, void **, size_t *); 43 43 extern int eth_pdu_decode(void *, size_t, eth_frame_t *); 44 extern void mac48_encode(mac48_addr_t *, void *); 45 extern void mac48_decode(void *, mac48_addr_t *); 44 46 extern int arp_pdu_encode(arp_eth_packet_t *, void **, size_t *); 45 47 extern int arp_pdu_decode(void *, size_t, arp_eth_packet_t *); 48 46 49 47 50 #endif
Note:
See TracChangeset
for help on using the changeset viewer.