These are the software tools to accompany the IEEE MASCOTS 2022
paper on "Simulation Modeling of Zoom Network Traffic", written by
Mehdi Karamollahi and Carey Williamson at the University of Calgary.

There are three C source code files:

  makeworkload.c  - generates a synthetic workload for Zoom meetings/sessions

  route.c   - simulates the routing of this workload on a network topology

  balance.c  - simulates different Zoom server load balancing strategies

You should be able to compile and run these on a Linux system.

Usage:
  cc -o makeworkload makeworkload.c -lm
  cc -o route route.c
  cc -o balance balance.c

# To make a Zoom workload file:
  cc -o makeworkload makeworkload.c -lm     (with MEETINGS_ONLY and DEBUG both disabled)
  ./makeworkload > temp.dat
  sort -n temp.dat > sessions.dat    (to ensure it is in timestamp order)
  cp sessions.dat workload.dat
  
# To simulate 'workload.dat' on network topology 'topology.dat':
  ./route           (takes about 2 minutes on the example provided)
          (enable the LINK debug option for detailed usage on U-R link)

# To test Zoom server load balancing policies:
  cc -o makeworkload makeworkload.c -lm     (with MEETINGS_ONLY and DEBUG both enabled)
  ./makeworkload > meetings.dat
  ./balance < meetings.dat > stats.dat   (produces time series data for plotting)


The example data files provided correspond to those used
for the paper mentioned above. To generate your own files,
edit the workload generation parameter settings as desired,
and change the random number seed. Have fun!
