Appendix F. Example for a Transport Protocol

   


 /********************************************************** * Example for a transport protocol * Compile: * gcc -I/lib/modules/'uname -r'/build/include -c file.c **********************************************************/ #ifndef _KERNEL_ #define _KERNEL_ #endif #ifndef MODULE #define MODULE #endif #include <linux/module.h> #include <linux/version.h> #include <linux/kernel.h> #include <linux/init.h> #include <linux/skbuff.h> #include <linux/in.h> #include <net/protocol.h> MODULE_AUTHOR("Test Author (fixme@Linux-netzwerkarchitektur.de)"); MODULE_DESCRIPTION("Module with a layer-4 test protocol"); int test_proto_rcv(struct sk_buff *skb); static struct inet_protocol test_protocol = {        &test_proto_rcv,    /* protocol handler */        NULL,               /* error control */        NULL,               /* next */        IPPROTO_TCP,        /* protocol ID */        0,                  /* copy */        NULL,               /* data */      " Test_Protocol"      /* name */ }; int test_proto_rcv(struct sk_buff *skb) {        printk(KERN_DEBUG "Test protocol: Packet Received with length: %u\n",              skb->len);        return skb->len; } int init_module(void) {       inet_add_protocol(&test_protocol);       return 0; } void cleanup_module(void) {       inet_del_protocol(&test_protocol); }


       


    Linux Network Architecture
    Linux Network Architecture
    ISBN: 131777203
    EAN: N/A
    Year: 2004
    Pages: 187

    flylib.com © 2008-2017.
    If you may any questions please contact us: flylib@qtcs.net