lishuai
Committed by Gerrit Code Review

[ONOS-2832] Define a ArpService interface providing the rules in ARP

table.

Change-Id: I0f8d7c31a26ece0ecb99dd9e664b74271872e655
1 +/*
2 + * Copyright 2015 Open Networking Laboratory
3 + *
4 + * Licensed under the Apache License, Version 2.0 (the "License");
5 + * you may not use this file except in compliance with the License.
6 + * You may obtain a copy of the License at
7 + *
8 + * http://www.apache.org/licenses/LICENSE-2.0
9 + *
10 + * Unless required by applicable law or agreed to in writing, software
11 + * distributed under the License is distributed on an "AS IS" BASIS,
12 + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 + * See the License for the specific language governing permissions and
14 + * limitations under the License.
15 + */
16 +package org.onosproject.vtn.table;
17 +
18 +import org.onlab.packet.IpAddress;
19 +import org.onlab.packet.MacAddress;
20 +import org.onosproject.net.DeviceId;
21 +import org.onosproject.net.flowobjective.Objective;
22 +import org.onosproject.vtnrsc.SegmentationId;
23 +
24 +/**
25 + * ArpService interface providing the rules in ARP table which is Table(10).
26 + */
27 +public interface ArpService {
28 +
29 + /**
30 + * Assemble the arp rules.
31 + * Match: arp type, vnid and destination ip.
32 + * Action: set arp_operation, move arp_eth_src to arp_eth_dst, set arp_eth_src,
33 + * move arp_ip_src to arp_ip_dst, set arp_ip_src, set output port.
34 + *
35 + * @param deviceId Device Id
36 + * @param dstIP destination ip
37 + * @param matchVni the vni of the source network (l2vni)
38 + * @param dstMac destination mac
39 + * @param type the operation type of the flow rules
40 + */
41 + void programArpRules(DeviceId deviceId, IpAddress dstIP,
42 + SegmentationId matchVni, MacAddress dstMac,
43 + Objective.Operation type);
44 +}