Wireless Token Ring Protocol UDP Implementation - PowerPoint PPT Presentation

1 / 35
About This Presentation
Title:

Wireless Token Ring Protocol UDP Implementation

Description:

UC Berkeley WOW. Accomplished Project Objectives. Implemented Kernel ... Modeling of Device. 11/11/09. Wireless Token Ring. 35. UC Berkeley WOW. Going Forward ... – PowerPoint PPT presentation

Number of Views:57
Avg rating:3.0/5.0
Slides: 36
Provided by: duke8
Category:

less

Transcript and Presenter's Notes

Title: Wireless Token Ring Protocol UDP Implementation


1
Wireless Token Ring Protocol UDP Implementation
Duke Lee, Mustafa Ergen, Jeff Ko, Ruchira Datta
2
Overview
  • Accomplished Project Objectives
  • Protocol Design Status
  • Simulation
  • UDP Implementation
  • Conclusion

3
Accomplished Project Objectives
  • Implemented Kernel Support Functions.
  • Improvement of Protocol.
  • Lean and flexible design.
  • Improved user friendliness.
  • Providing UDP user interface.
  • Implementation of Simulation Platform.
  • Simple Admission Control.
  • Compatibility across different computer
    architecture.

4
Finite State Machine
5
Joining
Have_Token
J_M
H_M
F_J
I_H
I_M
Monitoring
J_F
M_F
M_I
M_O
S_M
Floating
Idle
F_I
I_F
S_F
I_O
I_S
B_F
O_F
Soliciting
Offline
S_O
Beginning
S_I
6
Transitions From/To Beginning
Beginning
Always
Floating
7
Transitions From/To Have_Token
Idle
received normal token with greater priority
output queue is nonempty
Have_Token
done transmitting
Monitoring
token_holding expired
8
States
Claim_token_timer_expires
Offline_timer_expires
Receive_Solicit_Successor
9
Transitions From/To Offline
Idle
another ring not is_selfring
another ring not is_selfring
Offline
joined failed to transmit
Floating
offline expired
exceeded max token pass tries
Monitoring
token_pass expired
Soliciting
another ring not is_selfring
10
Transitions From/To Floating
another ring and is_selfring
Beginning
Idle
Idle
inring expired
claim token expired
always
Offline
offline expired
Floating
Joining
Joining
contention expired
got solicit_successor decided to join
failed to join
Monitoring
another ring and is_selfring
another ring and is_selfring
Soliciting
11
States
Receive_Implicit_Ack
Receive_Set_Predecessor from solicitor
Token_pass_timer_expires
Contention_timer_expires
12
Transitions From/To Joining
Floating
contention expired
Floating
Joining
got solicit_successor decided to join
failed to join
Monitoring
succeeded in joining
13
Transitions From/To Monitoring
Have_Token
token_holding expired
another ring not is_selfring
Joining
succeeded in joining
Offline
joined failed to transmit
received set_successor
received set_predecessor with greater priority
exceeded max token pass tries
Monitoring
token_pass expired
Idle
idle expired
Idle
received normal token w/ greater priority
output queues empty decided not to solicit
successor
received implicit ack
Floating
solicit_wait expired not is_selfring
another ring is_selfring
Soliciting
received request to join
14
States
Idle_timer_expires
Inring_timer_expires (Selfring)
Receive_Set_Successor
Receive_Set_Successor _Normal
_Set_Predessor
Solicit_successor_timer_expires
Solicit_wait_timer_expires
Inring_timer_expires (Not Selfring)
Receive_from_other_ring
15
Transitions From/To Soliciting
solicit_wait expired not is_selfring
Monitoring
received normal token w/ greater priority
output queues empty decided to solicit successor
received request to join
Idle
solicit_successor expired
Soliciting
solicit_wait expired is_selfring
Idle
received token of higher priority
Floating
another ring is_selfring
Offline
another ring not is_selfring
16
Transitions From/To Idle
Offline
another ring not is_selfring
another ring and is_selfring
Floating
claim token expired
Floating
inring expired
received normal token with greater priority
output queue is nonempty
Have_Token
received set_successor
received set_predecessor with greater priority
Monitoring
Monitoring
Idle
idle expired
received implicit ack
received normal token w/ greater priority
output queues empty decided not to solicit
successor
solicit_successor expired
received normal token w/ greater priority
output queues empty decided to solicit successor
Soliciting
Soliciting
solicit_wait expired is_selfring
got token of greater priority
17
Transition Conditions From B,F,H,J
  • B_F always
  • F_I claim_token timer expired
  • F_J received solicit_successor packet and
    decided to join
  • H_M token_holding timer expired
  • J_F contention timer expired, or failed to join
  • J_M succeeded in joining

18
Transition Conditions From I(1)
  • I_F received packet from another ring and
    is_selfring or inring timer expired
  • I_H received normal token with greater priority
    an output queue is nonempty
  • I_O received packet from another ring and not
    is_selfring
  • I_S received normal token with greater priority
    output queues are empty decided to solicit
    successor or solicit_successor timer expired

19
Transition Conditions From I(2),O
  • I_M received set_successor or received token
    with greater priority and (token is
    set_predecessor or (token is normal output
    queues are empty and didnt decide to solicit
    successor)) or idle timer expired
  • O_F offline timer expired

