From 2e231c2720d80a3274f43656bf8273674c956022 Mon Sep 17 00:00:00 2001 From: Philippe Houdoin Date: Mon, 19 Jan 2004 23:38:53 +0000 Subject: [PATCH] Remove mis-placed add-ons. Fix Jamfiles to stop collide with net stack v1 modules userland targets built from src/tests/add-ons/kernel/network. git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6166 a95241bf-73f2-0310-859d-f6bbb57e9c96 --- src/tests/kits/net/new_stack/Jamfile | 35 +- src/tests/kits/net/new_stack/arp/arp.c | 218 ----------- .../net/new_stack/arp/arp_module_x86.proj | Bin 11968 -> 0 bytes src/tests/kits/net/new_stack/atomizer/Jamfile | 2 +- .../kits/net/new_stack/ethernet/ethernet.c | 348 ------------------ .../ethernet/ethernet_module_x86.proj | Bin 11973 -> 0 bytes src/tests/kits/net/new_stack/ipv4/ipv4.c | 132 ------- .../kits/net/new_stack/loopback/loopback.c | 94 ----- .../loopback/loopback_module_x86.proj | Bin 11973 -> 0 bytes .../kits/net/new_stack/memory_pool/Jamfile | 2 +- .../net/new_stack/net_stack_server_x86.proj | Bin 11834 -> 0 bytes src/tests/kits/net/new_stack/stack/Jamfile | 4 +- .../kits/net/new_stack/stack/layers_manager.c | 9 +- 13 files changed, 37 insertions(+), 807 deletions(-) delete mode 100644 src/tests/kits/net/new_stack/arp/arp.c delete mode 100644 src/tests/kits/net/new_stack/arp/arp_module_x86.proj delete mode 100644 src/tests/kits/net/new_stack/ethernet/ethernet.c delete mode 100644 src/tests/kits/net/new_stack/ethernet/ethernet_module_x86.proj delete mode 100644 src/tests/kits/net/new_stack/ipv4/ipv4.c delete mode 100644 src/tests/kits/net/new_stack/loopback/loopback.c delete mode 100644 src/tests/kits/net/new_stack/loopback/loopback_module_x86.proj delete mode 100644 src/tests/kits/net/new_stack/net_stack_server_x86.proj diff --git a/src/tests/kits/net/new_stack/Jamfile b/src/tests/kits/net/new_stack/Jamfile index 0342e4404e..ceb490b34e 100644 --- a/src/tests/kits/net/new_stack/Jamfile +++ b/src/tests/kits/net/new_stack/Jamfile @@ -2,7 +2,7 @@ SubDir OBOS_TOP src tests kits net new_stack ; UseHeaders [ FDirName $(OBOS_TOP) src tests kits net new_stack headers ] ; -SimpleTest stack_tester : +SimpleTest new_stack_tester : net_stack_server.cpp userland_modules.cpp : be @@ -11,17 +11,36 @@ SimpleTest stack_tester : { # symlink the userland add-ons dir to the dir where the net_stack_tester # lives - local dir = [ on stack_tester return $(LOCATE) ] ; - MakeLocate userland : $(OBOS_ADDON_DIR) ; - MakeLocate add-ons : $(dir) ; - RelSymLink add-ons : userland : false ; + local dir = [ on new_stack_tester return $(LOCATE) ] ; + MakeLocate userland : $(OBOS_ADDON_DIR) ; + MakeLocate add-ons : $(dir) ; + RelSymLink add-ons : userland : false ; # alias for the stack_tester the modules link against - LOCATE on stack_tester = $(dir) ; - Depends stack_tester - : stack_tester add-ons ; + LOCATE on new_stack_tester = $(dir) ; + Depends new_stack_tester : add-ons ; } +NotFile userland_network_v2_modules ; +Depends userland_network_v2_modules : + # the main stack modules + stack + memory_pool + atomizer + + # framing modules + ethernet_frame + + # interfaces modules + loopback + ether_drivers + + # protocols modules + arp + ipv4 +; + + SubInclude OBOS_TOP src tests kits net new_stack memory_pool ; SubInclude OBOS_TOP src tests kits net new_stack atomizer ; SubInclude OBOS_TOP src tests kits net new_stack stack ; diff --git a/src/tests/kits/net/new_stack/arp/arp.c b/src/tests/kits/net/new_stack/arp/arp.c deleted file mode 100644 index 78f6943eff..0000000000 --- a/src/tests/kits/net/new_stack/arp/arp.c +++ /dev/null @@ -1,218 +0,0 @@ -/* ethernet.c - ethernet devices interface module - */ - -#include -#include -#include - -#include -#include - -#include "net_stack.h" - -status_t std_ops(int32 op, ...); - -struct net_layer_module_info nlmi; - -static struct net_stack_module_info *g_stack = NULL; - -net_attribute_id ethernet_protocol_attr; - -typedef struct ethernet_addr { - uint8 byte[6]; -} ethernet_addr; - -typedef struct ipv4_addr { - uint8 byte[4]; -} ipv4_addr; - -struct arp_header { - uint16 hardware_type; /* format of hardware address */ - uint16 protocol_type; /* format of protocol address */ - uint8 hardware_size; /* length of hardware address */ - uint8 protocol_size; /* length of protocol address */ - uint16 op; /* one of: */ - - // for ethernet/ipv4 arp packets - - ethernet_addr sender_hardware_address; /* sender hardware address */ - ipv4_addr sender_protocol_address; /* sender protocol address */ - ethernet_addr target_hardware_address; /* target hardware address */ - ipv4_addr target_protocol_address; /* target protocol address */ -}; - -enum { - ARP_HARDWARE_TYPE_ETHERNET = 1, /* ethernet hardware format */ - ARP_HARDWARE_TYPE_IEEE802 = 6, /* IEEE 802 hardware format */ - ARP_HARDWARE_TYPE_FRAMEREALY = 15 -}; - -enum { - ARP_OP_REQUEST = 1, /* request to resolve address */ - ARP_OP_REPLY, - ARP_OP_RARP_REQUEST, - ARP_OP_RARP_REPLY -}; - -static void dump_arp(net_buffer *buffer) -{ - struct arp_header arp; - const char *pname; - ethernet_addr *ea; - ipv4_addr *ia; - - g_stack->read_buffer(buffer, 0, &arp, sizeof(arp)); - - switch(ntohs(arp.protocol_type)) { - case 0x0800: pname = "IPv4"; break; - case 0x0806: pname = "ARP"; break; - default: pname = "unknown"; break; - }; - - dprintf("========== Address Resolution Protocol ==========\n"); - dprintf("Hardware : %s\n", - ntohs(arp.hardware_type) == ARP_HARDWARE_TYPE_ETHERNET ? "ethernet" : "unknown"); - dprintf("Protocol : 0x%04x (%s)\n", ntohs(arp.protocol_type), pname); - dprintf("Operation : "); - switch(ntohs(arp.op)) { - case ARP_OP_REPLY: - dprintf("ARP Reply\n"); - break; - case ARP_OP_REQUEST: - dprintf("ARP Request\n"); - break; - default: - dprintf("Who knows? 0x%04x\n", ntohs(arp.op)); - }; - dprintf("Hardware address length: %d\n", arp.hardware_size); - dprintf("Protocol address length: %d\n", arp.protocol_size); - - ea = &arp.sender_hardware_address; - dprintf("Sender Hardware Address: %02x:%02x:%02x:%02x:%02x:%02x\n", - ea->byte[0], ea->byte[1], ea->byte[2], ea->byte[3], ea->byte[4], ea->byte[5]); - ia = &arp.sender_protocol_address; - dprintf("Sender Protocol Address: %d.%d.%d.%d\n", - ia->byte[0], ia->byte[1], ia->byte[2], ia->byte[3]); - - ea = &arp.target_hardware_address; - dprintf("Target Hardware Address: %02x:%02x:%02x:%02x:%02x:%02x\n", - ea->byte[0], ea->byte[1], ea->byte[2], ea->byte[3], ea->byte[4], ea->byte[5]); - ia = &arp.target_protocol_address; - dprintf("Target Protocol Address: %d.%d.%d.%d\n", - ia->byte[0], ia->byte[1], ia->byte[2], ia->byte[3]); -} - - -// #pragma mark - - - -// ------------------- -status_t init(net_layer *me) -{ - dprintf("%s: initing layer\n", me->name); - return B_OK; - -} - -status_t uninit(net_layer *me) -{ - dprintf("%s: uniniting layer\n", me->name); - return B_OK; -} - - -status_t enable(net_layer *me, bool enable) -{ - return B_OK; -} - - -status_t process_input(net_layer *me, net_buffer *buffer) -{ - uint16 *protocol; - - if (!buffer) - return B_ERROR; - - if (g_stack->find_buffer_attribute(buffer, ethernet_protocol_attr, NULL, (void **) &protocol, NULL) != B_OK) - return B_ERROR; - - if (*protocol != htons(0x0806)) // ARP on Ethernet protocol value - // Not an ARP packet - return B_ERROR; - - // TODO! - // dprintf("%s: packet %p is an ARP packet!\n", me->name, buffer); - dump_arp(buffer); - g_stack->delete_buffer(buffer, false); - - return B_OK; -} - -status_t process_output(net_layer *me, net_buffer *buffer) -{ - if (!buffer) - return B_ERROR; - - // TODO! - return B_OK; -} - -// #pragma mark - - -status_t std_ops(int32 op, ...) -{ - switch(op) { - case B_MODULE_INIT: { - status_t status; - net_layer *layer; - - dprintf("arp: B_MODULE_INIT\n"); - status = get_module(NET_STACK_MODULE_NAME, (module_info **) &g_stack); - if (status != B_OK) - return status; - - ethernet_protocol_attr = g_stack->register_attribute_id("ethernet:protocol"); - - status = g_stack->register_layer("ARP", "ethernet/arp", 30, &nlmi, NULL, &layer); - if (status != B_OK) - goto error; - - return B_OK; - -error: - g_stack->unregister_layer(layer); - put_module(NET_STACK_MODULE_NAME); - return status; - } - - case B_MODULE_UNINIT: - dprintf("arp: B_MODULE_UNINIT\n"); - put_module(NET_STACK_MODULE_NAME); - break; - - default: - return B_ERROR; - } - return B_OK; -} - -struct net_layer_module_info nlmi = { - { - NET_LAYER_MODULES_ROOT "protocols/arp/v0", - 0, - std_ops - }, - - init, - uninit, - enable, - NULL, - process_input, - process_output -}; - -_EXPORT module_info *modules[] = { - (module_info*) &nlmi, // net_layer_module_info - NULL -}; diff --git a/src/tests/kits/net/new_stack/arp/arp_module_x86.proj b/src/tests/kits/net/new_stack/arp/arp_module_x86.proj deleted file mode 100644 index 7156652d909be34c80614d4762cf8cc07767950e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 11968 zcmeHNO>7)R7Ou|pCS&8o6Jle>0WuJ6!cWEnLW_W)jmH_sWU-x=$IG99NxP?P_qzYK zyB#}4Qu76AipUIQMU8<V=H`x5U`T!`-73mGS=El&>4}+<(mEi&O4AcRt6&O{=nyLF3Ueb<6ZZ7`jeCFUe$%?Ny(9)`_akgMd4;+^;rH zvK4$!{qeUkyH&l+l2_yq>3!w4$lBW(Q za__!!M>J~~Rm*hd(O+L7+c&7_o(JId&~%;RQo&v<$R&Ku>N6{x&HA<4mg7!saF`dk zHN%&kw>luNPZXruYbUnssSIP@1xAZdHsMxc#ABLXr6 z>7&#T=<4sinjUfuX*~MTEJF?Us=a7X#``o4AipQ#lcfjl7jXvYk#OOnVs3#G*%DlT+g z38&azIcrV^Yr)#HO7~LkuCf{E_!es8i<`{FL4TGeAoY@aPpW&=a;J3*skeX}5Ny<- zlCUZ_Rptl`MXk(n%UVXY;JEnOID^Dp!rf}u1Rb^C4s@L9Qq_r4WxO$iNqA5KG`MhE zOzjUJ-5$}sv2Zy?v|A5!#LxeyGaf?w<`4G9pM8~&^PlXEX+cn*z0em?4MrF{zcpV^ z`FCLa<##&cD|wF1C$xV;59!@>DjSzUBb&rL<2$4LwtW5TgB|e@=%k14q>JvvbMD4` zUC_bz_t&$DeQ1C5m+bP`#lLNihoCFvB|E4Mb?n@Ze7(=yE&4>y_U7yKy`5|#9oV4)fdJ_QW(sd@=gFFcw4KqYw59I`Ilwl9zmR z|72okRGHKLQ!iv=^${TZmdeOa!Jk7CyE|Wh8)J0xj_7xwf8z8?{|WSe{a}X}Pcb4{ zYO~h|B2m##|2OnAl<*{dDYm5dn8cZV(H~L&%Kr^}Y9M+8bEW?q(v!;5UDymBEtjt! zInW#5BikxmB1~>UpLCEMjS;;Eysu95#%Hj_<Hzd%6ZwTI0H8X9l9Pux;6Q==p)~ z;JI*b^1Ki~jnglF;XC^5i{9utd^33%?JO2t4nCy5ccDG>JTL+MACUPSDxLLs1a#aO zY*ApJ@-+INKeIK8tew%+lM^L+4v1$ARYSe!-@TD|_Mh#Gs84i~Pj<_6_hkRG7p)q| z=aZPVVGF0-SgBTnQ1|JTwZ2jfxo=l}cOf(#Uj6Ahs-|OxO~|KyDt9J+D*f8X;RYvv zx<&u@67miFFS#(z$h6diZX{%Be2T|w=)wI%Zs$g}RYZ|9>uJve6 zqM?H18L33Yvy~L(FaiK!GGotu*cYAuYvD4TcD}Gb8LyoxTz=o)8hN0fKDaL;9%|F* zR~S2h{2NruiZ<9z+LbSUNGDmXXBN_ z7KR2;MIj*3ppTB5k(nDbSj86{w~Jw*B01=&**2Tou79HHxvn)hmvZK>;KcULx*Q(T z!)nZfj~-^wOu^T1iDX-vybs+yt6^XBVAR!INDjcs3F-9ssuIcG`X&_T@MxJxMCcuS P15SbZI9Wc356<5M%Im*h diff --git a/src/tests/kits/net/new_stack/atomizer/Jamfile b/src/tests/kits/net/new_stack/atomizer/Jamfile index 316499c2de..3d62f1efe3 100644 --- a/src/tests/kits/net/new_stack/atomizer/Jamfile +++ b/src/tests/kits/net/new_stack/atomizer/Jamfile @@ -6,4 +6,4 @@ Addon atomizer : userland generic : atomizer.c ; -LinkSharedOSLibs atomizer : stack_tester ; +LinkSharedOSLibs atomizer : new_stack_tester ; diff --git a/src/tests/kits/net/new_stack/ethernet/ethernet.c b/src/tests/kits/net/new_stack/ethernet/ethernet.c deleted file mode 100644 index 7fa5d803b0..0000000000 --- a/src/tests/kits/net/new_stack/ethernet/ethernet.c +++ /dev/null @@ -1,348 +0,0 @@ -/* generic_ethernet.c - generic ethernet devices layer module - */ - -#include -#include -#include -#include -#include - -#include -#include - -#include -#include - -#include "net_stack.h" - -enum { - ETHER_GETADDR = B_DEVICE_OP_CODES_END, - ETHER_INIT, - ETHER_NONBLOCK, - ETHER_ADDMULTI, - ETHER_REMMULTI, - ETHER_SETPROMISC, - ETHER_GETFRAMESIZE -}; - -typedef struct generic_ethernet_device { - int fd; - int max_frame_size; - volatile thread_id reader_thread; -} generic_ethernet_device; - -#define ETHER_ADDR_LEN 6 /* Ethernet address length */ -#define ETHER_TYPE_LEN 2 /* Ethernet type field length */ -#define ETHER_CRC_LEN 4 /* Ethernet CRC lenght */ -#define ETHER_HDR_LEN ((ETHER_ADDR_LEN * 2) + ETHER_TYPE_LEN) -#define ETHER_MIN_LEN 64 /* Minimum frame length, CRC included */ -#define ETHER_MAX_LEN 1518 /* Maximum frame length, CRC included */ - -#define ETHERMTU (ETHER_MAX_LEN - ETHER_HDR_LEN - ETHER_CRC_LEN) -#define ETHERMIN (ETHER_MIN_LEN - ETHER_HDR_LEN - ETHER_CRC_LEN) - -typedef struct ether_addr { - uint8 byte[ETHER_ADDR_LEN]; -} ether_addr_t; - -status_t lookup_devices(char *root, void *cookie); -status_t register_device(const char *path, void *cookie); -status_t device_reader(void *args); -status_t std_ops(int32 op, ...); - -struct net_layer_module_info nlmi; - -static struct net_stack_module_info *g_stack = NULL; - - -// ------------------- -status_t init(net_layer *me) -{ - printf("%s: initing layer\n", me->name); - return B_OK; -} - -status_t uninit(net_layer *me) -{ - generic_ethernet_device *ged = me->cookie; - - printf("%s: uniniting layer\n", me->name); - - close(ged->fd); - free(me->cookie); - - return B_OK; -} - - -status_t enable(net_layer *me, bool enable) -{ - generic_ethernet_device *ged = me->cookie; - - if (enable) { - // enable this layer - thread_id tid; - char name[B_OS_NAME_LENGTH * 2]; - - if (ged->reader_thread != -1) - // already up - return B_OK; - - strncpy(name, me->name, sizeof(name)); - strncat(name, " reader", sizeof(name)); - tid = spawn_kernel_thread(device_reader, name, B_NORMAL_PRIORITY, me); - if (tid < 0) { - printf("%s: failed to start device reader thread -> %d [%s]\n", - me->name, (int) tid, strerror(tid)); - return tid; - }; - - ged->reader_thread = tid; - return resume_thread(tid); - - } else { - - status_t dummy; - - // disable this layer - if (ged->reader_thread == -1) - // already down - return B_OK; - - send_signal_etc(ged->reader_thread, SIGTERM, 0); - wait_for_thread(ged->reader_thread, &dummy); - printf("%s: device reader stopped.\n", me->name); - ged->reader_thread = -1; - return B_OK; - }; - - return B_OK; -} - - -status_t output_buffer(net_layer *me, net_buffer *buffer) -{ - if (!buffer) - return B_ERROR; - - // TODO! - printf("%s: output_buffer:\n", me->name); - g_stack->dump_buffer(buffer); - - g_stack->delete_buffer(buffer, false); - return B_OK; -} - - -// #pragma mark - - -status_t lookup_devices(char *root, void *cookie) -{ - DIR *dir; - struct dirent *de; - struct stat st; - char path[1024]; - status_t status; - - dir = opendir(root); - if (!dir) { - printf("Couldn't open the directory %s\n", root); - return B_ERROR; - }; - - status = B_OK; - - while ((de = readdir(dir)) != NULL) { - if (strcmp(de->d_name, ".") == 0 || strcmp(de->d_name, "..") == 0) - continue; // skip pseudo-directories - - sprintf(path, "%s/%s", root, de->d_name); - - if (stat(path, &st) < 0) { - printf("generic_ethernet: Can't stat(%s) entry! Skipping...\n", path); - continue; - }; - - if (S_ISDIR(st.st_mode)) - status = lookup_devices(path, cookie); - else if (S_ISCHR(st.st_mode)) { // char device = driver! - if (strcmp(de->d_name, "stack") == 0 || // OBOS stack driver - strcmp(de->d_name, "server") == 0 || // OBOS server driver - strcmp(de->d_name, "api") == 0) // BONE stack driver - continue; // skip pseudo-entries - - status = register_device(path, cookie); - }; - }; - - closedir(dir); - - return status; -} - - -status_t register_device(const char *path, void *cookie) -{ - generic_ethernet_device *ged; - int frame_size; - ether_addr_t mac_address; - int fd; - status_t status; - char *name; - - fd = open(path, O_RDWR); - if (fd < B_OK) { - printf("generic_ethernet: Unable to open %s device -> %d [%s]. Skipping...\n", path, - fd, strerror(fd)); - return fd; - }; - - // Init the network card - status = ioctl(fd, ETHER_INIT, NULL, 0); - if (status < B_OK) { - printf("generic_ethernet: Failed to init %s device -> %ld [%s]. Skipping...\n", path, - status, strerror(status)); - close(fd); - return status; - }; - - // get the MAC address... - status = ioctl(fd, ETHER_GETADDR, &mac_address, 6); - if (status < B_OK) { - printf("generic_ethernet: Failed to get %s device MAC address -> %ld [%s]. Skipping...\n", - path, status, strerror(status)); - close(fd); - return status; - }; - - // Try to determine the MTU to use - status = ioctl(fd, ETHER_GETFRAMESIZE, &frame_size, sizeof(frame_size)); - if (status < B_OK) { - frame_size = ETHERMTU; - printf("generic_ethernet: %s device don't support ETHER_GETFRAMESIZE; defaulting to %d\n", - path, frame_size); - }; - - printf("generic_ethernet: Found device '%s': MAC address: %02x:%02x:%02x:%02x:%02x:%02x, MTU: %d bytes\n", - path, - mac_address.byte[0], mac_address.byte[1], - mac_address.byte[2], mac_address.byte[3], - mac_address.byte[4], mac_address.byte[5], frame_size); - - ged = malloc(sizeof(*ged)); - if (!ged) { - close(fd); - return B_NO_MEMORY; - }; - - ged->fd = fd; - ged->max_frame_size = frame_size; - ged->reader_thread = -1; - - name = malloc(strlen("ethernet/") + strlen(path)); - strcpy(name, "ethernet/"); - strcat(name, path + strlen("/dev/net/")); - - return g_stack->register_layer(name, &nlmi, ged, NULL); -} - -// ---------------------------------------------------- -status_t device_reader(void *args) -{ - net_layer *me = args; - generic_ethernet_device *ged = me->cookie; - net_buffer *buffer; - status_t status; - void *frame; - ssize_t sz; - - printf("%s: device reader started.\n", me->name); - - status = B_OK; - while(1) { - frame = malloc(ged->max_frame_size); - if (!frame) { - status = B_NO_MEMORY; - break; - }; - - // read on frame at time - sz = read(ged->fd, frame, ged->max_frame_size); - if (sz >= B_OK) { - buffer = g_stack->new_buffer(); - if (!buffer) { - free(frame); - status = B_NO_MEMORY; - break; - }; - - g_stack->add_to_buffer(buffer, 0, frame, sz, (buffer_chunk_free_func) free); - - printf("%s: input buffer:\n", me->name); - g_stack->dump_buffer(buffer); -/* - g_stack->add_buffer_attribut(buffer, "ethernet:header", FROM_BUFFER, 0, 14); - g_stack->add_buffer_attribut(buffer, "ethernet:to", FROM_BUFFER, 0, 6); - g_stack->add_buffer_attribut(buffer, "ethernet:from", FROM_BUFFER, 6, 6); - g_stack->add_buffer_attribut(buffer, "ethernet:protocol", FROM_BUFFER | NETWORK_ORDER, 12, 2); -*/ - // strip ethernet header - g_stack->remove_from_buffer(buffer, 0, 14); - - if (g_stack->push_buffer_up(me, buffer) != B_OK) - // nobody above us *eat* this buffer, so we drop it ourself :-( - g_stack->delete_buffer(buffer, false); - }; - }; - - ged->reader_thread = -1; - return status; -} - -// #pragma mark - - -status_t std_ops(int32 op, ...) -{ - switch(op) { - case B_MODULE_INIT: { - status_t status; - - printf("generic_ethernet: B_MODULE_INIT\n"); - status = get_module(NET_STACK_MODULE_NAME, (module_info **) &g_stack); - if (status != B_OK) - return status; - - lookup_devices("/dev/net", NULL); - return B_OK; - }; - - case B_MODULE_UNINIT: - printf("generic_ethernet: B_MODULE_UNINIT\n"); - put_module(NET_STACK_MODULE_NAME); - break; - - default: - return B_ERROR; - } - return B_OK; -} - -struct net_layer_module_info nlmi = { - { - NET_LAYER_MODULES_ROOT "interfaces/generic_ethernet", - 0, - std_ops - }, - - init, - uninit, - enable, - NULL, // no control() - output_buffer, - NULL // interface layer: no input_buffer() -}; - -_EXPORT module_info *modules[] = { - (module_info*) &nlmi, // net_layer_module_info - NULL -}; diff --git a/src/tests/kits/net/new_stack/ethernet/ethernet_module_x86.proj b/src/tests/kits/net/new_stack/ethernet/ethernet_module_x86.proj deleted file mode 100644 index cf698117b1a9bdc3e1758b95f1738d9c31019119..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 11973 zcmeHN-ESP#6~B`mlC^Q-4Y6y-0kTQdq(IgSLPe!Pjn`SngxJo=>+&Vq&3N|OJN0~Z zW*j?;kVYy(fZzcsLg`C|ME-#A1gc8KLsWQ(qDs63QB{3FeTb$ARY)MT5&fMzckFer zAb4F7Y4^%^=H7G9Irp63-nnyp=1!g{k1;mb6$HVZvHUR@}-U1$;8<@-Og2;E^VVSe-g2Jkw>)+_YVOjz|5l=2&_=Ua z!!nJ9suwc$_Y!0O9PJ&Ss!R^%W_;aP;Qo^)Uz%|jxbqoaZhv51Y_9}%hqx>3&f{a# z(}Swd=YqRH+J<_1XTno0Xr^OsM}^2!_ajCdPyd8?5z6Sv(8p+9t7N(=YF+$ zlI`Go_V>Sv*}duwmb@ZINbg(wBI{sxOig+L_n|KT>D*!J{~UxzP>D9<&(AZ~)q^J4 zl&inIFPb-us%1J0=x?l$?VD6|&jav!Xu3{uxnM69-z$e|FbQ_x?j+Jqi&x0K0|=X7RD$5qXJx##s;q;Uk;1+Z%~-T$d(5l z5DIP!TO=H}g)K6+yFF}4jQP=R!AhyQt*u$H*l=li?Lr4%-kbn@Gi<>>Pn%LU#g@>v zHp7^fZOJgEOGB`BTYI;)>JV&kZx>rsruYbUT6Jkt z;^b2r3AL2lPm3HFd$mI`pZ3Vj_J$`=9@E2Qs_{VP&50g(TSjB zzhAQF#2hsaGWSKUY0V@glSrudB@(Jysv#0YET>!J$BwNR-mOmAX>}0jAkc0I$Sr0l z3GY~zwmT8tt!#F3OF5JVfNQptPAJ%J3#Q|52Z8TGKyD~~(?OZSFm;*-Wj)kMM3G|; zBMzi&-ra};4SX$3GgTmo12vSQVmtEzmC5D|CgDK|(BSI6 znA)G5+!@imxo|l~w0nTh+G|_m5$H;J$qs5m9lN|M-xx6Wiayb^{rLucZzr3Ghinmc zKejvS1^wKfe&MsAkpj>e%QpxI>MH18#{BlzeKCy@UyS}9jK$D*^3i@lCte{-@{*74 zpHA(LDs|m|<$N|)9|yAUtBm{<{5d4Cd-ILIVT?}R5&dWApM7<;|1|nPeY8uArx=ke zwb`YiNL2LG--f>35}u?l#g_D*mN>J|2P5j={M)c+hoZk=uJpGdJ*hn1h0Wm6a{0!I zBmMD%vaP};!sH(GNe9W%7}5K{dvU5izJM(*hc?L){lgQP>t7wnT%Q5GoXdB;Pg@{l zsQ=5s%yr_YaoPn^8HHu8L-gBzHq)@FlJDvMkorl!r)w~!HLpu{VJLbRwypRMJ>T*j zJXaq|o)_Y$ak!fJjz0UmKY9V*Oddl!iv^d152^1xXpg)EOhA7FGEbn=S&zp-$Bn@j z1@|gehRRj4- z60C#0)sXvk)pr*|)8SQ`|A&>T>6l>)@~NN7eTkpSpf+~A$;lsP zOWV&{p=9wjEj`(@AyAH@&=aa@rO{Nu+BDZJPUqa}(VRp> z1<5l~iHc_{DavsK0K#O(Uif4ny0T~g4La?7^>8v?8`^*4BYS(~fj;rffrxmhO`~66 z>Ta^f0ps^=L43aniIY#uz}|CBAkq7Xo+DH+aEtYn)A1j$0T? z&y+C&5`B7~+?i(Ph7DHn1>1g*@giX<8=W`XVRPH{&sIIxwT9~{XPy|FII)Mb9%T9G zi8U6$M^7|pCb2b_NOq*%htNH+7W;KiM@c`1QdQCq`gpoEIRz&tq$A{ON+f$5n@|8p SYo!@D90m1pynGm6o&N_1^1pTf diff --git a/src/tests/kits/net/new_stack/ipv4/ipv4.c b/src/tests/kits/net/new_stack/ipv4/ipv4.c deleted file mode 100644 index 0581169b56..0000000000 --- a/src/tests/kits/net/new_stack/ipv4/ipv4.c +++ /dev/null @@ -1,132 +0,0 @@ -/* ipv4.c - ipv4 protocol module - */ - -#include -#include -#include -#include - -#include -#include - -#include -#include - -#include "net_stack.h" - -status_t std_ops(int32 op, ...); - -struct net_layer_module_info nlmi; - -static struct net_stack_module_info *g_stack = NULL; - -net_attribute_id ethernet_protocol_attr; - -// ------------------- -status_t init(net_layer *me) -{ - printf("%s: initing layer\n", me->name); - return B_OK; - -} - -status_t uninit(net_layer *me) -{ - printf("%s: uniniting layer\n", me->name); - return B_OK; -} - - -status_t enable(net_layer *me, bool enable) -{ - return B_OK; -} - - -status_t process_input(net_layer *me, net_buffer *buffer) -{ - uint16 *protocol; - - if (!buffer) - return B_ERROR; - - if (g_stack->find_buffer_attribute(buffer, ethernet_protocol_attr, NULL, (void **) &protocol, NULL) != B_OK) - return B_ERROR; - - if (*protocol != htons(0x0800)) // IPv4 on Ethernet protocol value - return B_ERROR; - - // TODO! - dprintf("%s: packet %p is an IPv4 packet!\n", me->name, buffer); - g_stack->delete_buffer(buffer, false); - - return B_OK; -} - -status_t process_output(net_layer *me, net_buffer *buffer) -{ - if (!buffer) - return B_ERROR; - - // TODO! - return B_ERROR; -} - -// #pragma mark - - -status_t std_ops(int32 op, ...) -{ - switch(op) { - case B_MODULE_INIT: { - status_t status; - net_layer *layer; - - printf("ipv4: B_MODULE_INIT\n"); - status = get_module(NET_STACK_MODULE_NAME, (module_info **) &g_stack); - if (status != B_OK) - return status; - - ethernet_protocol_attr = g_stack->register_attribute_id("ethernet:protocol"); - - status = g_stack->register_layer("IPv4", "ethernet/ipv4", 2, &nlmi, NULL, &layer); - if (status != B_OK) - goto error; - - return B_OK; - -error: - g_stack->unregister_layer(layer); - put_module(NET_STACK_MODULE_NAME); - return status; - } - - case B_MODULE_UNINIT: - printf("ipv4: B_MODULE_UNINIT\n"); - put_module(NET_STACK_MODULE_NAME); - break; - - default: - return B_ERROR; - } - return B_OK; -} - -struct net_layer_module_info nlmi = { - { - NET_LAYER_MODULES_ROOT "protocols/ipv4/v0", - 0, - std_ops - }, - - init, - uninit, - enable, - NULL, - process_input, - process_output -}; - -_EXPORT module_info *modules[] = { - (module_info*) &nlmi, // net_layer_module_info - NULL -}; diff --git a/src/tests/kits/net/new_stack/loopback/loopback.c b/src/tests/kits/net/new_stack/loopback/loopback.c deleted file mode 100644 index 7a2bddbc4d..0000000000 --- a/src/tests/kits/net/new_stack/loopback/loopback.c +++ /dev/null @@ -1,94 +0,0 @@ -/* loopback.c - loopback interface module - */ - -#include -#include -#include -#include - -#include - -#include "net_stack.h" - -status_t std_ops(int32 op, ...); - -struct net_layer_module_info nlmi; - -static struct net_stack_module_info *g_stack = NULL; - - -// ------------------- -status_t init(net_layer *me) -{ - dprintf("%s: initing layer\n", me->name); - return B_OK; -} - -status_t uninit(net_layer *me) -{ - dprintf("loopback: uniniting layer\n"); - return B_OK; -} - - -status_t enable(net_layer *me, bool enable) -{ - return B_OK; -} - - -status_t process_output(net_layer *me, net_buffer *buffer) -{ - if (!buffer) - return B_ERROR; - - // Here the magical loopback effect ;-) - return g_stack->send_up(me, buffer); -} - -// #pragma mark - - -status_t std_ops(int32 op, ...) -{ - switch(op) { - case B_MODULE_INIT: { - status_t status; - - dprintf("loopback: B_MODULE_INIT\n"); - status = get_module(NET_STACK_MODULE_NAME, (module_info **) &g_stack); - if (status != B_OK) - return status; - - return g_stack->register_layer("loopback", "loopback/frame", 0, &nlmi, NULL, NULL); - } - - case B_MODULE_UNINIT: - dprintf("loopback: B_MODULE_UNINIT\n"); - put_module(NET_STACK_MODULE_NAME); - break; - - default: - return B_ERROR; - } - return B_OK; -} - -struct net_layer_module_info nlmi = { - { - NET_LAYER_MODULES_ROOT "interfaces/loopback", - 0, - std_ops - }, - - init, - uninit, - enable, - NULL, // no control() - NULL, // interface layer: processing input buffer doesn't make sense! - process_output -}; - -_EXPORT module_info *modules[] = { - (module_info*) &nlmi, // net_layer_module_info - NULL -}; diff --git a/src/tests/kits/net/new_stack/loopback/loopback_module_x86.proj b/src/tests/kits/net/new_stack/loopback/loopback_module_x86.proj deleted file mode 100644 index c144c0261e78ff04335547a3cb4ca4ec0562ebac..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 11973 zcmeHNUu+!38K2EKm+%Ba1@RC;AEF3}msC_$A5b5nEus}ttLh^9`(|hD zbFd)sxgzS_$g?~1&G&uteZQNX{rv4rohXkpHu82^^XC{l{Ep_2JB%^)a}>>g#-}!F zM)S?HxMxv!D7chMhJjlSbvr7RZ=i0gXyF253h^huGhIA6lp? z*{ori#$weA8T+8b*k8taC#EY?gSlB>Hx{}7jLDa0-9_$vf|uKKtc&fJ!0r-vh23?0 zd}d})_4!uovf)JMj6 zfm?HYg&RwuUbDU`F!>+bGNSth-8UA@vtMNhFxkc!1z=QwOVZfnHRLN{@xe_BlNj0Z z&_hDO9bt=vwpJa2E$*FSi^>!q!A`3#ZHYW^2_!II_ir>Iav8(_oZ!wF zd@D{pt5F_fu;h8;bu)B*jlwt)FHzKZ?b@}^yD_dP_`@X;Q}-K&fzV1-;m$GF_DqZW zCp`*e0!9H+Va_v+eBtDyXm?5nfer%gg@D{9?yXy^+r%XP=~}-@v=<~DZ#xKd5NJj~ zh9Co!8UkJYfmhcGM3bQ)rZY1C6k}n=?#O=uneTGy9sU ziJ)YEP_pO59CZ#d_eHL0-6SNFNT?4a5~^CNBN9X`r&|-pj%^g)txef!br9$v&~6CG zEoLYQ?^u?$I}zTkZgz4@Ig|!~>$a3mDA;ZbrsHo1fiFWqZYX^-K^Y$*nL5LRvL5Or zqR6pF5eHH>?;gZ~2EG=inJSRPff`CtvEBKGkYPfN3~ZPqMNg$MS(4*gl_Zf(7D|gj zR9xt~7EZB)a@L#-)`E>^mF}h7J!Lb{@h#NG7dM%UgZ?Z{KgMqE;5TWv!xGa9n(CoI~O+;cmBUf{r?92RhDlsp@p8GS!^HBs?eq z8eF|UruIiq?~dr+T(}$~+I>g5;uqiQjz`hH=T8UYzkimG^B*6KX+cn*y)qC{4aOO} zvNPXE`S)P_x9@kyH}jlXOlZG`9@4w*rEFXVjcgM0Ozn&EyYh{H9qo!oK_@+QCtY+W zp38UV8-fnLUtY>4_M!df7qY8k*M6}*9)+%ym+YW6)UnHZ@{Iv=zvvS^+n;aH_ja<0 zc*quE_Y?b~UeM1E_Y0o|jTC^+SiV6xP**|!GUm7c(-+ei@x|y5V=RWgryuVZbmA4V zBro~s{_*s_sIs8@FTIkD)hB`MyDB3;1%D1n?B0CiJ&e)GJEDIZ{c|s`^-rPyt;f5> zc#09pQkz{GibO>}{cY&mE#XP}Qfx`@8HqFdbTFd+&A$yhJrw-`bEUrx=}G13E^G#m zmdiIz9O;iAmTeU-5hnMdPdZ4B#)#er-iy=y@da#gIkZWZ=zlzsx&H41nd`Hlmvi~9 zcWDcR4E4V^n7K~;G)}ufDxb%=h^&t@7nRq{REA5uTb_jC=WwB~imE(}F)!nRf4 zq2~*}gXiia$@4<|G!9o2-_d8E_D9d-o5>SsXR+XN@FDfR2kp@pfeGlpg3ME>bk^fZ z&~an1MS*?FkI?_*$2+6Q+853KaJod#0r5OQ@)Hdm@4_wB0hE`_GUtGBPCYC2}vf_&d~A;Lj}n*Qi+OZD=Erx1OUQh#-9IZAiDC}-Wzn<`Rd_hy#DIm8z0&`BMh|7-AmZte~aPfo$f3F!#=x)RCW W<|Y)t(OOvtoLTd6ynF;-o&O6OxxteF diff --git a/src/tests/kits/net/new_stack/memory_pool/Jamfile b/src/tests/kits/net/new_stack/memory_pool/Jamfile index 16086b6727..cd64f198a3 100644 --- a/src/tests/kits/net/new_stack/memory_pool/Jamfile +++ b/src/tests/kits/net/new_stack/memory_pool/Jamfile @@ -6,4 +6,4 @@ Addon memory_pool : userland generic : memory_pool.c ; -LinkSharedOSLibs memory_pool : stack_tester ; +LinkSharedOSLibs memory_pool : new_stack_tester ; diff --git a/src/tests/kits/net/new_stack/net_stack_server_x86.proj b/src/tests/kits/net/new_stack/net_stack_server_x86.proj deleted file mode 100644 index fcf200a47d1d4929b6e5b666221b4a213b895885..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 11834 zcmeHNVQ3Ub6rMF#Jwu|2CMHqSt_^5aE~m9fiv^7)Mlp$tvD!l0bF()|PIqsQ-A#;0 zVSk7f+lu{XX$z%T=&#cLC>4Jce}qlq z45;}4_Q=_8W~5XsQfLo0`FSxjeWhZB2|cH=M<2J{q(I|BoZEv$mx3s7rDx>ooDhLJKe*(0;Ih5Q4XHGcu4p39jTL-#UvHaU{8 zjwa+SDK7qZ}GVNS}N$l_V%TnJONEESCDQV{Ij;{Mx;RS2@!kBclZrZ}!M zHxJSr*u|BGdDQo)Q@p#cxYfzC+o4vn`=Cbe?Tu}@Tt_lX zie8#!sKL%#M-9sG zzDonhXNmY^H za*8P>T|&~;h2fKBXAkO5Hj^C?#8Wd&l4(r=Qz7|;tRbT$Unj|H#2RT1G$u_)n~vaENI#*|p^AUDnN(L~n9 zSF?U3pk|u?$sLoH+k_~Ya-Ay?B^%szqdXo^;&=@u@K~*yCqpPq7&!{Cvy%1IC}IsW zfa9FRGRs0qL$HbqT_=J~wpy-QBSTqt`cP7BcVlDZ|D zyVJD$bQ6h5mlP0W)S(iR#u_bG#~G$rtf#HFyD)=EG?V~!udWKHe{D~#Piy-(Lx1JZtAjsptAYC4>VQ-xn8h1?stY<8yHc&@Bl>!bfAW20FqP)ekr4L* z=An7#osI|Xz>!P@tIbWmx=79cy>(%*4S1S|TAGVmq8VMH<^>*f?|&H&BD{0EFa)fQs!0k17q^V{E!2a!Dp)&L8c>1LrAf2aZbw9#J@fu zTwSB)qx*U4Kuf@=qSQz}TH`F?B)s{C8j#l-#TsWj>w|Oj0RFmM=)DVbwWD6bSPb+x z(SCR`r1__%;zsE0aCQzfL`(7!p5|By`1cuTFYm6nLA3ipOZ7}c$QRA~8DNO5Z1|?$ zr*$r6m-!nY7s(OrOL7~um!|sFL)cr=ENr@c$u2MVFF?L%U(!7H+zZfL-55SEL{H=N z#!osn171Fie*l;z_;e1bMn=16TU4X2>e*~Ux)H>8%z@uS!MigvI<#oV+ zy;1G6?;8F6ul2Mol{8(zYpA5Vc=q3H@Chb7@k`ecImhePQ8Nwnl`v*4a8l%NloTZn z#Fiu8hc79QJ66iEhp>HlY8L#NY{n~sKk|dh+E7oWQR~=Qpyb0#^u%+>|Cq1j#yBU_ zQa!qb)D?X?Ly5yPMJIb^Wst2Xo533Lw#btjj=7rztNKc@SbA= zJ`tgGXDo`%)}Xdb)?wOHM%}$TO^~ia6@HWqi*7AyHPU``s;`f?;&ZB8_nvf}4@xSt zTepQ+$@Fqv@*9igx(-e#)5Yram#j&rE<1ywhl&=>J-Wv uz*XZ@gHCFI0~JjlV{C(<$Hhn8`oo#8i_l;QNmNtMrc;)k9>V4l8vF;;zMK#M diff --git a/src/tests/kits/net/new_stack/stack/Jamfile b/src/tests/kits/net/new_stack/stack/Jamfile index 599ec5f8e9..42ee9a2498 100644 --- a/src/tests/kits/net/new_stack/stack/Jamfile +++ b/src/tests/kits/net/new_stack/stack/Jamfile @@ -2,7 +2,7 @@ SubDir OBOS_TOP src tests kits net new_stack stack ; UseHeaders [ FDirName $(OBOS_TOP) src tests kits net new_stack headers ] ; -Addon stack : userland network_v2 : +Addon stack : userland network_v2 : stack.c attribute.c layers_manager.c @@ -11,4 +11,4 @@ Addon stack : userland network_v2 : dump.c ; -LinkSharedOSLibs stack : stack_tester be ; +LinkSharedOSLibs stack : new_stack_tester be ; diff --git a/src/tests/kits/net/new_stack/stack/layers_manager.c b/src/tests/kits/net/new_stack/stack/layers_manager.c index f529c6896d..ea895d1f49 100644 --- a/src/tests/kits/net/new_stack/stack/layers_manager.c +++ b/src/tests/kits/net/new_stack/stack/layers_manager.c @@ -54,7 +54,7 @@ status_t start_layers_manager(void) set_sem_owner(g_layers.lock, B_SYSTEM_TEAM); #endif - // Load all network/interfaces/* modules and let them + // Load all network/* modules and let them // register any layer they may support by calling init() module_list = open_module_list(NET_MODULES_ROOT); if (module_list) { @@ -68,12 +68,15 @@ status_t start_layers_manager(void) if (!strlen(module_name)) continue; + if (strcmp(module_name, NET_STACK_MODULE_NAME) == 0) + continue; // skip ourself! ;-) + dprintf("layers_manager: loading %s layer(s) module\n", module_name); if (get_module(module_name, (module_info **) &nlmi) != B_OK) continue; - // this module may have been acquire more time by calling register_layer() - // or have B_KEEP_LOADED flag, so we don't care... + // this module may have been acquire more time if he called register_layer(), + // or have a B_KEEP_LOADED flag, so we don't care... put_module(module_name); }; close_module_list(module_list);