Changeset fe4310f in mainline for uspace/srv/inet/inet_link.c


Ignore:
Timestamp:
2012-02-12T22:40:15Z (12 years ago)
Author:
Jiri Svoboda <jiri@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
2ff150e
Parents:
bd8bfc5a
Message:

Distinguish between datagram and packet. Deliver received datagrams to
clients based on protocol number.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • uspace/srv/inet/inet_link.c

    rbd8bfc5a rfe4310f  
    6060static int inet_iplink_recv(iplink_t *iplink, iplink_sdu_t *sdu)
    6161{
    62         inet_dgram_t dgram;
    63         uint8_t ttl;
    64         int df;
     62        inet_packet_t packet;
    6563        int rc;
    6664
    6765        log_msg(LVL_DEBUG, "inet_iplink_recv()");
    68         rc = inet_pdu_decode(sdu->data, sdu->size, &dgram, &ttl, &df);
    69         if (rc != EOK)
     66        rc = inet_pdu_decode(sdu->data, sdu->size, &packet);
     67        if (rc != EOK) {
     68                log_msg(LVL_DEBUG, "failed decoding PDU");
    7069                return rc;
    71 
    72         return inet_recv_packet(&dgram, ttl, df);
     70        }
     71
     72        log_msg(LVL_DEBUG, "call inet_recv_packet()");
     73        rc = inet_recv_packet(&packet);
     74        log_msg(LVL_DEBUG, "call inet_recv_packet -> %d", rc);
     75
     76        return rc;
    7377}
    7478
     
    216220{
    217221        iplink_sdu_t sdu;
    218         int rc;
     222        inet_packet_t packet;
     223        int rc;
     224
     225        /* XXX Fragment packet */
     226        packet.src = dgram->src;
     227        packet.dest = dgram->dest;
     228        packet.tos = dgram->tos;
     229        packet.proto = 42;
     230        packet.ttl = ttl;
     231        packet.df = df;
     232        packet.data = dgram->data;
     233        packet.size = dgram->size;
    219234
    220235        sdu.lsrc.ipv4 = lsrc->ipv4;
    221236        sdu.ldest.ipv4 = ldest->ipv4;
    222         rc = inet_pdu_encode(dgram, ttl, df, &sdu.data, &sdu.size);
     237        rc = inet_pdu_encode(&packet, &sdu.data, &sdu.size);
    223238        if (rc != EOK)
    224239                return rc;
Note: See TracChangeset for help on using the changeset viewer.