/* * Copyright 2017-present Open Networking Laboratory * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.onosproject.ofagent.impl; import io.netty.channel.ChannelInitializer; import io.netty.channel.socket.SocketChannel; import io.netty.handler.timeout.ReadTimeoutHandler; import org.onosproject.ofagent.api.OFSwitch; /** * Implementation of OpenFlow channel initializer. */ public final class OFChannelInitializer extends ChannelInitializer<SocketChannel> { private final OFSwitch ofSwitch; private static final int READ_TIMEOUT = 30; /** * Default constructor. * * @param ofSwitch openflow switch that owns this channel */ public OFChannelInitializer(OFSwitch ofSwitch) { this.ofSwitch = ofSwitch; } @Override protected void initChannel(SocketChannel ch) throws Exception { ch.pipeline().addLast(new OFMessageDecoder()) .addLast(new OFMessageEncoder()) .addLast(new ReadTimeoutHandler(READ_TIMEOUT)) .addLast(new OFChannelHandler(ofSwitch)); } }