Sam’s Network Simulation Cradle Blog

20 Dec 2004

Some thoughts for the new year

Filed under: Network Simulation Cradle — sammydre @ 9:18 am

Should consider working on some early thesis stuff in the new year – January/February. Sections like the introduction, which will probably be easier to write now than later on, and the literature review.

For now there is no great hurry to get anything done. I’ll just continue with my 2.6.9 work and try and finish such that I wont be really confused when I start again in January.

Still need to think up some way to analyse the data in sim-18.

17 Dec 2004

Info

Filed under: Network Simulation Cradle — sammydre @ 1:54 pm

Parser updated to understand the weird and wonderful C found in the 2.6 series of the Linux kernel while still supporting FreeBSD and so on. This was quite a lot of work. But it all seems to go now.

Here is the list of undefined references in linux 2.6 at the moment, with the number of times they appear first:

    305   jiffies
192 kfree
174 _read_unlock
169 prefetch
144 _write_unlock_bh
135 _read_lock
124 _spin_unlock_bh
118 _write_lock_bh
105 copy_from_user
103 _spin_lock_bh
98 _spin_unlock
88 _read_unlock_bh
87 _spin_lock
86 proc_dointvec
82 copy_to_user
79 seq_printf
68 _write_unlock
62 _read_lock_bh
59 _write_lock
59 __kmalloc
52 preempt_schedule
52 __per_cpu_offset
48 local_bh_enable
46 mod_timer
43 del_timer
37 dump_stack
36 proc_net
36 __get_user_4
34 kmem_cache_free
32 seq_read
32 seq_lseek
31 sysctl_jiffies
31 proc_dointvec_jiffies
30 csum_partial
28 loopback_dev
27 create_proc_entry
23 ollo
23 cpu_callout_map
22 seq_open
20 kmem_cache_alloc
19 remove_proc_entry
18 seq_puts
18 notifier_call_chain
18 kmem_cache_create
17 autoremove_wake_function
16 seq_release_private
16 finish_wait
15 xtime
15 schedule_timeout
15 do_gettimeofday
15 _spin_unlock_irqrestore
15 _spin_lock_irqsave
15 __wake_up
13 strlcpy
13 get_random_bytes
13 __mod_timer
13 __alloc_percpu
11 _spin_unlock_irq
11 __up_wakeup
10 single_release
10 single_open
10 num_physpages
10 free_pages
10 __get_free_pages
9 free_percpu
9 fput
9 _spin_lock_irq
9 __down_failed
8 prepare_to_wait_exclusive
8 prepare_to_wait
8 netlink_broadcast
8 mem_map
7 register_sysctl_table
7 netlink_unicast
7 kmem_cache_destroy
7 csum_partial_copy_generic
7 crypto_free_tfm
7 _spin_trylock
6 xfrm_unregister_type
6 seq_release
6 proc_doulongvec_ms_jiffies_minmax
6 alloc_netdev
5 unregister_sysctl_table
5 system_utsname
5 request_module
5 netlink_set_err
5 crypto_alloc_tfm
5 __down_failed_trylock
4 xfrm_state_lookup
4 seq_putc
4 schedule
4 proc_dointvec_userhz_jiffies
4 contig_page_data
4 call_rcu
4 __alloc_pages
3 yield
3 xfrm_register_type
3 xfrm4_rcv
3 unregister_netdev
3 sysfs_remove_group
3 sys_close
3 simple_strtoul
3 secure_tcp_sequence_number
3 register_netdev
3 put_unused_fd
3 notifier_chain_unregister
3 notifier_chain_register
3 del_timer_sync
3 crypto_hmac
3 __xfrm_state_destroy
3 __page_cache_release
3 __get_user_1
2 xfrm_aalg_get_byname
2 xfrm4_tunnel_deregister
2 wait_on_sync_kiocb
2 sysfs_create_group
2 sysctl_intvec
2 skb_to_sgvec
2 skb_icv_walk
2 skb_cow_data
2 send_sig
2 secure_tcpv6_sequence_number
2 secure_ip_id
2 schedule_work
2 raise_softirq_irqoff
2 pskb_put
2 proc_net_stat
2 proc_mkdir
2 proc_dointvec_minmax
2 open_softirq
2 netlink_kernel_create
2 netlink_dump_start
2 netlink_ack
2 kernel_flag
2 irq_stat
2 ipv6_skip_exthdr
2 get_unused_fd
2 find_next_bit
2 fget
2 fd_install
2 crypto_hmac_update
2 crypto_hmac_init
2 crypto_hmac_final
2 cpu_online_map
2 call_rcu_bh
2 __kill_fasync
1 xfrm_state_insert
1 xfrm_state_delete_tunnel
1 xfrm_state_alloc
1 xfrm_get_type
1 xfrm_calg_get_byname
1 xfrm4_tunnel_register
1 wake_up_process
1 wait_for_completion
1 vmalloc
1 vfree
1 tasklet_init
1 synchronize_kernel
1 strnchr
1 smp_call_function
1 simple_statfs
1 si_meminfo
1 send_sigurg
1 secure_tcp_syn_cookie
1 schedule_delayed_work
1 register_filesystem
1 put_filp
1 nsc_timer_tick
1 nsc_timer_interrupt
1 nsc_sysctl_a
1 nsc_sosend
1 nsc_soreceive
1 nsc_solisten
1 nsc_sodisconnect
1 nsc_socreate_tcp
1 nsc_soconnect
1 nsc_setsockopt
1 nsc_newif
1 nsc_is_connected
1 nsc_init
1 nsc_if_receive_packet
1 nsc_get_tcp_var
1 nsc_do_sysctl
1 nsc_add_default_gw
1 nsc_accept
1 no_llseek
1 new_inode
1 netlink_set_nonroot
1 main
1 km_new_mapping
1 kill_anon_super
1 kern_mount
1 ipv6_ext_hdr
1 iput
1 inode_init_once
1 idr_remove
1 idr_pre_get
1 idr_init
1 idr_get_new_above
1 idr_find
1 get_zeroed_page
1 get_sb_pseudo
1 get_options
1 get_empty_filp
1 generic_fls
1 f_setown
1 d_rehash
1 d_instantiate
1 d_alloc

