Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
23 commits
Select commit Hold shift + click to select a range
0f3bfe2
Add crypto extern
hesingh Dec 12, 2019
e9e1785
Fix cpplint issues in crypto.cpp; header file c/c++ issues remain
hesingh Dec 13, 2019
2847992
Fix headers and namespace cpplint issues
hesingh Dec 13, 2019
02c01d5
Fix compile issues
hesingh Dec 13, 2019
4e9d5be
Fix namspace cpplint issue
hesingh Dec 13, 2019
fc17434
Complete adding crypto to simple_switch, linking and building; also a…
hesingh Dec 16, 2019
7d5a5a9
Complete adding crypto to simple_switch, linking and building; also a…
hesingh Dec 16, 2019
30f2879
Restore simple_switch and Makefile.am, add to README.md
hesingh Dec 16, 2019
353b462
Rename diffs file to avoid its lint
hesingh Dec 16, 2019
84a43b5
Add new diffs file
hesingh Dec 16, 2019
fb7b8f3
Fix minor issues
hesingh Dec 16, 2019
e7d89e7
Fix acsec's old P4 mark_to_drop
hesingh Dec 16, 2019
11f02c9
Comment out recirculate after decrypt
hesingh Dec 16, 2019
19656e2
Update README.md now that steps exist how to test crypto extern
hesingh Dec 18, 2019
e1fe58c
delete diffs file and updated README
hesingh Dec 18, 2019
a3c273a
Add more notes to README
hesingh Dec 18, 2019
d32443a
Delete basic.p4 since it's pointed to in the repo
hesingh Dec 19, 2019
9ff1f4d
Sync extern from macsec parent
hesingh Dec 24, 2019
c357ef5
Took care of review comments
hesingh Dec 28, 2019
1dc5f2c
Fix style issue with prior commit
hesingh Dec 28, 2019
f031ac7
Add Makefile to extern code
hesingh Dec 29, 2019
3ca057f
Change code after Antonin's review
hesingh Jan 7, 2020
f187058
Change code after Antonin's review
hesingh Jan 7, 2020
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 11 additions & 0 deletions targets/simple_switch/sample_externs/macsec/Makefile
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
crypto_SOURCES = crypto.cpp
crypto_LDADD = -lcrypto

CPPFLAGS += -I../../ -fPIC -shared

libexterncrypto.so : $(crypto_SOURCES)
g++ $(CPPFLAGS) $(crypto_SOURCES) -o libexterncrypto.so $(crypto_LDADD)

clean:
rm -rf libexterncrypto.so

51 changes: 51 additions & 0 deletions targets/simple_switch/sample_externs/macsec/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
# Add macsec extern to simple_switch
# macsec is layer-2 security.

For reference, the extern is implemented in crypto.cpp in this directory.
Steps to use the macsec extern are described below.

TODO

The code is crypto.cpp is also available in the repo URL included below
so that testing can be done using MACsec (MAC security) code. A
README.md is available at the repo below with steps for how to test
the code.

https://github.com/uni-tue-kn/p4-macsec

The extern definition is included below.

extern ExternCrypt {
ExternCrypt();
void protect(in bit<128> SAK,
in bit<64> SCI,
in bit<32> PN,
in bit<48> src_addr,
in bit<48> dst_addr,
in bit<128> sectag,
in bit<16> ethertype,
in bit<8> prepend_ipv4_hdr,
in bit<160> ipv4_hdr);
void validate(in bit<128> SAK,
in bit<64> SCI,
in bit<32> PN,
in bit<48> src_addr,
in bit<48> dst_addr,
in bit<128> sectag,
out bit<8> valid,
out bit<16> ethertype);
}

Additionally the extern is used in P4 code as crypt.validate() which is
decryption and crypt.protect() which is encryption.

https://github.com/uni-tue-kn/p4-macsec/p4/p4/basic.p4

basic.p4 is used to test the cryto extern code with simple_switch as follows:

In p4-macsec/p4/p4 directory, run `make run`. This will compile the P4 program
and start the switches and mininet.

basic.p4 is compiled using p4c with args shown in

https://github.com/uni-tue-kn/p4-macsec/blob/master/p4/p4/Makefile
Loading