     return err_t(ERR_OK)
 }
 
-/// This is the IP stack that receives and outputs IP packets.
-///
-/// `outputBlock` and `delegate` should be set before any input.
-/// Then call `receivedPacket()` when a new IP packet is read from the TUN interface.
-///
-/// There is a timer running internally. When the device is going to sleep (which means the timer will not fire for some time), then the timer must be paused by calling `suspendTimer()` and resumed by `resumeTimer` when the deivce wakes up.
-/// - note: This class is thread-safe.
+/**
+ This is the IP stack that receives and outputs IP packets.
+
+ `outputBlock` and `delegate` should be set before any input.
+ Then call `receivedPacket()` when a new IP packet is read from the TUN interface.
+
+ There is a timer running internally. When the device is going to sleep (which means the timer will not fire for some time), then the timer must be paused by calling `suspendTimer()` and resumed by `resumeTimer` when the deivce wakes up.
+
+ This class is thread-safe.
+ */
 public class TSIPStack {
     /// The singleton stack instance that developer should use. The `init()` method is a private method, which means there will never be more than one IP stack running at the same time.
     public static var stack = TSIPStack()

    let listenPCB: UnsafeMutablePointer<tcp_pcb>

    /// When the IP stack decides to output some IP packets, this block is called.
    /// - note: This should be set before any input.
    public var outputBlock: (([NSData], [NSNumber]) -> ())!

    /// The delegate instance.
    /// - note: Setting this variable is not protected in the GCD queue, so this shoule be set before any input and shoule never change afterwards.
    public weak var delegate: TSIPStackDelegate?

    // Since all we need is a mock interface, we just use the loopback interface provided by lwip.

    /**
     Resume the timer when the device is awoke.

     - Warning: Do not call this unless you suspend the timer, the timer starts automatically when the stack initializes.
     */
    public func resumeTimer() {
        dispatch_call {