1 complete
1 class_register
1 class_device_unregister
1 class_device_rename
1 class_device_register
1 class_device_put
1 class_device_del
1 class_device_create_file
1 check_tcp_syn_cookie
1 __tasklet_schedule
1 __printk_ratelimit
1 __free_pages
1 __down_failed_interruptible
1 __copy_from_user_ll
1 __bitmap_weight

15 Dec 2004

Blah

Filed under: Network Simulation Cradle — sammydre @ 2:25 pm

So lots of sctp_sf_ symbols were just declared as functions, not function pointers, and hence cannot be globalised. And don’t need to be globalised. So that is OK. I wonder if SCTP actually works at the moment? Maybe it does. If not, I’ve got no idea why, because all necessary symbols should be globalised.

Looking at 2.6.9 idly now…

Linux 2.6

Filed under: Network Simulation Cradle — sammydre @ 10:34 am

I wonder if I should just bite the bullet and do Linux 2.6. I doubt it would take all that long.

For now I might just update my parser to work with SCTP stuff. Since I have been working on it already, I should do this when I am familiar with how it works. It should be the last major change I have to make for some time. But then again, who knows….

Filed under: Network Simulation Cradle — sammydre @ 10:25 am

FreeBSD updated to 5.3.

Parser updated to understand c99: declaring variables anywhere in a function. This was then subsequently fixed so local variables could shader global variables again. And static local variables got a fix as well.

Still waiting for my 2.4.27/2.4.28 “autosim” simulations to finish. Should be done on Friday. Until then I think I’ll pass on developing on voodoo because I don’t want to stuff the simulations up with a new version of FreeBSD.

