aboutsummaryrefslogtreecommitdiffstats
path: root/src/vpp-api/java
AgeCommit message (Collapse)AuthorFilesLines
2017-04-27japi: fix compilation on 32-bit systemsDamjan Marion7-7/+7
Change-Id: Ia7cb986544a13cc17b43b2f0948482deb02e8fb5 Signed-off-by: Damjan Marion <damarion@cisco.com>
2017-04-06jvpp: remove unused print&endian headers (fixes VPP-688)Marek Gradzki6-64/+10
Change-Id: I97e03d98758a08b1f75a9a1f35f0181385a10ae8 Signed-off-by: Marek Gradzki <mgradzki@cisco.com>
2017-03-30Clean up more Debian packaging symbol warningsDave Barach1-1/+0
Change-Id: I6081a38af3817f0957a2faf0e3e41afa4a74f3a4 Signed-off-by: Dave Barach <dave@barachs.net>
2017-02-22jvpp: remove unnecessary msg_id_base cachingMarek Gradzki11-178/+90
Jvpp code uses CRCs to obtain msg IDs. Checking api_main_t.msg_index_by_name_and_crc is enough to detect API mismatch. Calling vl_client_get_first_plugin_msg_id is not needed. Also fixes VPP-627. Change-Id: Ie3085dfa458795fa11f17615ac94e76197a1c8cd Signed-off-by: Marek Gradzki <mgradzki@cisco.com>
2017-02-02LISP: enhance binary part of some APIsFilip Tehlar1-1/+2
Remote mapping and locator set binary APIs uses zero length arrays defined as 'u8 array[0]' in .api file. This path will change such cases to form 'type_t array[count];' in order to enhance maintainability. Change-Id: I98d0252b441020609c550d48186ed0d8338a3f2d Signed-off-by: Filip Tehlar <ftehlar@cisco.com>
2017-01-31jvpp: fix coverity warn: reliance on default encodingMarek Gradzki5-18/+35
Change-Id: I8333b7d19ebdacac5445b4505750dd0a46764b36 Signed-off-by: Marek Gradzki <mgradzki@cisco.com>
2017-01-28Add files to CLEANFILES for robust make clean.Burt Silverman1-1/+1
At the least, $(BUILT_SOURCES) should be added to CLEANFILES. Also beneficial is $(api_DATA), and in the case of Java, *.files and *.h. Also there is a vpp/app/version.h, and some grammar and lex files in vppapigen. Change-Id: Ic6d3f2d40ce65e1d9a8b88217fa1f36de393ebb4 Signed-off-by: Burt Silverman <burtms@gmail.com>
2017-01-27jvpp: utilize per-message CRCs (VPP-544)Marek Gradzki11-15/+143
Since messages ids are no longer statically referenced, fixes also VPP-611. Change-Id: Ic8e6ee2b7f1142c185595347984d69350be25ac3 Signed-off-by: Marek Gradzki <mgradzki@cisco.com>
2017-01-18jvpp: include libjvpp_common in rpm packagesMarek Gradzki1-0/+1
Change-Id: Idef5f036c9dc679b062931f38fcc311d00fc0017 Signed-off-by: Marek Gradzki <mgradzki@cisco.com>
2017-01-16Fix linker warnings for jvpp shared libsMarek Gradzki1-1/+1
Change-Id: I02d01ce210d5bbe11ad2ee70f7703647f9147416 Signed-off-by: Marek Gradzki <mgradzki@cisco.com>
2017-01-12jvpp: include jvpp_common in vpp packagesMarek Gradzki1-1/+1
Change-Id: Idcf37fc4a031c1c95362aeadf11768103e40d0fd Signed-off-by: Marek Gradzki <mgradzki@cisco.com>
2017-01-11jvpp: add missing dependencies on various libsMarek Gradzki1-5/+23
Change-Id: Ifa6845458f7249d2179a20b954fcdd49d6c68aa1 Signed-off-by: Marek Gradzki <mgradzki@cisco.com>
2017-01-11Makefile.am cleanupDamjan Marion1-0/+1
- remove unused stuff - add --quiet flag to libtool - avoid building some tests programs when tests are not enabled Change-Id: Ie34aeec1a598ad811256a00354f66cfddae9d0b9 Signed-off-by: Damjan Marion <damarion@cisco.com>
2017-01-11jvpp: compile static Java files and include in generated jarsMarek Gradzki1-3/+3
Most Java bindings for VPP APIs provide some tests/examples. The patch includes them in the compilation process. Change-Id: Icef3d061c1afd727e8544a7fe5c0204453b1c1d0 Signed-off-by: Marek Gradzki <mgradzki@cisco.com>
2017-01-10japi: include tests in jar filesDamjan Marion1-0/+1
Change-Id: Idffaafda8fac06a45edef6f3ef13379293d0faa0 Signed-off-by: Damjan Marion <damarion@cisco.com>
2017-01-05Added vpe.api java binding generationJan Srnicek1-0/+1
added missing path for vpe.api file Change-Id: I61f727002dd663d6a5656b0d01380e77b44c4a42 Signed-off-by: Jan Srnicek <jsrnicek@cisco.com>
2017-01-03jvpp: install jvpp_common.h into include/Damjan Marion1-0/+3
Change-Id: Iaffc619f3219239e753609f0963d396237aae378 Signed-off-by: Damjan Marion <damarion@cisco.com>
2017-01-01Move java,lua api and remaining plugins to src/Damjan Marion77-0/+7763
Change-Id: I1c3b87e886603678368428ae56a6bd3327cbc90d Signed-off-by: Damjan Marion <damarion@cisco.com>
ace, self).resolve_ndp(self.parent) @abstractmethod def add_dot1_layer(self, pkt): pass def remove_vpp_config(self): self.test.vapi.delete_subif(self._sw_if_index) def _add_tag(self, packet, vlan, tag_type): payload = packet.payload inner_type = packet.type packet.remove_payload() packet.add_payload(Dot1Q(vlan=vlan) / payload) packet.payload.type = inner_type packet.payload.vlan = vlan packet.type = tag_type return packet def _remove_tag(self, packet, vlan=None, tag_type=None): if tag_type: self.test.instance().assertEqual(packet.type, tag_type) payload = packet.payload if vlan: self.test.instance().assertEqual(payload.vlan, vlan) inner_type = payload.type payload = payload.payload packet.remove_payload() packet.add_payload(payload) packet.type = inner_type return packet def add_dot1q_layer(self, packet, vlan): return self._add_tag(packet, vlan, self.DOT1Q_TYPE) def add_dot1ad_layer(self, packet, outer, inner): p = self._add_tag(packet, inner, self.DOT1Q_TYPE) return self._add_tag(p, outer, self.DOT1AD_TYPE) def remove_dot1q_layer(self, packet, vlan=None): return self._remove_tag(packet, vlan, self.DOT1Q_TYPE) def remove_dot1ad_layer(self, packet, outer=None, inner=None): p = self._remove_tag(packet, outer, self.DOT1AD_TYPE) return self._remove_tag(p, inner, self.DOT1Q_TYPE) def set_vtr(self, vtr, push1q=0, tag=None, inner=None, outer=None): self._tag1 = 0 self._tag2 = 0 self._push1q = 0 if (vtr == L2_VTR_OP.L2_PUSH_1 or vtr == L2_VTR_OP.L2_TRANSLATE_1_1 or vtr == L2_VTR_OP.L2_TRANSLATE_2_1): self._tag1 = tag self._push1q = push1q if (vtr == L2_VTR_OP.L2_PUSH_2 or vtr == L2_VTR_OP.L2_TRANSLATE_1_2 or vtr == L2_VTR_OP.L2_TRANSLATE_2_2): self._tag1 = outer self._tag2 = inner self._push1q = push1q self.test.vapi.sw_interface_set_l2_tag_rewrite( self.sw_if_index, vtr, push=self._push1q, tag1=self._tag1, tag2=self._tag2) self._vtr = vtr class VppDot1QSubint(VppSubInterface): @property def vlan(self): """VLAN tag""" return self._vlan def __init__(self, test, parent, sub_id, vlan=None): if vlan is None: vlan = sub_id self._vlan = vlan r = test.vapi.create_vlan_subif(parent.sw_if_index, vlan) self._sw_if_index = r.sw_if_index super(VppDot1QSubint, self).__init__(test, parent, sub_id) def create_arp_req(self): packet = VppPGInterface.create_arp_req(self) return self.add_dot1_layer(packet) def create_ndp_req(self): packet = VppPGInterface.create_ndp_req(self) return self.add_dot1_layer(packet) # called before sending packet def add_dot1_layer(self, packet): return self.add_dot1q_layer(packet, self.vlan) # called on received packet to "reverse" the add call def remove_dot1_layer(self, packet): return self.remove_dot1q_layer(packet, self.vlan) class VppDot1ADSubint(VppSubInterface): @property def outer_vlan(self): """Outer VLAN tag""" return self._outer_vlan @property def inner_vlan(self): """Inner VLAN tag""" return self._inner_vlan def __init__(self, test, parent, sub_id, outer_vlan, inner_vlan): r = test.vapi.create_subif(parent.sw_if_index, sub_id, outer_vlan, inner_vlan, dot1ad=1, two_tags=1, exact_match=1) self._sw_if_index = r.sw_if_index self._outer_vlan = outer_vlan self._inner_vlan = inner_vlan super(VppDot1ADSubint, self).__init__(test, parent, sub_id) def create_arp_req(self): packet = VppPGInterface.create_arp_req(self) return self.add_dot1_layer(packet) def create_ndp_req(self): packet = VppPGInterface.create_ndp_req(self) return self.add_dot1_layer(packet) def add_dot1_layer(self, packet): return self.add_dot1ad_layer(packet, self.outer_vlan, self.inner_vlan) def remove_dot1_layer(self, packet): return self.remove_dot1ad_layer(packet, self.outer_vlan, self.inner_vlan) class VppP2PSubint(VppSubInterface): def __init__(self, test, parent, sub_id, remote_mac): r = test.vapi.create_p2pethernet_subif(parent.sw_if_index, remote_mac, sub_id) self._sw_if_index = r.sw_if_index super(VppP2PSubint, self).__init__(test, parent, sub_id) def add_dot1_layer(self, packet): return packet def remove_dot1_layer(self, packet): return packet def create_arp_req(self): packet = VppPGInterface.create_arp_req(self) return packet def create_ndp_req(self): packet = VppPGInterface.create_ndp_req(self) return packet