20
Transition Conditions From M
  • M_F received packet from another ring and
    is_selfring
  • M_I received implicit ack
  • M_O received packet from another ring and not
    is_selfring or exceeded max token pass tries or
    just joined and failed to transmit or token_pass
    timer expired

21
Transition Conditions From S
  • S_F received packet from another ring and
    is_selfring
  • S_I received token of lesser priority or
    solicit_wait timer expired and is_selfring
  • S_M received request to join or solicit_wait
    timer expired and not is_selfring
  • S_O received packet from another ring and not
    is_selfrin

22
Simulator
INPUT File
NAM File
TRACE File
23
Simulator
  • Packet Loss
  • Free Way Propagation Model
  • Packet Corruption
  • Signal to Noise Ratio (pending)

24
Simulator
  • Node File (input)
  • Simulation time, Range, Velocity, Seed, Namfile,
    Tracefile, node, Mobility pattern, xy location.
  • Nam File (output)
  • Gives in NAM format
  • Shows node movement,Transmission,Reception and
    Ring Address
  • Trace File (output)
  • Detailed information of received and sent packets
    for analysis.

25
Simulator
  • Mobility Patterns

Bounce
Brownian
Stable
26
UDP Implementation
Tx_Handler Process Packet
Timeout
Packet from Application
SELECT
Packet from Medium
Timer_Handler
Change State
Rx_Handler
Process Packet Reset Timers
Initialize Timers
27
Packet Formats
UDPApplications 2
UDPApplications 1
ltDADDR1, DPORT1gt,PACKET1
ltLOCAL, TOKAPPPORT gt, ltDADDR1, DPORT1gt PACKET1
Token Ring
TOKAPPPORT
TOKDEVPORT
NET
ltDADDR1, TOKDEVPORT gt, DPORT1 PACKET1
28
User Interface
  • int my_socket(int domain, int type, int protocol)
  • int my_bind(int sockfd, struct sockaddr my_addr,
    socklen_t addrlen)
  • int my_recvfrom(int s, void buf, size_t len, int
    flags, struct sockaddr from, socklen_t fromlen)
  • int my_sendto(int s, const void msg, size_t len,
    int flags, const struct sockaddr to, socklen_t
    tolen)
  • int select(int. . . .)
  • Int close(int s)

29
Example my_sendto
  • int my_sendto(int s, const void msg, size_t len,
    int flags, const struct sockaddr to, socklen_t
    tolen)
  • deviceAddr.sin_family AF_INET
  • deviceAddr.sin_port htons(TOKPORT)
  • deviceAddr.sin_addr.s_addr
    inet_addr("127.0.0.1")
  • memcpy(newmsg, to, sockAddrSize)
  • memcpy(newmsg sockAddrSize, msg, len)
  • return sendto(s, newmsg, len sockAddrSize,
    flags,
  • (struct sockaddr ) deviceAddr,
    sockAddrSize)

30
Demo (hellohello Application)
  • Uses all the functions described above.
  • Processes Compete in trying to send hellohello
    packet periodically every 1 second.

31
Conclusion (Design)
  • Restricted the use of timers corresponding to
    each state.
  • Reduced the number of states.
  • Optimization.
  • Further debugging.
  • Simplified Parameterization.
  • Minimized Memory allocation.
  • Use of queues.
  • Maximum use of existing kernel functions.

32
Parametrization (Example)
  • station-gtMAX_TOKEN_PASS_TIME upper_token_holding
    _time(station, station-gtTS) upper_proc_time(stat
    ion, station-gtTS) upper_token_holding_time(stati
    on, station-gtNS) upper_proc_time(station,
    station-gtNS)
  • station-gtMAX_SOLICIT_SUCCESSOR_TIME
    upper_proc_time(station, station-gtTS)
    ((SOLICIT_SUCCESSOR_SIZE PHY_HEADER_SIZE)TICKS_
    PER_SEC / lower_transmission_rate(station))
    upper_proc_time(station, station-gtTS)
    ((SET_SUCCESSOR_SIZE PHY_HEADER_SIZE)TICKS_PER_
    SEC / lower_transmission_rate(station))
    upper_proc_time(station, station-gtTS)
    ((SET_PREDECESSOR_SIZE PHY_HEADER_SIZE)TICKS_PE
    R_SEC / lower_transmission_rate(station))

33
Parameterization (Enforcement)
  • ASSERT((station-gtMTRT gt station-gtMAX_TOKEN_PASS_TI
    ME))
  • ASSERT(station-gtMAX_TOKEN_PASS_TIME gt
    station-gtMIN_TOKEN_PASS_TIME)
  • ASSERT(station-gtMTRT gt upper_total_token_holding_
    time(station) upper_total_management_time(station
    ))

34
Conclusion (Simulation Platform)
  • Modeling of Channel.
  • Location Information.
  • Graphical Interface.
  • Modeling of Device.

35
Going Forward
  • Release of UDP version.
  • Clean up code.
  • Making more user friendly.
  • Documentation.
  • Kernel Implementation.
  • Current code is implemented with kernel
    integration in mind.
  • Need to test our assumptions of kernels (timers,
    sk_buff, flow control, hardware access
    libraries).
  • Software Integration.
Write a Comment
User Comments (0)
About PowerShow.com