I could start some data analysis of this situation given that I have lots of results. I don’t really want to though…

10 Dec 2004

Stuff

Filed under: Network Simulation Cradle — sammydre @ 1:08 pm

Updated to Linux 2.4.28. Initial update took 40 mins, then quite a bit of testing and other stuff took up time (yesterday).

It seems to get different results from 2.4.27. Somewhat. Haven’t found anything major. Attempting to find some results now, but I’ve ended up simulating lots and lots of stuff I don’t need also, which was take yonks.

Spent ages wondering why I was getting different results about the place, it was largely to do with the fact that I was simulating with linux 2.4.27 at one place, and 2.4.28 at another.

I did find that using the ns-2 random function in libopenbsd and libfreebsd was resulting in different simulation results. There shouldn’t be any reason for this to happen… I removed this from their sim_support.cpp files, and now simulation results are the same across computers. Huh.

  • Fork to validate.

8 Dec 2004

Simulations update progress

Filed under: Network Simulation Cradle — sammydre @ 8:16 am

Monday: 1. Made browse_sims.php. 2. Updared the rest of the simulations. 3. Ran sim-16 and lower for validation info.

Tuesday: 1. Fixed up error bar graphing in phpgraphlib. 2. Made graphs (or graph data) for simulations: 23,21,3,2,5,9,14,12,16 3. Fixed 3, 9, 14.

Graphs sim-2 and sim-14 worth further investigation. Should figure out what sim-16 is.

6 Dec 2004

tcpnorm

Filed under: Network Simulation Cradle — sammydre @ 3:58 pm

I think tcpnorm is broken again. I should fix that. It said I got a syn ack in the reverse path, I believe it to be wrong.

Note

Filed under: Network Simulation Cradle — sammydre @ 2:21 pm

Almost all my simulations use my new framework which allows me to not have to specify IP addresses and so-on — just like the normal ns-2 TCP agents.

However, there is one “gotcha” currently:

If you call $sink listen before the $sink has been connected and attached, an assertion will fail in the case of OpenBSD. It’s quite likely bad things will happen with the other stacks.

I don’t need the listen command at all, I should just remove this functionality. When I get around to it…

3 Dec 2004

Work

Filed under: Network Simulation Cradle — sammydre @ 12:36 pm

Progress report: * Updated validation info page to show validation data if data has been saved but no validation has been run. Also inform when data is out of date. * Graphing updated. Now runs get_graph_data for the new system and has the same smarts to not run this too often. * Hack added to allow gnub to simulate. Gnub is giving endless worries though, I am giving up on that machine. It seems to give random weird error after random weird error. Maybe I’ll install solaris 10 on it someday to have a play. Not that that will make it any more useful… * Run simulations on more computers. Around 7-9. This is to give the framework a thorough test as well as generate the many simulation results needed. Still want validation information for all simulations.

Need to keep updating simulations to this new system. This involves figuring out what the simulations are and documenting them!

2 Dec 2004

Progress

Filed under: Network Simulation Cradle — sammydre @ 4:19 pm

Gnub is buggered, seg faults and bus errors. Not sure why just yet…

Running lots of simulations to get validation results. This is going to take a long time.

New graphing interface almost up; leveraged Perry’s code. Made it a bit more generic and commited to CVS. Perry is now doing a bit more work on it and I’ll continue to improve it as it needs more features. This still needs to be fully integrated with the current system.

Still need to convert more simulations to the new system, but there are enough simulations to run as it is.

Running simulations on curst and chasm; this is going alright.

1 Dec 2004

Update

Filed under: Network Simulation Cradle — sammydre @ 12:57 pm

Stacks upgraded to have new stats-gathering interface. It’s hard to know what units things in the stacks are going to be; rttvar and so on seem to be used differently amonst the stacks.

Powered by WordPress